]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_mpdecimate.c
Merge commit 'e0a2e60c0a6cbcceef08e94af5081d2aa8e6a52f'
[ffmpeg] / libavfilter / vf_mpdecimate.c
index 099622a029542347538317d4831f96321b52efb5..b030f06b19e18dc7c88f8a33ab14f6867399a80f 100644 (file)
@@ -27,7 +27,8 @@
 #include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/timestamp.h"
-#include "libavcodec/dsputil.h"
+#include "libavcodec/me_cmp.h"
+#include "libavcodec/pixblockdsp.h"
 #include "avfilter.h"
 #include "internal.h"
 #include "formats.h"
@@ -48,7 +49,8 @@ typedef struct {
 
     int hsub, vsub;                ///< chroma subsampling values
     AVFrame *ref;                  ///< reference picture
-    DSPContext dspctx;             ///< context providing optimized diff routines
+    MECmpContext mecc;             ///< context providing optimized diff routines
+    PixblockDSPContext pdsp;
     AVCodecContext *avctx;         ///< codec context required for the DSPContext
 } DecimateContext;
 
@@ -74,7 +76,8 @@ static int diff_planes(AVFilterContext *ctx,
                        int w, int h)
 {
     DecimateContext *decimate = ctx->priv;
-    DSPContext *dspctx = &decimate->dspctx;
+    MECmpContext *mecc = &decimate->mecc;
+    PixblockDSPContext *pdsp = &decimate->pdsp;
 
     int x, y;
     int d, c = 0;
@@ -84,10 +87,10 @@ 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);
+            d = mecc->sum_abs_dctelem(block);
             if (d > decimate->hi)
                 return 1;
             if (d > decimate->lo) {
@@ -140,7 +143,8 @@ static av_cold int init(AVFilterContext *ctx)
     decimate->avctx = avcodec_alloc_context3(NULL);
     if (!decimate->avctx)
         return AVERROR(ENOMEM);
-    avpriv_dsputil_init(&decimate->dspctx, decimate->avctx);
+    ff_me_cmp_init(&decimate->mecc, decimate->avctx);
+    ff_pixblockdsp_init(&decimate->pdsp, decimate->avctx);
 
     return 0;
 }