[theora-dev] current_granulepos-first_granulepos ?

Conrad Parker conrad at metadecks.org
Sun Jun 22 16:43:57 PDT 2008


2008/6/23 Jim Smith <jimjim197 at yahoo.com>:
> Hi,
>
> Is it correct to assume that after I get the headers of a stream like theora
> or vorbis the packet time can be computed as
>
> current_granulepos-first_granulepos ?
>
> This would give me the difference between the first media packet that is not
> a
> header and the current packet I decoded most recently. In a live stream I
> would have a
> clock from this calculation starting at zero.

not quite, because the first_granulepos denotes the time of the end of
the last packet in the first page -- if there are many packets in the
first page (as is common for vorbis), then there will be a difference
between the time of the start of the stream and first_granulepos.

Shane Stephens wrote some (nasty) code for calculating this for vorbis
etc. (in http://trac.annodex.net/browser/liboggz/trunk/src/liboggz/oggz_auto.c).
Of course I'd suggest you just use liboggz rather than re-implementing
that.

cheers,

Conrad.


More information about the theora-dev mailing list