diff --git a/libavcodec/arm/rv34dsp_init_arm.c b/libavcodec/arm/rv34dsp_init_arm.c
index 10ff64704b8bfc56155752db277b33fd056627fc..8bfe90b3d33ea88c94c98886b8964f77da54dc7e 100644
--- a/libavcodec/arm/rv34dsp_init_arm.c
+++ b/libavcodec/arm/rv34dsp_init_arm.c
@@ -32,7 +32,7 @@ void ff_rv34_inv_transform_noround_dc_neon(int16_t *block);
 void ff_rv34_idct_add_neon(uint8_t *dst, ptrdiff_t stride, int16_t *block);
 void ff_rv34_idct_dc_add_neon(uint8_t *dst, ptrdiff_t stride, int dc);
 
-av_cold void ff_rv34dsp_init_arm(RV34DSPContext *c, DSPContext *dsp)
+av_cold void ff_rv34dsp_init_arm(RV34DSPContext *c)
 {
     int cpu_flags = av_get_cpu_flags();
 
diff --git a/libavcodec/arm/rv40dsp_init_arm.c b/libavcodec/arm/rv40dsp_init_arm.c
index 8fd0b9f6e3377447f4b00a97950d2f2ea0294a43..59ef10b24b5a78e3fd8ed7b59e918bceeb4aaf2e 100644
--- a/libavcodec/arm/rv40dsp_init_arm.c
+++ b/libavcodec/arm/rv40dsp_init_arm.c
@@ -139,7 +139,7 @@ static av_cold void ff_rv40dsp_init_neon(RV34DSPContext *c)
     c->rv40_weak_loop_filter[1]     = ff_rv40_v_weak_loop_filter_neon;
 }
 
-av_cold void ff_rv40dsp_init_arm(RV34DSPContext *c, DSPContext *dsp)
+av_cold void ff_rv40dsp_init_arm(RV34DSPContext *c)
 {
     int cpu_flags = av_get_cpu_flags();
 
diff --git a/libavcodec/rv30dsp.c b/libavcodec/rv30dsp.c
index 2f54a5fbe8f9df6264069cf6d93e5b60e3b7cc9e..2a667e31f43725362fe72fb8c0cd396de95cb619 100644
--- a/libavcodec/rv30dsp.c
+++ b/libavcodec/rv30dsp.c
@@ -254,11 +254,12 @@ RV30_MC(put_, 16)
 RV30_MC(avg_, 8)
 RV30_MC(avg_, 16)
 
-av_cold void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp) {
+av_cold void ff_rv30dsp_init(RV34DSPContext *c)
+{
     H264ChromaContext h264chroma;
     H264QpelContext qpel;
 
-    ff_rv34dsp_init(c, dsp);
+    ff_rv34dsp_init(c);
     ff_h264chroma_init(&h264chroma, 8);
     ff_h264qpel_init(&qpel, 8);
 
diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index 7a9778a1018f21adb5e97f2e5b9a2ce2c421a89e..eb431ee1e2e193d37de6b488af8468be7345f007 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -1495,11 +1495,11 @@ av_cold int ff_rv34_decode_init(AVCodecContext *avctx)
 
 #if CONFIG_RV30_DECODER
     if (avctx->codec_id == AV_CODEC_ID_RV30)
-        ff_rv30dsp_init(&r->rdsp, &r->s.dsp);
+        ff_rv30dsp_init(&r->rdsp);
 #endif
 #if CONFIG_RV40_DECODER
     if (avctx->codec_id == AV_CODEC_ID_RV40)
-        ff_rv40dsp_init(&r->rdsp, &r->s.dsp);
+        ff_rv40dsp_init(&r->rdsp);
 #endif
 
     if ((ret = rv34_decoder_alloc(r)) < 0)
diff --git a/libavcodec/rv34dsp.c b/libavcodec/rv34dsp.c
index 676e823787fe0c1f4a173c6e975d3e53a96dddf6..7234ee808b8f5683ce61c3e1210e4765458e9aec 100644
--- a/libavcodec/rv34dsp.c
+++ b/libavcodec/rv34dsp.c
@@ -24,7 +24,7 @@
  * @file
  * RV30/40 decoder common dsp functions
  */
-#include "dsputil.h"
+
 #include "rv34dsp.h"
 #include "libavutil/common.h"
 
@@ -128,7 +128,8 @@ static void rv34_inv_transform_dc_noround_c(int16_t *block)
 /** @} */ // transform
 
 
-av_cold void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp) {
+av_cold void ff_rv34dsp_init(RV34DSPContext *c)
+{
     c->rv34_inv_transform    = rv34_inv_transform_noround_c;
     c->rv34_inv_transform_dc = rv34_inv_transform_dc_noround_c;
 
@@ -136,7 +137,7 @@ av_cold void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp) {
     c->rv34_idct_dc_add = rv34_idct_dc_add_c;
 
     if (ARCH_ARM)
-        ff_rv34dsp_init_arm(c, dsp);
+        ff_rv34dsp_init_arm(c);
     if (ARCH_X86)
-        ff_rv34dsp_init_x86(c, dsp);
+        ff_rv34dsp_init_x86(c);
 }
diff --git a/libavcodec/rv34dsp.h b/libavcodec/rv34dsp.h
index 6d2f8345ccd112439c952c7bf10a7b8a7d3588ff..c5d4e39f4f765eeb5cf76111e6a843c7858deca9 100644
--- a/libavcodec/rv34dsp.h
+++ b/libavcodec/rv34dsp.h
@@ -74,14 +74,14 @@ typedef struct RV34DSPContext {
     rv40_loop_filter_strength_func rv40_loop_filter_strength[2];
 } RV34DSPContext;
 
-void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp);
-void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp);
-void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp);
+void ff_rv30dsp_init(RV34DSPContext *c);
+void ff_rv34dsp_init(RV34DSPContext *c);
+void ff_rv40dsp_init(RV34DSPContext *c);
 
-void ff_rv34dsp_init_arm(RV34DSPContext *c, DSPContext *dsp);
-void ff_rv34dsp_init_x86(RV34DSPContext *c, DSPContext *dsp);
+void ff_rv34dsp_init_arm(RV34DSPContext *c);
+void ff_rv34dsp_init_x86(RV34DSPContext *c);
 
-void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp);
-void ff_rv40dsp_init_arm(RV34DSPContext *c, DSPContext *dsp);
+void ff_rv40dsp_init_x86(RV34DSPContext *c);
+void ff_rv40dsp_init_arm(RV34DSPContext *c);
 
 #endif /* AVCODEC_RV34DSP_H */
diff --git a/libavcodec/rv40dsp.c b/libavcodec/rv40dsp.c
index 99b458c8f04e086aed9b7f89f5c2d1e81db47dbc..cea4552a513e4f7a7e0376a741921eef9f0f87c3 100644
--- a/libavcodec/rv40dsp.c
+++ b/libavcodec/rv40dsp.c
@@ -25,7 +25,6 @@
  */
 
 #include "avcodec.h"
-#include "dsputil.h"
 #include "h264qpel.h"
 #include "rv34dsp.h"
 #include "libavutil/avassert.h"
@@ -519,10 +518,11 @@ static int rv40_v_loop_filter_strength(uint8_t *src, ptrdiff_t stride,
     return rv40_loop_filter_strength(src, 1, stride, beta, beta2, edge, p1, q1);
 }
 
-av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) {
+av_cold void ff_rv40dsp_init(RV34DSPContext *c)
+{
     H264QpelContext qpel;
 
-    ff_rv34dsp_init(c, dsp);
+    ff_rv34dsp_init(c);
     ff_h264qpel_init(&qpel, 8);
 
     c->put_pixels_tab[0][ 0] = qpel.put_h264_qpel_pixels_tab[0][0];
@@ -608,7 +608,7 @@ av_cold void ff_rv40dsp_init(RV34DSPContext *c, DSPContext* dsp) {
     c->rv40_loop_filter_strength[1] = rv40_v_loop_filter_strength;
 
     if (ARCH_X86)
-        ff_rv40dsp_init_x86(c, dsp);
+        ff_rv40dsp_init_x86(c);
     if (ARCH_ARM)
-        ff_rv40dsp_init_arm(c, dsp);
+        ff_rv40dsp_init_arm(c);
 }
diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile
index 111fdedf470bddcd2978346cd6efd51c1873c491..30264d78c6ef6da94a82201a26d8635afd1dbb33 100644
--- a/libavcodec/x86/Makefile
+++ b/libavcodec/x86/Makefile
@@ -6,6 +6,7 @@ OBJS-$(CONFIG_CAVS_DECODER)            += x86/cavsdsp.o
 OBJS-$(CONFIG_DNXHD_ENCODER)           += x86/dnxhdenc.o
 OBJS-$(CONFIG_FFT)                     += x86/fft_init.o
 OBJS-$(CONFIG_GPL)                     += x86/idct_mmx.o
+OBJS-$(CONFIG_H264CHROMA)              += x86/h264chroma_init.o
 OBJS-$(CONFIG_H264DSP)                 += x86/h264dsp_init.o
 OBJS-$(CONFIG_H264PRED)                += x86/h264_intrapred_init.o
 OBJS-$(CONFIG_H264QPEL)                += x86/h264_qpel.o
@@ -51,8 +52,7 @@ YASM-OBJS-$(CONFIG_DIRAC_DECODER)      += x86/diracdsp_mmx.o x86/diracdsp_yasm.o
                                           x86/dwt_yasm.o
 YASM-OBJS-$(CONFIG_ENCODERS)           += x86/dsputilenc.o
 YASM-OBJS-$(CONFIG_FFT)                += x86/fft.o
-YASM-OBJS-$(CONFIG_H264CHROMA)         += x86/h264chroma_init.o         \
-                                          x86/h264_chromamc.o           \
+YASM-OBJS-$(CONFIG_H264CHROMA)         += x86/h264_chromamc.o           \
                                           x86/h264_chromamc_10bit.o
 YASM-OBJS-$(CONFIG_H264DSP)            += x86/h264_deblock.o            \
                                           x86/h264_deblock_10bit.o      \
diff --git a/libavcodec/x86/h264chroma_init.c b/libavcodec/x86/h264chroma_init.c
index b9783d669324e565e39dea5b105d36ded5e5b132..6fc9a436d3a43ac629eaf6dd217e6501709bced5 100644
--- a/libavcodec/x86/h264chroma_init.c
+++ b/libavcodec/x86/h264chroma_init.c
@@ -68,6 +68,7 @@ CHROMA_MC(avg, 8, 10, avx)
 
 void ff_h264chroma_init_x86(H264ChromaContext *c, int bit_depth)
 {
+#if HAVE_YASM
     int high_bit_depth = bit_depth > 8;
     int mm_flags       = av_get_cpu_flags();
 
@@ -113,4 +114,5 @@ void ff_h264chroma_init_x86(H264ChromaContext *c, int bit_depth)
         c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_10_avx;
         c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_10_avx;
     }
+#endif
 }
diff --git a/libavcodec/x86/rv34dsp_init.c b/libavcodec/x86/rv34dsp_init.c
index a93096791b706e5573d6340e7ae0b87599247040..70f86299bb90fe1d5add0ea22eea3e61dc44ec1d 100644
--- a/libavcodec/x86/rv34dsp_init.c
+++ b/libavcodec/x86/rv34dsp_init.c
@@ -31,7 +31,7 @@ void ff_rv34_idct_dc_add_mmx(uint8_t *dst, ptrdiff_t stride, int dc);
 void ff_rv34_idct_dc_add_sse4(uint8_t *dst, ptrdiff_t stride, int dc);
 void ff_rv34_idct_add_mmxext(uint8_t *dst, ptrdiff_t stride, int16_t *block);
 
-av_cold void ff_rv34dsp_init_x86(RV34DSPContext* c, DSPContext *dsp)
+av_cold void ff_rv34dsp_init_x86(RV34DSPContext* c)
 {
     int mm_flags = av_get_cpu_flags();
 
diff --git a/libavcodec/x86/rv40dsp_init.c b/libavcodec/x86/rv40dsp_init.c
index 21cde04c00ac3a2863389379690d144373219087..51e98520cf3a333033fce3385dad8ad2b41b3b34 100644
--- a/libavcodec/x86/rv40dsp_init.c
+++ b/libavcodec/x86/rv40dsp_init.c
@@ -188,7 +188,7 @@ QPEL_FUNCS_SET (OP, 3, 2, OPT)
 
 #endif /* HAVE_YASM */
 
-av_cold void ff_rv40dsp_init_x86(RV34DSPContext *c, DSPContext *dsp)
+av_cold void ff_rv40dsp_init_x86(RV34DSPContext *c)
 {
 #if HAVE_YASM
     int mm_flags = av_get_cpu_flags();