From 34b8af796341887766cfa02fe5f4383039919bb6 Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Thu, 16 Mar 2023 00:27:51 +0800 Subject: [PATCH] avformat/flvenc: use extract_extradata bsf when necessary Signed-off-by: Zhao Zhili --- libavformat/flvenc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 64ea554dad..fbf7eabaf8 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -1023,13 +1023,15 @@ fail: static int flv_check_bitstream(AVFormatContext *s, AVStream *st, const AVPacket *pkt) { - int ret = 1; - if (st->codecpar->codec_id == AV_CODEC_ID_AAC) { if (pkt->size > 2 && (AV_RB16(pkt->data) & 0xfff0) == 0xfff0) - ret = ff_stream_add_bitstream_filter(st, "aac_adtstoasc", NULL); + return ff_stream_add_bitstream_filter(st, "aac_adtstoasc", NULL); } - return ret; + if (!st->codecpar->extradata_size && + (st->codecpar->codec_id == AV_CODEC_ID_H264 || + st->codecpar->codec_id == AV_CODEC_ID_MPEG4)) + return ff_stream_add_bitstream_filter(st, "extract_extradata", NULL); + return 1; } static void flv_deinit(AVFormatContext *s)