diff options
Diffstat (limited to 'libavfilter/vf_mpdecimate.c')
-rw-r--r-- | libavfilter/vf_mpdecimate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libavfilter/vf_mpdecimate.c b/libavfilter/vf_mpdecimate.c index 099622a..c667a9f 100644 --- a/libavfilter/vf_mpdecimate.c +++ b/libavfilter/vf_mpdecimate.c @@ -28,6 +28,7 @@ #include "libavutil/pixdesc.h" #include "libavutil/timestamp.h" #include "libavcodec/dsputil.h" +#include "libavcodec/pixblockdsp.h" #include "avfilter.h" #include "internal.h" #include "formats.h" @@ -49,6 +50,7 @@ typedef struct { int hsub, vsub; ///< chroma subsampling values AVFrame *ref; ///< reference picture DSPContext dspctx; ///< context providing optimized diff routines + PixblockDSPContext pdsp; AVCodecContext *avctx; ///< codec context required for the DSPContext } DecimateContext; @@ -75,6 +77,7 @@ static int diff_planes(AVFilterContext *ctx, { DecimateContext *decimate = ctx->priv; DSPContext *dspctx = &decimate->dspctx; + PixblockDSPContext *pdsp = &decimate->pdsp; int x, y; int d, c = 0; @@ -84,7 +87,7 @@ static int diff_planes(AVFilterContext *ctx, /* compute difference for blocks of 8x8 bytes */ for (y = 0; y < h-7; y += 4) { for (x = 8; x < w-7; x += 4) { - dspctx->diff_pixels(block, + pdsp->diff_pixels(block, cur+x+y*linesize, ref+x+y*linesize, linesize); d = dspctx->sum_abs_dctelem(block); @@ -141,6 +144,7 @@ static av_cold int init(AVFilterContext *ctx) if (!decimate->avctx) return AVERROR(ENOMEM); avpriv_dsputil_init(&decimate->dspctx, decimate->avctx); + ff_pixblockdsp_init(&decimate->pdsp, decimate->avctx); return 0; } |