[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