[vorbis-dev] RFC draft for Vorbis over RTP
Tor-Einar Jarnbjo
Tor-Einar at Jarnbjo.de
Wed May 26 15:19:20 PDT 2004
Gregory Maxwell wrote:
>Correct. I would also suggest that the headers be encoded with forward
>error correction.. a modest increase in their size will translate into a
>substantial increase in resistance to packet loss.
>
>
>
Anyone else with an opinion on this? If using FEC on the codebooks, we
could also just as well consider it an option for the media packets. I
don't know if it would be possible to implement some sort of graceful
packet loss compensation in the Vorbis decoder, but as it is, packet
loss might have a higher impact on Vorbis than on other codecs, as the
Vorbis decoder needs the previous packet to decode properly (one packet
lost will cause two packets missing in the PCM output). At least for the
RTP packets, it would even be possible to use a separate stream for the
extra FEC data (also in a multicast environment), allowing the client to
decide itself if it needs the error codes to compensate for packet loss.
>I also suggest that the protocol be setup to work correctly even if the
>headers are never transmitted in the stream (clients must always fetch) or
>if there is no out of band source (clients must wait until they get a copy
>via RTP, hopefully a server like this would send codebooks a little more
>often)..
>
I don't like the perodical retransmission of the header packets at all.
The codebooks have a significant size and if these periodic
retransmissions is the only way for the client to get the codebooks,
they would either have to be retransmitted often (expecting the client
to wait much longer than 5-10 seconds to start playing would be too much
IMHO) and retransmitting a 16kB codebook set (this was mentioned
somewhere as a typical size) every 10 seconds would increase the
required bandwidth by 13kbps.
In my opinion, the following two ways to obtain the codebooks ought to
be enough:
- For unicast streams, use a reliable OOB transport like HTTP
- For multicast streams, still allow (mandatory) a reliable OOB
transport like HTTP and have an optional separate media stream, which is
repeatedly transmitting the currently active codebook. This would allow
the client to join the multicast stream if codebook retrieval is
necessary and stop receiving the codebook stream as soon as enough data
is available to reconstruct and parse the codebooks. Securing this
stream with FEC would of course still make sense.
> Also, it should be possible to form a codebook transmission
>packet in the RTP stream that gives a codebook hash, but has no data (this
>is a marker for clients to go get the codebook via the OOB method, so they
>can go get it before it's needed).. It should also be possible to mark
>those codebook transmission packets with a flag "don't use cached copy" so
>that clients will accept the transmitted codebook or fetch one even if
>they have a cached copy.
>
>--- >8 ----
>List archives: http://www.xiph.org/archives/
>Ogg project homepage: http://www.xiph.org/ogg/
>To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
>containing only the word 'unsubscribe' in the body. No subject is needed.
>Unsubscribe messages sent to the list will be ignored/filtered.
>
>
>
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Vorbis-dev
mailing list