[theora-dev] Keyframe seeking in Ogg and spec

Monty xiphmont at xiph.org
Sat Sep 14 12:20:42 PDT 2002

> I understand this description is meant to be fuzzy, but it is a little 
> misleading. The ogg layer doesn't know about anything but packets in 
> buckets, but anything that operates on ogg streams must use some 
> higher-level information if it is going to redistribute packets or 
> re-interleave streams. Vorbis specifies that a page break occur after 
> the last required header for the convenience of streaming/editing 
> applications; it seems likely that this is a rule we'll want to follow 
> with other codec data. And to do a good job, any mux/interleave tool 
> will have to understand the timecodes of the various streams it's 
> dealing with.

I'm speaking only of the low level seek/sync engine.  Higher level
layers do indeed know more; the main framework sits both on top of the
Ogg seek/sync engine and the codec plugins.

> >2) The Ogg-level seeking algorithm is exceptionally simple and can be
> >described in a single sentence: "Find the earliest page with a
> >granulepos less than but closest to 'x'".
> Wouldn't "find the latest page with a granulepos not later than x" be a 
> simpler description?

Not equivalent.  If a run of pages have the same granulepos, we want
the first one, not the last one (well, it's easy enough to implement

> >  * note that although granulepos is not permitted to wrap around, we
> >    can simply begin a new logical stream segment with a new serial
> >    number should a 30fps video stream ever hit the ten-billion year
> >    mark.
> This is a bit flip. If you can do this with video, you can do it with 
> audio.

The point is that it ain't evah gonnah happen unless some developer
really send his brain out to lunch :-)

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'theora-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Theora-dev mailing list