summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-03-16 00:27:51 +0800
committerZhao Zhili <zhilizhao@tencent.com>2023-04-09 21:44:29 +0800
commit34b8af796341887766cfa02fe5f4383039919bb6 (patch)
treed534347836111a5493ba1dabda9f0adaf83a57ae /libavformat
parent639ded10e3599b7dd52a4bd7c06589689d177d08 (diff)
downloadffmpeg-34b8af796341887766cfa02fe5f4383039919bb6.tar.gz
avformat/flvenc: use extract_extradata bsf when necessary
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/flvenc.c10
1 files 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)