[FFmpeg-cvslog] avformat/mov: skip call ff_codec_get_id if possible

Zhao Zhili git at videolan.org
Tue May 3 19:44:02 EEST 2022


ffmpeg | branch: master | Zhao Zhili <quinkblack at foxmail.com> | Tue Apr 19 13:12:49 2022 +0800| [580fb6a8c94e7a41c8160186289fd852a9c1f5cd] | committer: Zhao Zhili

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 at tencent.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=580fb6a8c94e7a41c8160186289fd852a9c1f5cd
---

 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



More information about the ffmpeg-cvslog mailing list