[theora] Key frame bitrate

Gregory Maxwell gmaxwell at gmail.com
Thu Feb 10 07:13:24 PST 2011

On Thu, Feb 10, 2011 at 4:29 AM, Andreas Engel <andreas.engel at bravis.eu> wrote:
> This sounds like a good idea. If you have a patch working for theora
> 1.1.1 I would sure like to test it. But I need the possibility to

I don't, I have a patch against the 1.2 (SVN) codebase.

> connect to a running stream without getting garbage at the start. In the
> current version I just have to wait for the first key frame. How can
> this be done with "rolling intra" ?

You would have to transmit an indication of how many frames ago the
decoder must have started to decode in order to have fully recovered
this by the point of this frame. The encoder could provide this
information. Normally it would be a constant, analogous to a keyframe
interval, but the encoder should have the freedom to vary it.

For ogg files what we've discussed doing in the past is retroactively
redefining the definition of the theora granpos. Right now it's
defined so that the first part gives the number of the prior keyframe
and the second part gives the number of subsequent frames since.  It
can be redefined so that the first part gives the number of the frame
where you'd have to start decoding and the second part is the number
of frames since, and files like this just work in some player software
that always do perfect reconstruction seeks (like firefox). They'll
see to the target frame, read the "keyframe number", then seek to that
and decode forward.

More information about the theora mailing list