[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