[theora-dev] Keyframe seeking in Ogg and spec

Tabuleiro beta at tabuleiro.com
Mon Sep 16 14:31:20 PDT 2002

> Yes, there are absolute timestamps.  Did you read the whole thing?

Yup, more than once, no need to be harsh. You wrote (for the simpler scheme,
for example):

 >In this scheme, the granulepos is a simple frame counter.  The
  seeking decision-maker in the codec's framework plugin is

A frame counter to me is different from an absolute time position, so this
was not clear in your post. When you described scheme 2, you wrote:

> In this scheme, only keyframes update the granulepos (monotonically
  or non-monotonically).  It simplifies the seeking process to a
  keyframe as an Ogg-level seek to page 'x' will always yield a page
  with a keyframe.

So in this case it also appears to me that the granulepos does not contain
information to determine an absolute position in time. No need to be harsh,
I did read the whole thing and this aspect is not clear, it is becoming
clearer now.

> > > Ideally it would be wonderful to have timestamps that could be
> > > used to synchronize audio and video in a meaningful way, and if I
> > > understand it correctly the proposed granulepos formats do not address
> > > this.
> They certainly do.

Well, if they do we don't have a problem, right? This was just not clear to
me (and apparently to other people as well) in your first post.
Reading your next post however we must assume that for VP3 we will supply
the frame rate in the header.

> The whole point is not carving a new timebase system into the lowest
> Ogg layers every time a code appears with a system that doesn't fit.
> All one needs to do is ask a codec 'I have this granulepos, convert it
> to an absolute timestamp, please'.  This aspect of a codec is
> required.  The stream handlers will always know absolute time
> position.  And it will still work in the future even if we have a
> video codec with no concept of fixed framerate.
> [You're even welcome to just use the granulepos as a straight
> timestamp in future codecs if you want... but that's specific to the

But the VP3 codec does not have this concept at this time. So this will need
to be implemented at the codec level (altering the codec bitstream), and I
believe this is the whole point for this discussion. Without additional
headers or a granulepos that encodes a straigth timestamp the VP3 codec
currently does not know the time location of a frame. Your suggestiong that
the granulepos is implemented as a straight timestamp seems to fit the bill
for the VP3 codec, without changing the bitstream. Either this or a frame
count with
a frame rate in the header, hence my other post.

> > > In Ogg, things like the duration of the whole video could come in the
> > > first
> > > page (you could send -1 for live transmissions, for example).
> ...or we can have the system we have now, which always works, is easy
> to use, and doesn't require supporting an additional optional
> mechanism that adds no functionality.

I did not understand this, could you please clarify? If you are streaming
something over a modem connection for example, how would you tell the
duration of the video at start? Is the seek operation to the end really

Mauricio Piacentini

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