[FFmpeg-devel] [PATCH] H.264 I-frames with SEI are also key frames

Jason Garrett-Glaser darkshikari
Fri Mar 6 12:17:56 CET 2009

On Fri, Mar 6, 2009 at 3:04 AM, madshi <dear at madshi.net> wrote:
>> Actually--wait a minute here. ?Any frame--period--that can be seeked
>> to--must do an *effective* reference list refresh. ?This can be done
>> through MMCO or, in the simplest case, having a stream with just 1
>> reference frame and then having an I-frame. ?Wouldn't the proper
>> solution be to "detect" seekable frames--even those that aren't
>> signaled as such--and allow seeking to them?
>> Dark Shikari
> I've never heard the term "MMCO" yet. So your reply is a bit
> over the top of my head. But if it's possible somehow to detect
> seekable frames simply by parsing the bitstream, then of course
> that would be the ultimate solution.
> Would you mind going into a bit more detail on how that would
> be done technically? This is something I could use in my own (non
> libav related) projects, too. So I find this quite interesting.
> Thanks!

A keyframe is defined as any frame which has no dependence on prior
frames.  In H.264, this dependency is represented in the form of the
reference list.  If, via whatever means are used, the reference list
at the time at which a given I-frame is displayed is empty, the frame
is a keyframe.

MMCO is one method of forcing previous frames to be dumped from the
reference frame list prematurely, to clear the reference list.

Dark Shikari

More information about the ffmpeg-devel mailing list