From 580fb6a8c94e7a41c8160186289fd852a9c1f5cd Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Tue, 19 Apr 2022 13:12:49 +0800 Subject: [PATCH] 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 --- libavformat/mov.c | 4 +--- 1 file changed, 1 insertion(+), 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