MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / me_cmp_init

Function me_cmp_init

libavcodec/mpegvideo_enc.c:330–370  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330static av_cold int me_cmp_init(MPVMainEncContext *const m, AVCodecContext *avctx)
331{
332 MPVEncContext *const s = &m->s;
333 MECmpContext mecc;
334 me_cmp_func me_cmp[6];
335 int ret;
336
337 ff_me_cmp_init(&mecc, avctx);
338 ret = ff_me_init(&s->me, avctx, &mecc, 1);
339 if (ret < 0)
340 return ret;
341 ret = ff_set_cmp(&mecc, me_cmp, m->frame_skip_cmp, 1);
342 if (ret < 0)
343 return ret;
344 m->frame_skip_cmp_fn = me_cmp[1];
345 if (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) {
346 ret = ff_set_cmp(&mecc, me_cmp, avctx->ildct_cmp, 1);
347 if (ret < 0)
348 return ret;
349 if (!me_cmp[0] || !me_cmp[4])
350 return AVERROR(EINVAL);
351 s->ildct_cmp[0] = me_cmp[0];
352 s->ildct_cmp[1] = me_cmp[4];
353 }
354
355 s->sum_abs_dctelem = mecc.sum_abs_dctelem;
356
357 s->sse_cmp[0] = mecc.sse[0];
358 s->sse_cmp[1] = mecc.sse[1];
359 s->sad_cmp[0] = mecc.sad[0];
360 s->sad_cmp[1] = mecc.sad[1];
361 if (avctx->mb_cmp == FF_CMP_NSSE) {
362 s->n_sse_cmp[0] = mecc.nsse[0];
363 s->n_sse_cmp[1] = mecc.nsse[1];
364 } else {
365 s->n_sse_cmp[0] = mecc.sse[0];
366 s->n_sse_cmp[1] = mecc.sse[1];
367 }
368
369 return 0;
370}
371
372#define ALLOCZ_ARRAYS(p, mult, numb) ((p) = av_calloc(numb, mult * sizeof(*(p))))
373static av_cold int init_matrices(MPVMainEncContext *const m, AVCodecContext *avctx)

Callers 1

ff_mpv_encode_initFunction · 0.85

Calls 3

ff_me_cmp_initFunction · 0.85
ff_me_initFunction · 0.85
ff_set_cmpFunction · 0.85

Tested by

no test coverage detected