[FFmpeg-devel] [PATCH] libavcodec/h261dec: Fix keyframe markup and frame skipping.

Andrey Semashev andrey.semashev at gmail.com
Wed Oct 30 14:52:24 EET 2019


On 2019-10-30 14:40, Michael Niedermayer wrote:
> On Tue, Oct 29, 2019 at 04:39:16PM +0300, Andrey Semashev wrote:
>> On 2019-10-26 14:05, Andrey Semashev wrote:
>>> The decoder never marks pictures as I-frames, which results in no
>>> keyframe indication and incorrect frame skipping, in cases when
>>> keyframes should be decoded.
>>>
>>> This commit works around this decoder limitation and marks I-frames
>>> and keyframes based on "freeze picture release" bit in h261 picture
>>> header. This reflects h261enc behavior.
>>
>> So, is this patch acceptable? If yes, could someone merge it please?
> 
> The patch does 2 things
> 
> 1. it skips !freeze_picture_release frames if the user wants non key frames
>      skiped
> 
> that seems reasonable
> 
> 
> 2. it marks freeze_picture_release frames as key/intra frames
> 
> i do not know if this is a good idea as i do not know if every
> encoder sets this on key frames. Our encoder is not every encoder
> 
> If the patch intstead would set the flag depending on the blocks
> then i would apply it
> 
> otherwise it would be nice to see a bit more evidence that this
> flag is really always set for keyframes by most encoders.
> Or maybe someone "knows" this then it can be applied too.
> 
> So I cant awnser if the patch is acceptable as is as i do not
> know from the information provided how widely this flag is set
> on keyframes

Obviously, I cannot say that every encoder in the world sets 
freeze_picture_release on keyframes. I quoted the H.261 spec that says 
that that should be the case and h261enc follows it. I cannot provide 
any more solid evidence.

PS: Note that skipping non-keyframes and marking frames as keyframes 
should be related. You can't accept the skipping part but not the 
marking part.


More information about the ffmpeg-devel mailing list