[xiph-rtp] Chaining

Ralph Giles giles at xiph.org
Mon Aug 29 13:22:53 PDT 2005


On Mon, Aug 29, 2005 at 12:50:06PM -0700, David Barrett wrote:

> Can you give a 20-second review of what all this means to those of us 
> (ie, me) who haven't followed the issue closely?  Specifically:
> 
> 1) What is the difference between "chaining" and "inline codebook 
> transmission"?  It sounds like you're de-supporting the former while 
> retaining the latter.

Chaining means switching between multiple decoder configs within a 
single RTP session. Inline codebook transmission just means that
the decoder may receive its configuration data as packets send at
the beginning of the RTP stream as well as through some out of band
method. It's the simplest option, and the only one is some applications.

Chaining might still be possible with inline codebook transmission;
the problem is RTP packets are usually sent without delivery guarantees, 
so if the SDP only defines one sent, you can't transition reliably,
and the decoder may suddenly start producing garbage drop in the middle
of the stream.

In a multicast setting, there's no also way to syncronize the change. 
(Maybe you could use different SSRC id's to mark the distinction?)

> 2) What's the latest on the "codebook ID" member of the Theora RTP 
> header?  It sounds like you're suggesting the whole RTP header is just a 
> single byte -- wasn't there a field that associated each packet with a 
> specific codebook (so the SDP could define a codebook library using HTTP 
> downloads, and the session could switch back and forth on a per-packet 
> basis)?

That's the main change; we've done away with that field because there's 
only one codebook option--nothing to choose to between.

> 3) You said "A given RTP session has only one corresponding info and 
> setup header pair": what's a "setup header"?  I thought there were 
> "info", "command", and "tables" headers, which together comprise the 
> "codebook".  Is this changing, or am I just misunderstanding something?

The vorbis and theora codecs have three required headers that configure 
their decoders. Their specifications call them the 'info, comment (or 
metadata), and setup (or codebook)' header packets. collectively they're
often referred to as "the codebooks". The 'info' and 'setup' headers are 
required for meaningful decode of data packets. The comment header is 
required by the spec, but not necessary on technical grounds.
 
> If there's only one per session, does this mean codebook changing has 
> been de-supported as well?

That's that same as "chaining" so yes it would no longer be supported.

If you want to change the codebooks, you must get the player a new
SDP and or otherwise open a new RTP connection. A stack of rtsp: 
playlist entries would work fine, for example.

Hope that clarification helps,

 -r


More information about the xiph-rtp mailing list