diff --git a/libavcodec/snow.c b/libavcodec/snow.c
index b9dab45c5fc67bf431d08af168140dc1f0db0ad8..153e5b2286357ce310cd36628fd76732e0875d51 100644
--- a/libavcodec/snow.c
+++ b/libavcodec/snow.c
@@ -349,7 +349,7 @@ void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, int stride,
         src += sx + sy*stride;
         if(   (unsigned)sx >= w - b_w - (HTAPS_MAX-2)
            || (unsigned)sy >= h - b_h - (HTAPS_MAX-2)){
-            s->dsp.emulated_edge_mc(tmp + MB_SIZE, src, stride, b_w+HTAPS_MAX-1, b_h+HTAPS_MAX-1, sx, sy, w, h);
+            s->vdsp.emulated_edge_mc(tmp + MB_SIZE, src, stride, b_w+HTAPS_MAX-1, b_h+HTAPS_MAX-1, sx, sy, w, h);
             src= tmp + MB_SIZE;
         }
 //        assert(b_w == b_h || 2*b_w == b_h || b_w == 2*b_h);
@@ -402,6 +402,7 @@ av_cold int ff_snow_common_init(AVCodecContext *avctx){
     s->max_ref_frames=1; //just make sure its not an invalid value in case of no initial keyframe
 
     ff_dsputil_init(&s->dsp, avctx);
+    ff_videodsp_init(&s->vdsp, 8);
     ff_dwt_init(&s->dwt);
 
 #define mcf(dx,dy)\
diff --git a/libavcodec/snow.h b/libavcodec/snow.h
index abf330962c7fed18d2f8d0075f52e80f03a04585..b9881155fe445cb75cbd66f1075bc58730a8e3ae 100644
--- a/libavcodec/snow.h
+++ b/libavcodec/snow.h
@@ -108,6 +108,7 @@ typedef struct SnowContext{
     AVCodecContext *avctx;
     RangeCoder c;
     DSPContext dsp;
+    VideoDSPContext vdsp;
     DWTContext dwt;
     AVFrame new_picture;
     AVFrame input_picture;              ///< new_picture with the internal linesizes