Updated the authorship description in README

This commit is contained in:
fduncanh
2022-02-06 19:47:05 -05:00
parent 65460b53f8
commit 49279446d4
3 changed files with 61 additions and 58 deletions

View File

@@ -147,19 +147,19 @@
<p>All the resources in this repository are written using only freely available information from the internet. The code and related resources are meant for educational purposes only. It is the responsibility of the user to make sure all local laws are adhered to.</p>
<p>This project makes use of a third-party GPL library for handling FairPlay. The legal status of that library is unclear. Should you be a representative of Apple and have any objections against the legality of the library and its use in this project, please contact me and Ill take the appropriate steps.</p>
<p>Given the large number of third-party AirPlay receivers (mostly closed-source) available for purchase, it is my understanding that an open source implementation of the same functionality wouldnt violate any of Apples rights either.</p>
<h1 id="notes-by-florian-draschbacher-rpiplay-creator">Notes by Florian Draschbacher, RPiPlay creator</h1>
<p>(From the https://github.com/FD-/RPiPlay.git repository.)</p>
<h2 id="rpiplay-authors">RPiPlay authors</h2>
<p>The code in this repository accumulated from various sources over time. Here is my (<strong>fdrachbacher</strong>) attempt at listing the various authors and the components they created:</p>
<h1 id="uxplay-authors">UxPlay authors</h1>
<p><em>[adapted from fdraschbachers notes on RPiPlay antecedents]</em></p>
<p>The code in this repository accumulated from various sources over time. Here is an attempt at listing the various authors and the components they created:</p>
<p>UxPlay was initially created by <strong>antimof</strong> from RPiPlay, by replacing its Raspberry-Pi-specific video and audio rendering system with GStreamer rendering for Desktop Linux (antimofs work on code in <code>renderers/</code> was later backported to RPiPlay). The previous authors of code included in UxPlay by inheritance from RPiPlay include:</p>
<ul>
<li><strong>dsafa22</strong>: Created an AirPlay 2 mirroring server <a href="https://github.com/dsafa22/AirplayServer">AirplayServer</a> (seems gone now), <em>[added: but code is preserved <a href="https://github.com/KqSMea8/AirplayServer">here</a>, and <a href="https://github.com/FDH2/UxPlay/wiki/AirPlay2">see here</a> for the description of the analysis of the AirPlay 2 mirror protocol that made RPiPlay possible, by the AirplayServer author]</em> for Android based on ShairPlay. This project (RPiPlay) is basically a port of dsafa22s code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi. All code in <code>lib/</code> concerning mirroring is dsafa22s work. License: GNU LGPLv2.1+</li>
<li><strong>Juho Vähä-Herttua</strong> and contributors: Created an AirPlay audio server called <a href="https://github.com/juhovh/shairplay">ShairPlay</a>, including support for Fairplay based on PlayFair. Most of the code in <code>lib/</code> originally stems from this project. License: GNU LGPLv2.1+</li>
<li><strong>EstebanKubata</strong>: Created a FairPlay library called <a href="https://github.com/EstebanKubata/playfair">PlayFair</a>. Located in the <code>lib/playfair</code> folder. License: GNU GPL</li>
<li><strong>Joyent, Inc and contributors</strong>: Created an http library called <a href="https://github.com/nodejs/llhttp">llhttp</a>. Located at <code>lib/llhttp/</code>. License: MIT</li>
<li><strong>Team XBMC</strong>: Managed to show a black background for OpenMAX video rendering. This code is used in the video renderer. License: GNU GPL</li>
<li><strong>Alex Izvorski and contributors</strong>: Wrote <a href="https://github.com/aizvorski/h264bitstream">h264bitstream</a>, a library for manipulation h264 streams. Used for reducing delay in the Raspberry Pi video pipeline. Located in the <code>renderers/h264-bitstream</code> folder. License: GNU LGPLv2.1</li>
<li><strong>Juho Vähä-Herttua</strong> and contributors: Created an AirPlay audio server called <a href="https://github.com/juhovh/shairplay">ShairPlay</a>, including support for Fairplay based on PlayFair. Most of the code in <code>lib/</code> originally stems from this project. License: GNU LGPLv2.1+</li>
<li><strong>dsafa22</strong>: Created an AirPlay 2 mirroring server <a href="https://github.com/dsafa22/AirplayServer">AirplayServer</a> (seems gone now), for Android based on ShairPlay. Code is preserved <a href="https://github.com/KqSMea8/AirplayServer">here</a>, and <a href="https://github.com/FDH2/UxPlay/wiki/AirPlay2">see here</a> for the description of the analysis of the AirPlay 2 mirror protocol that made RPiPlay possible, by the AirplayServer author. All code in <code>lib/</code> concerning mirroring is dsafa22s work. License: GNU LGPLv2.1+</li>
<li><strong>Florian Draschbacher</strong> and contributors: adapted dsafa22s Android project for the Raspberry Pi, with extensive cleanups, debugging and improvements. The project RPiPlay is basically a port of dsafa22s code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi. License GPL v3.</li>
<li><strong>Joyent, Inc and contributors</strong>: Created an http parsing library called <a href="https://github.com/nodejs/llhttp">llhttp</a>. Located at <code>lib/llhttp/</code>. License: MIT</li>
</ul>
<h2 id="airplay-protocol-versions">AirPlay protocol versions</h2>
<h2 id="notes-on-airplay-protocol-versions-by-florian-draschbacher-rpiplay-creator">Notes on AirPlay protocol versions by Florian Draschbacher, RPiPlay creator</h2>
<p>(From the https://github.com/FD-/RPiPlay.git repository.)</p>
<p>For multiple reasons, its very difficult to clearly define the protocol names and versions of the components that make up the AirPlay streaming system. In fact, it seems like the AirPlay version number used for marketing differs from that used in the actual implementation. In order to tidy up this whole mess a bit, I did a little research that Id like to summarize here:</p>
<p>The very origin of the AirPlay protocol suite was launched as AirTunes sometime around 2004. It allowed to stream audio from iTunes to an AirPort Express station. Internally, the name of the protocol that was used was RAOP, or Remote Audio Output Protocol. It seems already back then, the protocol involved AES encryption. A public key was needed for encrypting the audio sent to an AirPort Express, and the private key was needed for receiving the protocol (ie used in the AirPort Express to decrypt the stream). Already in 2004, the public key was reverse-engineered, so that <a href="http://nanocr.eu/2004/08/11/reversing-airtunes/">third-party sender applications</a> were developed.</p>
<p>Some time <a href="https://weblog.rogueamoeba.com/2008/01/10/a-tour-of-airfoil-3/">around 2008</a>, the protocol was revised and named AirTunes 2. It seems the changes primarily concerned timing. By 2009, the new protocol was <a href="https://git.zx2c4.com/Airtunes2/about/">reverse-engineered and documented</a>.</p>

View File

@@ -602,27 +602,29 @@ This project makes use of a third-party GPL library for handling FairPlay. The l
Given the large number of third-party AirPlay receivers (mostly closed-source) available for purchase, it is my understanding that an open source implementation of the same functionality wouldn't violate any of Apple's rights either.
# Notes by Florian Draschbacher, RPiPlay creator
(From the https://github.com/FD-/RPiPlay.git repository.)
## RPiPlay authors
# UxPlay authors
_[adapted from fdraschbacher's notes on RPiPlay antecedents]_
The code in this repository accumulated from various sources over time. Here
is my (__fdrachbacher__) attempt at listing the various authors and the components they created:
is an attempt at listing the various authors and the components they created:
UxPlay was initially created by **antimof** from RPiPlay, by replacing its Raspberry-Pi-specific video and audio rendering system with GStreamer rendering for
Desktop Linux (antimof's work on code in `renderers/` was later backported to RPiPlay). The previous authors of code included in UxPlay by inheritance from RPiPlay include:
* **dsafa22**: Created an AirPlay 2 mirroring server [AirplayServer](https://github.com/dsafa22/AirplayServer) (seems gone now), _\[added: but code is preserved
[here](https://github.com/KqSMea8/AirplayServer), and [see here](https://github.com/FDH2/UxPlay/wiki/AirPlay2) for
the description of the analysis of the AirPlay 2 mirror protocol that made RPiPlay possible, by the AirplayServer author\]_
for Android based on ShairPlay.
This project (RPiPlay) is basically a port of dsafa22's code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi.
All code in `lib/` concerning mirroring is dsafa22's work. License: GNU LGPLv2.1+
* **Juho Vähä-Herttua** and contributors: Created an AirPlay audio server called [ShairPlay](https://github.com/juhovh/shairplay), including support for Fairplay based on PlayFair. Most of the code in `lib/` originally stems from this project. License: GNU LGPLv2.1+
* **EstebanKubata**: Created a FairPlay library called [PlayFair](https://github.com/EstebanKubata/playfair). Located in the `lib/playfair` folder. License: GNU GPL
* **Joyent, Inc and contributors**: Created an http library called [llhttp](https://github.com/nodejs/llhttp). Located at `lib/llhttp/`. License: MIT
* **Team XBMC**: Managed to show a black background for OpenMAX video rendering. This code is used in the video renderer. License: GNU GPL
* **Alex Izvorski and contributors**: Wrote [h264bitstream](https://github.com/aizvorski/h264bitstream), a library for manipulation h264 streams. Used for reducing delay in the Raspberry Pi video pipeline. Located in the `renderers/h264-bitstream` folder. License: GNU LGPLv2.1
* **Juho Vähä-Herttua** and contributors: Created an AirPlay audio server called [ShairPlay](https://github.com/juhovh/shairplay), including support for Fairplay based on PlayFair. Most of the code in `lib/` originally stems from this project. License: GNU LGPLv2.1+
* **dsafa22**: Created an AirPlay 2 mirroring server [AirplayServer](https://github.com/dsafa22/AirplayServer) (seems gone now), for Android based on ShairPlay. Code is
preserved [here](https://github.com/KqSMea8/AirplayServer), and [see here](https://github.com/FDH2/UxPlay/wiki/AirPlay2) for the description
of the analysis of the AirPlay 2 mirror protocol that made RPiPlay possible, by the AirplayServer author. All
code in `lib/` concerning mirroring is dsafa22's work. License: GNU LGPLv2.1+
* **Florian Draschbacher** and contributors: adapted dsafa22's Android project for the Raspberry Pi, with extensive cleanups, debugging and improvements. The
project RPiPlay is basically a port of dsafa22's code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi. License GPL v3.
* **Joyent, Inc and contributors**: Created an http parsing library called [llhttp](https://github.com/nodejs/llhttp). Located at `lib/llhttp/`. License: MIT
## AirPlay protocol versions
## Notes on AirPlay protocol versions by Florian Draschbacher, RPiPlay creator
(From the https://github.com/FD-/RPiPlay.git repository.)
For multiple reasons, it's very difficult to clearly define the protocol names and versions of the components that make up the AirPlay streaming system. In fact, it seems like the AirPlay version number used for marketing differs from that used in the actual implementation. In order to tidy up this whole mess a bit, I did a little research that I'd like to summarize here:

View File

@@ -775,49 +775,50 @@ closed-source) available for purchase, it is my understanding that an
open source implementation of the same functionality wouldn't violate
any of Apple's rights either.
Notes by Florian Draschbacher, RPiPlay creator
==============================================
UxPlay authors
==============
(From the https://github.com/FD-/RPiPlay.git repository.)
RPiPlay authors
---------------
*\[adapted from fdraschbacher's notes on RPiPlay antecedents\]*
The code in this repository accumulated from various sources over time.
Here is my (**fdrachbacher**) attempt at listing the various authors and
the components they created:
Here is an attempt at listing the various authors and the components
they created:
- **dsafa22**: Created an AirPlay 2 mirroring server
[AirplayServer](https://github.com/dsafa22/AirplayServer) (seems
gone now), *\[added: but code is preserved
[here](https://github.com/KqSMea8/AirplayServer), and [see
here](https://github.com/FDH2/UxPlay/wiki/AirPlay2) for the
description of the analysis of the AirPlay 2 mirror protocol that
made RPiPlay possible, by the AirplayServer author\]* for Android
based on ShairPlay. This project (RPiPlay) is basically a port of
dsafa22's code to the Raspberry Pi, utilizing OpenMAX and OpenSSL
for better performance on the Pi. All code in `lib/` concerning
mirroring is dsafa22's work. License: GNU LGPLv2.1+
UxPlay was initially created by **antimof** from RPiPlay, by replacing
its Raspberry-Pi-specific video and audio rendering system with
GStreamer rendering for Desktop Linux (antimof's work on code in
`renderers/` was later backported to RPiPlay). The previous authors of
code included in UxPlay by inheritance from RPiPlay include:
- **EstebanKubata**: Created a FairPlay library called
[PlayFair](https://github.com/EstebanKubata/playfair). Located in
the `lib/playfair` folder. License: GNU GPL
- **Juho Vähä-Herttua** and contributors: Created an AirPlay audio
server called [ShairPlay](https://github.com/juhovh/shairplay),
including support for Fairplay based on PlayFair. Most of the code
in `lib/` originally stems from this project. License: GNU LGPLv2.1+
- **EstebanKubata**: Created a FairPlay library called
[PlayFair](https://github.com/EstebanKubata/playfair). Located in
the `lib/playfair` folder. License: GNU GPL
- **Joyent, Inc and contributors**: Created an http library called
[llhttp](https://github.com/nodejs/llhttp). Located at
- **dsafa22**: Created an AirPlay 2 mirroring server
[AirplayServer](https://github.com/dsafa22/AirplayServer) (seems
gone now), for Android based on ShairPlay. Code is preserved
[here](https://github.com/KqSMea8/AirplayServer), and [see
here](https://github.com/FDH2/UxPlay/wiki/AirPlay2) for the
description of the analysis of the AirPlay 2 mirror protocol that
made RPiPlay possible, by the AirplayServer author. All code in
`lib/` concerning mirroring is dsafa22's work. License: GNU
LGPLv2.1+
- **Florian Draschbacher** and contributors: adapted dsafa22's Android
project for the Raspberry Pi, with extensive cleanups, debugging and
improvements. The project RPiPlay is basically a port of dsafa22's
code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better
performance on the Pi. License GPL v3.
- **Joyent, Inc and contributors**: Created an http parsing library
called [llhttp](https://github.com/nodejs/llhttp). Located at
`lib/llhttp/`. License: MIT
- **Team XBMC**: Managed to show a black background for OpenMAX video
rendering. This code is used in the video renderer. License: GNU GPL
- **Alex Izvorski and contributors**: Wrote
[h264bitstream](https://github.com/aizvorski/h264bitstream), a
library for manipulation h264 streams. Used for reducing delay in
the Raspberry Pi video pipeline. Located in the
`renderers/h264-bitstream` folder. License: GNU LGPLv2.1
AirPlay protocol versions
-------------------------
Notes on AirPlay protocol versions by Florian Draschbacher, RPiPlay creator
---------------------------------------------------------------------------
(From the https://github.com/FD-/RPiPlay.git repository.)
For multiple reasons, it's very difficult to clearly define the protocol
names and versions of the components that make up the AirPlay streaming