]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/rv34dsp.c
vf_deshake: remove unused variable totalangles
[ffmpeg] / libavcodec / rv34dsp.c
index 1f4cea8544f5c8af6bbe23acc2b9aa6e717c1f09..1767be4173e4db32a42606cc427bf08d86e2381b 100644 (file)
@@ -97,13 +97,37 @@ static void rv34_inv_transform_noround_c(DCTELEM *block){
     }
 }
 
+static void rv34_inv_transform_dc_c(DCTELEM *block)
+{
+    DCTELEM dc = (13 * 13 * block[0] + 0x200) >> 10;
+    int i, j;
+
+    for (i = 0; i < 4; i++, block += 8)
+        for (j = 0; j < 4; j++)
+            block[j] = dc;
+}
+
+static void rv34_inv_transform_dc_noround_c(DCTELEM *block)
+{
+    DCTELEM dc = (13 * 13 * 3 * block[0]) >> 11;
+    int i, j;
+
+    for (i = 0; i < 4; i++, block += 8)
+        for (j = 0; j < 4; j++)
+            block[j] = dc;
+}
+
 /** @} */ // transform
 
 
 av_cold void ff_rv34dsp_init(RV34DSPContext *c, DSPContext* dsp) {
     c->rv34_inv_transform_tab[0] = rv34_inv_transform_c;
     c->rv34_inv_transform_tab[1] = rv34_inv_transform_noround_c;
+    c->rv34_inv_transform_dc_tab[0]  = rv34_inv_transform_dc_c;
+    c->rv34_inv_transform_dc_tab[1]  = rv34_inv_transform_dc_noround_c;
 
     if (HAVE_NEON)
         ff_rv34dsp_init_neon(c, dsp);
+    if (HAVE_MMX)
+        ff_rv34dsp_init_x86(c, dsp);
 }