[FFmpeg-devel] [PATCH 5/9] checkasm/motion: Don't allocate AVCodecContext

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Sep 25 21:04:53 EEST 2023


Instead use one on the stack to avoid pulling in all
of libavcodec.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
ff_me_cmp_init() reads only codec_id (checks whether it is Snow)
as well as the bitexact flag. The first check has been added in
cfe675269bf44c49590e9076b5d2cd2503804f98 due to alignment;
I don't know whether this is still an issue, as the ticket referred
to in this commit does not refer to track (or at least the current
incarnation of it), but to something else.

 tests/checkasm/motion.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/tests/checkasm/motion.c b/tests/checkasm/motion.c
index 87b20d1c10..71a0ee3fc0 100644
--- a/tests/checkasm/motion.c
+++ b/tests/checkasm/motion.c
@@ -118,16 +118,14 @@ static void test_motion(const char *name, me_cmp_func test_func)
 static void check_motion(void)
 {
     char buf[64];
-    AVCodecContext *av_ctx;
+    /* Setup AVCodecContext in a way that does not pull in all of libavcodec */
+    AVCodecContext av_ctx = { .codec_id = AV_CODEC_ID_NONE, .flags = AV_CODEC_FLAG_BITEXACT };
     MECmpContext me_ctx;
 
     memset(&me_ctx, 0, sizeof(me_ctx));
 
-    /* allocate AVCodecContext */
-    av_ctx = avcodec_alloc_context3(NULL);
-    av_ctx->flags |= AV_CODEC_FLAG_BITEXACT;
 
-    ff_me_cmp_init(&me_ctx, av_ctx);
+    ff_me_cmp_init(&me_ctx, &av_ctx);
 
     for (int i = 0; i < FF_ARRAY_ELEMS(me_ctx.pix_abs); i++) {
         for (int j = 0; j < FF_ARRAY_ELEMS(me_ctx.pix_abs[0]); j++) {
@@ -143,8 +141,6 @@ static void check_motion(void)
     }
     ME_CMP_1D_ARRAYS(XX)
 #undef XX
-
-    avcodec_free_context(&av_ctx);
 }
 
 void checkasm_check_motion(void)
-- 
2.34.1



More information about the ffmpeg-devel mailing list