]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
VP3 loop filter is mmx2 not mmx
authorconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 19 Oct 2008 04:40:24 +0000 (04:40 +0000)
committerconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 19 Oct 2008 04:40:24 +0000 (04:40 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15642 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/i386/dsputil_mmx.c
libavcodec/i386/vp3dsp_mmx.c
libavcodec/i386/vp3dsp_mmx.h

index b23664d9608de207b2d016239d3bc6d29d7358dc..08892d257f7bfa843d0d6abb942890ae56797e82 100644 (file)
@@ -2593,11 +2593,6 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
             c->h263_v_loop_filter= h263_v_loop_filter_mmx;
             c->h263_h_loop_filter= h263_h_loop_filter_mmx;
         }
-        if ((ENABLE_VP3_DECODER || ENABLE_THEORA_DECODER) &&
-            !(avctx->flags & CODEC_FLAG_BITEXACT)) {
-            c->vp3_v_loop_filter= ff_vp3_v_loop_filter_mmx;
-            c->vp3_h_loop_filter= ff_vp3_h_loop_filter_mmx;
-        }
         c->put_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_rnd;
         c->put_h264_chroma_pixels_tab[1]= put_h264_chroma_mc4_mmx;
         c->put_no_rnd_h264_chroma_pixels_tab[0]= put_h264_chroma_mc8_mmx_nornd;
@@ -2638,6 +2633,12 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
                 c->avg_pixels_tab[1][3] = avg_pixels8_xy2_mmx2;
             }
 
+            if ((ENABLE_VP3_DECODER || ENABLE_THEORA_DECODER) &&
+                !(avctx->flags & CODEC_FLAG_BITEXACT)) {
+                c->vp3_v_loop_filter= ff_vp3_v_loop_filter_mmx2;
+                c->vp3_h_loop_filter= ff_vp3_h_loop_filter_mmx2;
+            }
+
 #define SET_QPEL_FUNCS(PFX, IDX, SIZE, CPU) \
             c->PFX ## _pixels_tab[IDX][ 0] = PFX ## SIZE ## _mc00_ ## CPU; \
             c->PFX ## _pixels_tab[IDX][ 1] = PFX ## SIZE ## _mc10_ ## CPU; \
index 32af301c002b22ad415efd3e2c39a4b3bb3bc4ac..010bfc65d690760f2ad11fdb5996c067d255023b 100644 (file)
@@ -84,7 +84,7 @@ extern const uint16_t ff_vp3_idct_data[];
     "shr    $16, %0        \n\t" \
     "movw   %w0, -1"#dst3" \n\t"
 
-void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
+void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
 {
     __asm__ volatile(
         "movq          %0, %%mm6 \n\t"
@@ -105,7 +105,7 @@ void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
     );
 }
 
-void ff_vp3_h_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values)
+void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values)
 {
     x86_reg tmp;
 
index 252c5f1548c911a3f3f2dae3d914e57204e6cd4c..2e79913deb8b94deac1120efae81446dd90e48e0 100644 (file)
@@ -29,7 +29,7 @@ void ff_vp3_idct_mmx(int16_t *data);
 void ff_vp3_idct_put_mmx(uint8_t *dest, int line_size, DCTELEM *block);
 void ff_vp3_idct_add_mmx(uint8_t *dest, int line_size, DCTELEM *block);
 
-void ff_vp3_v_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values);
-void ff_vp3_h_loop_filter_mmx(uint8_t *src, int stride, int *bounding_values);
+void ff_vp3_v_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
+void ff_vp3_h_loop_filter_mmx2(uint8_t *src, int stride, int *bounding_values);
 
 #endif /* AVCODEC_I386_VP3DSP_MMX_H */