@@ -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)
Instead use one on the stack to avoid pulling in all of libavcodec. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@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(-)