Support the Metacube protocol when streaming over HTTP.
authorSteinar H. Gunderson <steinar+vlc@gunderson.no>
Sun, 16 Feb 2014 10:53:41 +0000 (11:53 +0100)
committerDenis Charmet <typx@dinauz.org>
Mon, 24 Feb 2014 22:29:08 +0000 (23:29 +0100)
commit22a76f31dbd4fa02a254f7ad2955b38e17678364
tree312fb374e7058dcec3e951891f9ea426a3c2a4c3
parentc4d0891bf9321c96ba3c5c5eb2d819e1d38ee164
Support the Metacube protocol when streaming over HTTP.

This is an inclusion of a patch that has been living out-of-tree for some time,
but now as Cubemap 1.0.0 has been released and the protocol has been frozen,
it would sound reasonable to get it into mainline.

Essentially it makes the VLC HTTP server support the Metacube protocol, which
is a framing format to let an external reflector know where the start and end
of the blocks are without having to understand the format itself (similar to
how the VLC HTTP server itself gets to know this information). This lets it
serve the correct header block to new clients joining in the middle of the
stream, and makes sure new clients don't start in the middle of a block,
which is a problem for non-self-synchronizing formats (such as FLV and WebM).
It includes self-synchronization and header checksumming to ensure smooth
recovery from overruns in the server-to-reflector TCP stream.

The only consumer of this protocol currently, and for the foreseeable future,
is Cubemap (http://git.sesse.net/?p=cubemap), a scalable video reflector
designed to be used with VLC.

Signed-off-by: Denis Charmet <typx@dinauz.org>
modules/access_output/http.c