diff options
author | Zhao Zhili <quinkblack@foxmail.com> | 2022-04-19 13:12:49 +0800 |
---|---|---|
committer | Zhao Zhili <zhilizhao@tencent.com> | 2022-05-04 00:35:50 +0800 |
commit | 580fb6a8c94e7a41c8160186289fd852a9c1f5cd (patch) | |
tree | 5cf6f246f79bb69158867686cdb533e070d60c97 | |
parent | e561d16d49420d3cd23f04a588f64b64def669b6 (diff) | |
download | ffmpeg-580fb6a8c94e7a41c8160186289fd852a9c1f5cd.tar.gz |
avformat/mov: skip call ff_codec_get_id if possible
ff_codec_get_id loops over ff_codec_movvideo_tags (which is a large
array) two times. The result is unused most of the cases.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-rw-r--r-- | libavformat/mov.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index 0f63d997fc..24cce47884 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2489,8 +2489,6 @@ static int mov_skip_multiple_stsd(MOVContext *c, AVIOContext *pb, int codec_tag, int format, int64_t size) { - int video_codec_id = ff_codec_get_id(ff_codec_movvideo_tags, format); - if (codec_tag && (codec_tag != format && // AVID 1:1 samples with differing data format and codec tag exist @@ -2499,7 +2497,7 @@ static int mov_skip_multiple_stsd(MOVContext *c, AVIOContext *pb, codec_tag != AV_RL32("apcn") && codec_tag != AV_RL32("apch") && // so is dv (sigh) codec_tag != AV_RL32("dvpp") && codec_tag != AV_RL32("dvcp") && - (c->fc->video_codec_id ? video_codec_id != c->fc->video_codec_id + (c->fc->video_codec_id ? ff_codec_get_id(ff_codec_movvideo_tags, format) != c->fc->video_codec_id : codec_tag != MKTAG('j','p','e','g')))) { /* Multiple fourcc, we skip JPEG. This is not correct, we should * export it as a separate AVStream but this needs a few changes |