[theora-dev] question about ogg mapping

Ralph Giles giles at xiph.org
Thu Jun 12 10:12:43 PDT 2003

On Thursday, June 12, 2003, at 05:58 pm, Dan Miller wrote:

> The problem is this: right now, with each frame in its own page,

Are you sure that's the way it is right now? The only explicit page 
flushes I see are after the first and last header packets. In fact, the 
whole encoder loop works to hand frames to the codec *until* a page 
pops out the other end. AFAIK we're relying to libogg to flush whenever 
it feels like it.

> We could impose the following limitation, which would work in most 
> scenarios:  if a page contains multiple frames, and there are any 
> keyframes within that page, then the first frame in the page must be a 
> keyframe (and granulepos will reflect this, calling the whole page a 
> 'keyframe').

Interesting. Purple and I were discussing the same idea. For the sake 
of a live streaming server, I was thinking it might make sense to add a 
flush requirement *after* a keyframe. Given that symmetry, I'd guess 
neither idea will help much.

You seem to be assuming that you need packet-level information to do 
seeking, but really you only need to start on the right page, since ogg 
will require that framing start there anyway. Seeking often involves 
logic like 'find the page after the closest before the target' so you 
end up comparing pairs anyway, so you don't need the exact keyframe 
granulepos, just to bracket it.

At least, that's another approach.


--- >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