diff x86/h264dsp_mmx.c @ 12001:953a0949c789 libavcodec

Fix some intra pred MMX functions that used MMXEXT instructions Also add predict_4x4_dc MMXEXT function for vp8/h264.
author darkshikari
date Mon, 28 Jun 2010 23:35:17 +0000
parents c15e87b9767b
children 3b761226ea35
line wrap: on
line diff
--- a/x86/h264dsp_mmx.c	Mon Jun 28 22:13:14 2010 +0000
+++ b/x86/h264dsp_mmx.c	Mon Jun 28 23:35:17 2010 +0000
@@ -2328,7 +2328,6 @@
 void ff_pred16x16_horizontal_mmx   (uint8_t *src, int stride);
 void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride);
 void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
-void ff_pred16x16_dc_mmx           (uint8_t *src, int stride);
 void ff_pred16x16_dc_mmxext        (uint8_t *src, int stride);
 void ff_pred16x16_dc_sse           (uint8_t *src, int stride);
 void ff_pred16x16_dc_sse2          (uint8_t *src, int stride);
@@ -2336,7 +2335,6 @@
 void ff_pred16x16_tm_vp8_mmx       (uint8_t *src, int stride);
 void ff_pred16x16_tm_vp8_mmxext    (uint8_t *src, int stride);
 void ff_pred16x16_tm_vp8_sse2      (uint8_t *src, int stride);
-void ff_pred8x8_dc_rv40_mmx        (uint8_t *src, int stride);
 void ff_pred8x8_dc_rv40_mmxext     (uint8_t *src, int stride);
 void ff_pred8x8_vertical_mmx       (uint8_t *src, int stride);
 void ff_pred8x8_horizontal_mmx     (uint8_t *src, int stride);
@@ -2346,6 +2344,7 @@
 void ff_pred8x8_tm_vp8_mmxext      (uint8_t *src, int stride);
 void ff_pred8x8_tm_vp8_sse2        (uint8_t *src, int stride);
 void ff_pred8x8_tm_vp8_ssse3       (uint8_t *src, int stride);
+void ff_pred4x4_dc_mmxext          (uint8_t *src, const uint8_t *topright, int stride);
 
 #if CONFIG_H264DSP
 void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
@@ -2354,12 +2353,10 @@
     if (mm_flags & FF_MM_MMX) {
         h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx;
         h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx;
-        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_mmx;
         h->pred8x8  [VERT_PRED8x8] = ff_pred8x8_vertical_mmx;
         h->pred8x8  [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx;
         if (codec_id == CODEC_ID_VP8) {
             h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx;
-            h->pred8x8  [DC_PRED8x8   ] = ff_pred8x8_dc_rv40_mmx;
             h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx;
         }
     }
@@ -2368,6 +2365,7 @@
         h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
         h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_mmxext;
         h->pred8x8  [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
+        h->pred4x4  [DC_PRED     ] = ff_pred4x4_dc_mmxext;
         if (codec_id == CODEC_ID_VP8) {
             h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext;
             h->pred8x8  [DC_PRED8x8   ] = ff_pred8x8_dc_rv40_mmxext;