rv34: move inverse transform functions to DSP context
[ffmpeg.git] / libavcodec / rv30dsp.c
index 4ead774..bcd1a46 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "avcodec.h"
 #include "dsputil.h"
+#include "rv34dsp.h"
 
 #define RV30_LOWPASS(OPNAME, OP) \
 static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
@@ -251,41 +252,49 @@ RV30_MC(put_, 16)
 RV30_MC(avg_, 8)
 RV30_MC(avg_, 16)
 
-av_cold void ff_rv30dsp_init(DSPContext* c, AVCodecContext *avctx) {
-    c->put_rv30_tpel_pixels_tab[0][ 0] = c->put_h264_qpel_pixels_tab[0][0];
-    c->put_rv30_tpel_pixels_tab[0][ 1] = put_rv30_tpel16_mc10_c;
-    c->put_rv30_tpel_pixels_tab[0][ 2] = put_rv30_tpel16_mc20_c;
-    c->put_rv30_tpel_pixels_tab[0][ 4] = put_rv30_tpel16_mc01_c;
-    c->put_rv30_tpel_pixels_tab[0][ 5] = put_rv30_tpel16_mc11_c;
-    c->put_rv30_tpel_pixels_tab[0][ 6] = put_rv30_tpel16_mc21_c;
-    c->put_rv30_tpel_pixels_tab[0][ 8] = put_rv30_tpel16_mc02_c;
-    c->put_rv30_tpel_pixels_tab[0][ 9] = put_rv30_tpel16_mc12_c;
-    c->put_rv30_tpel_pixels_tab[0][10] = put_rv30_tpel16_mc22_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 0] = c->avg_h264_qpel_pixels_tab[0][0];
-    c->avg_rv30_tpel_pixels_tab[0][ 1] = avg_rv30_tpel16_mc10_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 2] = avg_rv30_tpel16_mc20_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 4] = avg_rv30_tpel16_mc01_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 5] = avg_rv30_tpel16_mc11_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 6] = avg_rv30_tpel16_mc21_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 8] = avg_rv30_tpel16_mc02_c;
-    c->avg_rv30_tpel_pixels_tab[0][ 9] = avg_rv30_tpel16_mc12_c;
-    c->avg_rv30_tpel_pixels_tab[0][10] = avg_rv30_tpel16_mc22_c;
-    c->put_rv30_tpel_pixels_tab[1][ 0] = c->put_h264_qpel_pixels_tab[1][0];
-    c->put_rv30_tpel_pixels_tab[1][ 1] = put_rv30_tpel8_mc10_c;
-    c->put_rv30_tpel_pixels_tab[1][ 2] = put_rv30_tpel8_mc20_c;
-    c->put_rv30_tpel_pixels_tab[1][ 4] = put_rv30_tpel8_mc01_c;
-    c->put_rv30_tpel_pixels_tab[1][ 5] = put_rv30_tpel8_mc11_c;
-    c->put_rv30_tpel_pixels_tab[1][ 6] = put_rv30_tpel8_mc21_c;
-    c->put_rv30_tpel_pixels_tab[1][ 8] = put_rv30_tpel8_mc02_c;
-    c->put_rv30_tpel_pixels_tab[1][ 9] = put_rv30_tpel8_mc12_c;
-    c->put_rv30_tpel_pixels_tab[1][10] = put_rv30_tpel8_mc22_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 0] = c->avg_h264_qpel_pixels_tab[1][0];
-    c->avg_rv30_tpel_pixels_tab[1][ 1] = avg_rv30_tpel8_mc10_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 2] = avg_rv30_tpel8_mc20_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 4] = avg_rv30_tpel8_mc01_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 5] = avg_rv30_tpel8_mc11_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 6] = avg_rv30_tpel8_mc21_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 8] = avg_rv30_tpel8_mc02_c;
-    c->avg_rv30_tpel_pixels_tab[1][ 9] = avg_rv30_tpel8_mc12_c;
-    c->avg_rv30_tpel_pixels_tab[1][10] = avg_rv30_tpel8_mc22_c;
+av_cold void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp) {
+
+    ff_rv34dsp_init(c, dsp);
+
+    c->put_pixels_tab[0][ 0] = dsp->put_h264_qpel_pixels_tab[0][0];
+    c->put_pixels_tab[0][ 1] = put_rv30_tpel16_mc10_c;
+    c->put_pixels_tab[0][ 2] = put_rv30_tpel16_mc20_c;
+    c->put_pixels_tab[0][ 4] = put_rv30_tpel16_mc01_c;
+    c->put_pixels_tab[0][ 5] = put_rv30_tpel16_mc11_c;
+    c->put_pixels_tab[0][ 6] = put_rv30_tpel16_mc21_c;
+    c->put_pixels_tab[0][ 8] = put_rv30_tpel16_mc02_c;
+    c->put_pixels_tab[0][ 9] = put_rv30_tpel16_mc12_c;
+    c->put_pixels_tab[0][10] = put_rv30_tpel16_mc22_c;
+    c->avg_pixels_tab[0][ 0] = dsp->avg_h264_qpel_pixels_tab[0][0];
+    c->avg_pixels_tab[0][ 1] = avg_rv30_tpel16_mc10_c;
+    c->avg_pixels_tab[0][ 2] = avg_rv30_tpel16_mc20_c;
+    c->avg_pixels_tab[0][ 4] = avg_rv30_tpel16_mc01_c;
+    c->avg_pixels_tab[0][ 5] = avg_rv30_tpel16_mc11_c;
+    c->avg_pixels_tab[0][ 6] = avg_rv30_tpel16_mc21_c;
+    c->avg_pixels_tab[0][ 8] = avg_rv30_tpel16_mc02_c;
+    c->avg_pixels_tab[0][ 9] = avg_rv30_tpel16_mc12_c;
+    c->avg_pixels_tab[0][10] = avg_rv30_tpel16_mc22_c;
+    c->put_pixels_tab[1][ 0] = dsp->put_h264_qpel_pixels_tab[1][0];
+    c->put_pixels_tab[1][ 1] = put_rv30_tpel8_mc10_c;
+    c->put_pixels_tab[1][ 2] = put_rv30_tpel8_mc20_c;
+    c->put_pixels_tab[1][ 4] = put_rv30_tpel8_mc01_c;
+    c->put_pixels_tab[1][ 5] = put_rv30_tpel8_mc11_c;
+    c->put_pixels_tab[1][ 6] = put_rv30_tpel8_mc21_c;
+    c->put_pixels_tab[1][ 8] = put_rv30_tpel8_mc02_c;
+    c->put_pixels_tab[1][ 9] = put_rv30_tpel8_mc12_c;
+    c->put_pixels_tab[1][10] = put_rv30_tpel8_mc22_c;
+    c->avg_pixels_tab[1][ 0] = dsp->avg_h264_qpel_pixels_tab[1][0];
+    c->avg_pixels_tab[1][ 1] = avg_rv30_tpel8_mc10_c;
+    c->avg_pixels_tab[1][ 2] = avg_rv30_tpel8_mc20_c;
+    c->avg_pixels_tab[1][ 4] = avg_rv30_tpel8_mc01_c;
+    c->avg_pixels_tab[1][ 5] = avg_rv30_tpel8_mc11_c;
+    c->avg_pixels_tab[1][ 6] = avg_rv30_tpel8_mc21_c;
+    c->avg_pixels_tab[1][ 8] = avg_rv30_tpel8_mc02_c;
+    c->avg_pixels_tab[1][ 9] = avg_rv30_tpel8_mc12_c;
+    c->avg_pixels_tab[1][10] = avg_rv30_tpel8_mc22_c;
+
+    c->put_chroma_pixels_tab[0] = dsp->put_h264_chroma_pixels_tab[0];
+    c->put_chroma_pixels_tab[1] = dsp->put_h264_chroma_pixels_tab[1];
+    c->avg_chroma_pixels_tab[0] = dsp->avg_h264_chroma_pixels_tab[0];
+    c->avg_chroma_pixels_tab[1] = dsp->avg_h264_chroma_pixels_tab[1];
 }