[vlc-devel] RAOP/Airtunes

Rémi Denis-Courmont remi at remlab.net
Sat Apr 9 10:01:07 CEST 2011


Le vendredi 8 avril 2011 19:35:01 James Laird, vous avez écrit :
> > However, VLC can hook to the server when the VLC user chooses to, and
> > then process the data into the VLC pipeline. Alternatively, the server
> > can use LibVLC as its back-end for decoding and output.
> This is a push protocol, and as such has to be an on-demand playlist
> item... and yes, that almost certainly requires an external daemon, at
> least for handling the front-end of the protocol.
> The back-end handling, however, consists of the following:
> 1. RTP packet reception and lost packet handling/resend requests
> 2. AES decoding (keys from frontend)
> 3. ALAC decoding
> 4. slave-clock replay
> Items 1, 3 and 4 are already solved problems within VLC, and 1 cannot be
> solved using libvlc alone?

While it would be tempting to push the "data path" directly from the IP stack 
to VLC, I don't know any easy way to convince VLC to keep a UDP port open.
Thus the sender would get ICMP Port Unreachable errors if VLC is not playing 
its stream :-(

> I'd be very happy to have a playlist item that accepts any stream from a
> running frontend, and either skips if not playing or waits for a stream.

> > > I've extracted the Airport Express RSA private key that is necessary to
> > > implement this.
> > 
> > On working around DRM, see
> > http://lkml.indiana.edu/hypermail/linux/kernel/0307.1/2019.html
> I would actually argue that this is not a case of DRM implementation, but
> purely one of vendor lock-in.  Apple RAOP sources stream data solely in
> ALAC - which is equivalent to uncompressed data - and not in any original
> compressed format.  This is exactly equivalent to the digital recording
> permitted by loopback interfaces within both Mac OS and Windows, as far as
> I'm aware.

The point is not to question your goal. Your blog post is 100% clear that you 
were aiming for interoperability. But the real question is, why did Apple put 
that cryptography in place?

In any case, with the asymmetric keying performed by the would-be external 
process, the potato is kept out of the main VLC code base.

> In fact, there's even an optical output port on the ApEx I ripped the key
> from, which kindly beams out this same PCM stream in visible light.

Rémi Denis-Courmont

More information about the vlc-devel mailing list