[xiph-rtp] header caching and chaining

Aaron Colwell acolwell at real.com
Mon Apr 11 17:44:36 PDT 2005


On Mon, Apr 11, 2005 at 04:45:46PM -0700, Aaron Colwell wrote:
> Ok here is an updated SDP that is more compact. Basically the chain-IDs, 
> ident-IDs, and codec-IDs are implied by the order of the information in the 
> SDP lines.
> 
> -- Case where all chains are known at SDP generation time --
> 
> v=0
> o=- 1105605563 1105605563 IN IP4 207.188.30.165
> s=<No title>
> i=<No author> .2000
> c=IN IP4 0.0.0.0
> t=0 0
> a=control:*
> a=range:npt=0-202.297000
> m=audio 0 RTP/AVP 101
> b=AS:8
> a=control:TrackID=0
> a=rtpmap:101 VORBIS/44100/2
> a=fmtp:101 baseURL="http://foo.com/ogg-info/"
> a=chain-info: 0:0; 1:0; 2:1;
> a=ident-info: url="ident-441k", MD5=987234BC8D92DFE2987234BC8D92DFE2;url="ident-8k", MD5=2186461716517578792145688D92DFE2; url="ident-11k", MD5=218646687642f4AEFD2145688D92DFE2;
> a=codebook-info: url="codebook-lowBW", MD5=309573098520975ABEFC34768D92DFE2;url="/codebook-speech", MD5=4567319735186778271C34768D92DFE2;
> 
> 
> Basically this says
> - Chain ID 0 uses Ident ID 0 and CodebookID 0.
> - Chain ID 1 uses Ident ID 1 and CodebookID 0.
> - Chain ID 2 uses Ident ID 2 and CodebookID 1.
> 
> - Ident 0 can be retrieved at http://foo.com/ogg-info/ident-441k and has an
>   MD5 hash of 987234BC8D92DFE2987234BC8D92DFE2
> - Ident 1 can be retrieved at http://foo.com/ogg-info/ident-8k and has an 
>   MD5 hash of 2186461716517578792145688D92DFE2
> - Ident 2 can be retrieved at http://foo.com/ogg-info/ident-11k and has an 
>   MD5 hash of 218646687642f4AEFD2145688D92DFE2
> 
> - Codebook 0 can be retrieved at http://foo.com/ogg-info/codebook-lowBW and
>   has a MD5 hash of 309573098520975ABEFC34768D92DFE2
> - Codebook 1 can be retrieved at http://foo.com/codebook-speech and has an
>   MD5 hash of 4567319735186778271C34768D92DFE2
> 
> Note that the url in the ident-info and codebook info is a relative URL. It
> should be applied to the base URL using normal relative URL resolution rules
> specified in the URI RFC. URL can contain absolute URLs if you wish, but it
> just takes more SDP space.
> 
> 
> For now I'm still sticking by my original proposal for dealing with the case
> where the chains are not known at SDP generation time. I'd slightly change the
> format of the chain info to address Ralph's idea of using different hash 
> functions.
> 
> -- Case where chains are NOT known at SDP generation time --
> v=0
> o=- 1105605563 1105605563 IN IP4 207.188.30.165
> s=<No title>
> i=<No author> .2000
> c=IN IP4 0.0.0.0
> t=0 0
> a=control:*
> a=range:npt=0-202.297000
> m=audio 0 RTP/AVP 101
> b=AS:8
> a=control:TrackID=0
> a=rtpmap:101 VORBIS/44100/2
> a=fmtp:101 chainIDBaseURL="http://foo.com/chainIDs/"
> 
> 
> http://foo.com/chainIDs/0 would contain something like
> 
> +----------------------+
> |    Ident hash 4cc    |
> +----------------------+
> |   Ident hash length  |
> +----------------------+
> |   Codebook hash 4cc  |
> +----------------------+
> | Codebook hash length |
> +----------------------+
> |       Ident Hash     |
> +----------------------+
> |     Codebook Hash    |
 > +----------------------+
> |      Ident URL       | <- Null terminated string
> +----------------------+
> |     Codebook URL     | <- Null terminated string
> +----------------------+

Ignore this. It is too complicated for no good reason. Here is a better idea

+---------------+
|  Ident Info   | <- Null terminated string
+---------------+
| Codebook info | <- Null terminated string
+---------------+

Both these strings just contain info in the same form that it is in in the
SDP. 

Ident info = 'url="ident-441k", MD5=987234BC8D92DFE2987234BC8D92DFE2'
Codebook info = 'url="codebook-lowBW", MD5=309573098520975ABEFC34768D92DFE2'

It's simple and allows you to reuse code that you have for SDP parsing.

Aaron

> 
> The 4cc's indicate which hash is being used. The lengths allow a client to
> skip over hash codes it doesn't understand to get to the URLs. This allows
> an older client to still be able to get the ident and codebook even if it 
> doesn't understand a newer hash code scheme that is being used.

> 


More information about the xiph-rtp mailing list