[theora-dev] How to get the duration of a file or track?
Ken Larson
forum at larsontechnologies.com
Mon Aug 27 15:59:44 PDT 2007
Ralph -
Thanks, that will come in handy, because I do eventually need to try to
determine duration of individual frames.
Actually, I phrased my question badly though: What I originally wanted
to know was how to find the total duration of the movie.
Thanks,
Ken
Ralph Giles wrote:
> On Thu, Aug 23, 2007 at 07:13:17AM -0400, Ken Larson wrote:
>
>
>> I'm starting with the theora player_example.c. I want to be able to
>> determine the duration of the audio/video ahead of time, to be able to
>> display it somewhere.
>>
>> I can't see anything obvious in ogg.h, theora.h, or vorbis.h for this.
>>
>
> It's a little complicated. First you bisection-search based on the ogg
> page serial numbers to find all the chain segments. Then you read the
> bos pages for each chain segment to identify the codecs and get their
> granulepos mappings. Then you read the first and last data packets for
> each stream in each chain segment and use those to calculate the
> duration of each segment. The length of the ogg stream is the sum of the
> durations of each segment.
>
>
>> Can anyone help me with the right place to look to do this?
>>
>
> You might take a look at liboggplay; it's a convenience library that
> does this for general streams, as well as general playback marshalling.
>
> http://svn.annodex.net/liboggplay/trunk/include/oggplay/oggplay.h
>
> HTH,
> -r
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/theora-dev/attachments/20070827/f8793678/attachment.htm
More information about the theora-dev
mailing list