snow mmx+sse2 optimizations, part 4
[ffmpeg.git] / libavcodec / i386 / dsputil_mmx.c
index a5e9675..72e3bd1 100644 (file)
@@ -2564,8 +2564,12 @@ static void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block)
 }
 #endif
 
 }
 #endif
 
+#ifdef CONFIG_SNOW_ENCODER
+extern void ff_snow_horizontal_compose97i_sse2(DWTELEM *b, int width);
+extern void ff_snow_horizontal_compose97i_mmx(DWTELEM *b, int width);
 extern void ff_snow_vertical_compose97i_sse2(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width);
 extern void ff_snow_vertical_compose97i_mmx(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width);
 extern void ff_snow_vertical_compose97i_sse2(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width);
 extern void ff_snow_vertical_compose97i_mmx(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width);
+#endif
 
 void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
 {
 
 void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
 {
@@ -2956,9 +2960,11 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
 
 #ifdef CONFIG_SNOW_ENCODER
         if(mm_flags & MM_SSE2){
 
 #ifdef CONFIG_SNOW_ENCODER
         if(mm_flags & MM_SSE2){
+            c->horizontal_compose97i = ff_snow_horizontal_compose97i_sse2;
             c->vertical_compose97i = ff_snow_vertical_compose97i_sse2;
         }
         else{
             c->vertical_compose97i = ff_snow_vertical_compose97i_sse2;
         }
         else{
+            c->horizontal_compose97i = ff_snow_horizontal_compose97i_mmx;
             c->vertical_compose97i = ff_snow_vertical_compose97i_mmx;
         }
 #endif
             c->vertical_compose97i = ff_snow_vertical_compose97i_mmx;
         }
 #endif