[FFmpeg-devel] [PATCH] avcodec/h264_parser: remove key frame tagging heuristics

James Almer jamrial at gmail.com
Tue Jul 13 03:22:01 EEST 2021


On 7/12/2021 8:53 PM, Kieran Kunhya wrote:
> On Mon, 12 Jul 2021 at 20:33, James Almer <jamrial at gmail.com> wrote:
> 
>> None of these packets contain keyframes, and tagging them as such can
>> result in
>> non spec compliant output when remuxing into containers like mp4 and
>> Matroska,
>> where bogus samples would be marked as Sync Samples.
>>
>> Some tests are updated to reflect this.
>>
>> Suggested-by: ffmpeg at fb.com
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>>   libavcodec/h264_parser.c           |  8 --------
>>   tests/fate-run.sh                  |  4 ++--
>>   tests/fate/ffmpeg.mak              |  2 +-
>>   tests/fate/lavf-container.mak      | 12 ++++++------
>>   tests/fate/matroska.mak            |  2 +-
>>   tests/ref/fate/copy-trac2211-avi   |  2 +-
>>   tests/ref/fate/matroska-h264-remux |  4 ++--
>>   tests/ref/fate/segment-mp4-to-ts   | 10 +++++-----
>>   tests/ref/lavf-fate/h264.mp4       |  4 ++--
>>   9 files changed, 20 insertions(+), 28 deletions(-)
>>
>> diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
>> index d3c56cc188..e78c3679fb 100644
>> --- a/libavcodec/h264_parser.c
>> +++ b/libavcodec/h264_parser.c
>> @@ -344,10 +344,6 @@ static inline int
>> parse_nal_units(AVCodecParserContext *s,
>>               get_ue_golomb_long(&nal.gb);  // skip first_mb_in_slice
>>               slice_type   = get_ue_golomb_31(&nal.gb);
>>               s->pict_type = ff_h264_golomb_to_pict_type[slice_type % 5];
>> -            if (p->sei.recovery_point.recovery_frame_cnt >= 0) {
>> -                /* key frame, since recovery_frame_cnt is set */
>> -                s->key_frame = 1;
>> -            }
>>
> 
> Why remove this, this is a reasonable check for a key frame?

Because it isn't something that should be marked as a keyframe as coded 
bitstream in any kind of container, like it's the case of mp4 sync samples.

> 
> Kieran
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list