[Ffmpeg-devel] Compilation with --enable-theora fails

Keenan Pepper keenanpepper
Wed May 11 19:24:34 CEST 2005

Rich Felker wrote:
> When you say the frame number of the keyframe, do you mean just
> counting keyframes, or counting all frames? BTW this is the most
> incredibly idiotic thing I've ever heard of.. is it just an ugly hack
> to make up for the lack of a keyframe flag and index?

It's not idiotic! Ogg is a really low-level, general purpose stream 
container. Ogg couldn't care less about keyframes or even units of time, 
all Ogg needs is a monotonically increasing granulepos, and the way 
theora does it is clean and simple. BTW libtheora _already has_ a 
function to get the time from the granulepos, so it's pointless to 
reimplement it in ffmpeg. Here is all the math:

     ogg_int64_t iframe=granulepos>>pbi->keyframe_granule_shift;
     ogg_int64_t pframe=granulepos-(iframe<<pbi->keyframe_granule_shift);

     return (iframe+pframe)*

More information about the ffmpeg-devel mailing list