diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c
index c3eebfabbb3a3b7d3fd7977e31d2a3ed00718613..1188974dc907cee5ef9fe431130d1e4e72e1bf64 100644
--- a/libavcodec/cavs.c
+++ b/libavcodec/cavs.c
@@ -328,6 +328,15 @@ static void intra_pred_lp_top(uint8_t *d,uint8_t *top,uint8_t *left,int stride)
 
 #undef LOWPASS
 
+static inline void modify_pred(const int8_t *mod_table, int *mode)
+{
+    *mode = mod_table[*mode];
+    if(*mode < 0) {
+        av_log(NULL, AV_LOG_ERROR, "Illegal intra prediction mode\n");
+        *mode = 0;
+    }
+}
+
 void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv) {
     /* save pred modes before they get modified */
     h->pred_mode_Y[3] =  h->pred_mode_Y[5];
diff --git a/libavcodec/cavs.h b/libavcodec/cavs.h
index e18503ba4b5e442b83dd50d5ec3e0ad7449a3bdb..8f5da54b3ac35face148d67f4fa57cd01f55da54 100644
--- a/libavcodec/cavs.h
+++ b/libavcodec/cavs.h
@@ -229,25 +229,6 @@ extern const uint8_t     ff_cavs_partition_flags[30];
 extern const cavs_vector ff_cavs_intra_mv;
 extern const cavs_vector ff_cavs_dir_mv;
 
-static inline void modify_pred(const int8_t *mod_table, int *mode)
-{
-    *mode = mod_table[*mode];
-    if(*mode < 0) {
-        av_log(NULL, AV_LOG_ERROR, "Illegal intra prediction mode\n");
-        *mode = 0;
-    }
-}
-
-static inline void set_intra_mode_default(AVSContext *h) {
-    if(h->stream_revision > 0) {
-        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = NOT_AVAIL;
-        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
-    } else {
-        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = INTRA_L_LP;
-        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
-    }
-}
-
 static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
     switch(size) {
     case BLK_16X16:
@@ -262,35 +243,6 @@ static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
     }
 }
 
-static inline void set_mv_intra(AVSContext *h) {
-    h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
-    set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
-    h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
-    set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
-    if(h->pic_type != AV_PICTURE_TYPE_B)
-        h->col_type_base[h->mbidx] = I_8X8;
-}
-
-static inline int dequant(AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf,
-                          DCTELEM *dst, int mul, int shift, int coeff_num) {
-    int round = 1 << (shift - 1);
-    int pos = -1;
-    const uint8_t *scantab = h->scantable.permutated;
-
-    /* inverse scan and dequantization */
-    while(--coeff_num >= 0){
-        pos += run_buf[coeff_num];
-        if(pos > 63) {
-            av_log(h->s.avctx, AV_LOG_ERROR,
-                "position out of block bounds at pic %d MB(%d,%d)\n",
-                h->picture.poc, h->mbx, h->mby);
-            return -1;
-        }
-        dst[scantab[pos]] = (level_buf[coeff_num]*mul + round) >> shift;
-    }
-    return 0;
-}
-
 void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type);
 void ff_cavs_load_intra_pred_luma(AVSContext *h, uint8_t *top, uint8_t **left,
                                   int block);
diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c
index 8dae8911ebbfdeb7360394a480a59cafa95bd5e4..e70dad038a02062b5ab45b16025923fd42c73c34 100644
--- a/libavcodec/cavsdec.c
+++ b/libavcodec/cavsdec.c
@@ -511,6 +511,26 @@ static inline int get_ue_code(GetBitContext *gb, int order) {
     return get_ue_golomb(gb);
 }
 
+static inline int dequant(AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf,
+                          DCTELEM *dst, int mul, int shift, int coeff_num) {
+    int round = 1 << (shift - 1);
+    int pos = -1;
+    const uint8_t *scantab = h->scantable.permutated;
+
+    /* inverse scan and dequantization */
+    while(--coeff_num >= 0){
+        pos += run_buf[coeff_num];
+        if(pos > 63) {
+            av_log(h->s.avctx, AV_LOG_ERROR,
+                "position out of block bounds at pic %d MB(%d,%d)\n",
+                h->picture.poc, h->mbx, h->mby);
+            return -1;
+        }
+        dst[scantab[pos]] = (level_buf[coeff_num]*mul + round) >> shift;
+    }
+    return 0;
+}
+
 /**
  * decode coefficients from one 8x8 block, dequantize, inverse transform
  *  and add them to sample block
@@ -597,6 +617,15 @@ static inline int decode_residual_inter(AVSContext *h) {
  *
  ****************************************************************************/
 
+static inline void set_mv_intra(AVSContext *h) {
+    h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
+    set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
+    h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
+    set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
+    if(h->pic_type != AV_PICTURE_TYPE_B)
+        h->col_type_base[h->mbidx] = I_8X8;
+}
+
 static int decode_mb_i(AVSContext *h, int cbp_code) {
     GetBitContext *gb = &h->s.gb;
     unsigned pred_mode_uv;
@@ -664,6 +693,16 @@ static int decode_mb_i(AVSContext *h, int cbp_code) {
     return 0;
 }
 
+static inline void set_intra_mode_default(AVSContext *h) {
+    if(h->stream_revision > 0) {
+        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = NOT_AVAIL;
+        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
+    } else {
+        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = INTRA_L_LP;
+        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
+    }
+}
+
 static void decode_mb_p(AVSContext *h, enum cavs_mb mb_type) {
     GetBitContext *gb = &h->s.gb;
     int ref[4];