[theora] How to seek theora streams

Manolache Adrian prog_ady at yahoo.com
Thu Aug 20 03:22:14 PDT 2009

Thanks, i'll take a look into ligoggz and also give liboggplay a try.

--- On Thu, 8/20/09, Chris Pearce <chris at pearce.org.nz> wrote:

From: Chris Pearce <chris at pearce.org.nz>
Subject: Re: [theora] How to seek theora streams
To: "Manolache Adrian" <prog_ady at yahoo.com>
Cc: theora at xiph.org
Date: Thursday, August 20, 2009, 2:36 AM

Seeking robustly is hard.

A good place to start is by looking at liboggz's seeking code in oggz_seek.c, oggz_bounded_seek_set(). Conrad also has a seek-rewrite branch in his git repository which cleans up that code significantly.

An example of a program which uses liboggz's seeking is oggplayer. It uses liboggplay which in turn uses liboggz to seek:

However, liboggz does not seek back to the theora keyframe prior to your seek target. So if you use oggz_seek() and just start decoding from there, you'll get garbage in your theora frames until libtheora hits a keyframe packet.

This thread has some discussion of some solutions for this:

Do you need your seek to be millisecond accurate? If not, you can just do a rate-estimation (e.g. seek file to offset (file_size / media_duration) * seek_target), ogg_sync_pageseek(), and then decode forward from there. VLC takes this approach, and it works well enough.

All the best,
Chris Pearce.

On 20/08/2009 8:05 a.m., Manolache Adrian wrote:
> I need to be exposed to a way of seeking theora streams. I have
> repeatedly found the same question asked on a different forums but could
> not find an answer. I'm working on a game and started integrating video
> with theora, the sound works just fine with ogg/vorbis(i find it easy to
> seek using ov_raw_seek for audio files). Could someone please point me
> to some example/code of how can i seek with theora?
> ------------------------------------------------------------------------
> _______________________________________________
> theora mailing list
> theora at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/theora/attachments/20090820/94c75070/attachment.htm 

More information about the theora mailing list