[xiph-rtp] header caching and chaining
Ralph Giles
giles at xiph.org
Thu Feb 3 16:06:10 PST 2005
On Thu, Feb 03, 2005 at 09:08:11AM -0800, Aaron Colwell wrote:
> I think one other Pro is that you would be able to stream a larger set of
> valid .ogg files over RTP. Unfortunately this still won't let you stream all
> valid .ogg files, but it is getting closer.
Do you mean Ogg files that change the number of multiplexed logical
bitstreams between chain boundaries? That's the only thing I can think
of that we're not covering.
> Why is it more beneficial for video than audio? I'm assuming you want chaining
> for video to allow frame rate changes and codebook changes to allow better
> bitrate characteristics. Couldn't these same arguments be held for audio as
> well? If you have audio that only has low frequency components it may make
> sense to use a lower sample rate.
My analysis was based on transcoding being much more expensive and
difficult for video. Remember I'm against RTP chaining support in
the first place; the video framerate issue was pretty much the lever
argument for me.
> I'm not sure if the 2 headers are orthogonal in Vorbis. You need to know the
> channels value from the info header to properly decode the setup header. This
> will constrain you from changing the number of channels across chain boundries.
> The block sizes are also stored in the info header so that wouldn't be able to
> change across chain boundries either. These 2 constraints seem to me to
> severely limit the usefulness of chaining support if you can only update the
> setup header.
Right. Teaches me to not do my homework. In light of this I agree with
you that hashing both the info and setup packets and using that as the
ident key is the best approach.
> I haven't read his proposals yet (I'll try to get to this today), but the
> way you describe it doesn't sound like it would work. What happens in the case
> where you use the same setup header, but a different frame size or frame rate?
> The CRC wouldn't change so the client wouldn't know that these parameters
> changed. Depending on how the frame size changed, frame decode could fail
> because there are either too many or too few coded coeff, block coded flags,
> etc.
Insightful as always. So unless I missed something in my description,
this is just a more expensive version of the fixed-info packet config.
Thanks,
-r
More information about the xiph-rtp
mailing list