[xiph-rtp] Theora "setup idents" and codebook URLs in SDP

Aaron Colwell acolwell at real.com
Fri Jun 3 09:12:34 PDT 2005


On Thu, Jun 02, 2005 at 04:50:15PM -0700, David Barrett wrote:
> Phil Kerr wrote:
> >Hi David,
> >
> >David Barrett wrote:
> >
> >>"A codebook URL SHOULD include a CRC32 of the codebook itself, so as 
> >>to prevent the codebook referenced by URL from changing, and thereby 
> >>enabling decoding clients to use the URL as a persistent, 
> >>globally-unique identifier of the codebook itself, suitable for 
> >>reliable caching purposes."

There are several constraints that need to be taken into account here.

1. SDP needs to be less than 1k in some scenarios like SAP. In other 
   environments it can be larger, but it would be nice to have a solution that
   works in both cases.

2. If the codebook/ident info isn't known at SDP generation time there needs
   to be a mechanism for getting this info.

3. If all codebook/ident info is known at SDP generation time you should
   provide enough information so that all this info can be retrieved before
   playback starts.


Constraint 1 implies compact representation of the information. Mandating CRCs
or MD5 in the URLs definitely does not achieve this. It can work for low
chain counts, but it can quickly cause the SDP to get too large. Allowing
looser URL requirements allow you to make URLs more compact.

Constrain 2 implies to me the need for some sort of baseURL that 
the "setup ident" can be appended to so that it can retrieve the ident/codebook
URLs.

Constraint 3 could be solved by listing all the "setup idents" in the SDP and
then using the constraint 2 solution. You could also just provide a single
URL that contains a list of (setup ident, ident MD5, ident URL, codebook MDS5,
codebook URL) structures. This would reduce the amount of HTTP traffic needed. 
Putting the URLs in the SDP directly causes problems with constraint 1.

A while ago I posted sample SDP solutions to the list. I don't know if they
have been accepted or integrated into the draft document yet.

> >
> >Yup.  But how do we prevent clashes with the packet ident?
> 
> In this proposal, there is no global uniqueness requirement for the 
> "setup ident" field in each packet.  Rather, there is a much easier 
> "session uniqueness" requirement.
> 
> Because the broadcaster writes the SDP *and* the packets, it is both the 
> sole author and user of the namespace.  (i.e., it defines the "setup 
> ident" namespace by associating codebook URLs with "setup idents" in the 
> SDP, and then it stamps packets as it sends them to match.)  Clashes are 
> therefore extremely easy to avoid.

setup ident has always only needed to be unique within the session. I don't
see how this changes anything.

Aaron

> 
> -david
> _______________________________________________
> xiph-rtp mailing list
> xiph-rtp at xiph.org
> http://lists.xiph.org/mailman/listinfo/xiph-rtp
> 


More information about the xiph-rtp mailing list