Re: current_granulepos-first_granulepos ?
"Conrad Parker" <[email protected]>
| Newsgroups | gmane.comp.multimedia.ogg.theora.devel |
|---|---|
| Message-ID | <[email protected]> |
2008/6/23 Jim Smith <[email protected]>: > 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.