]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/x86/lossless_videodsp_init.c
avcodec/x86/lossless_videodsp: port add_hfyu_median_prediction_mmxext to 16bit
[ffmpeg] / libavcodec / x86 / lossless_videodsp_init.c
index 9927ca38f3d3c29f0bd7f8b76e0814b97fa68c1d..4eca2a11b1364d3e4944ad77c99d8ef39369ba1a 100644 (file)
@@ -27,6 +27,7 @@ void ff_diff_int16_mmx (uint16_t *dst, const uint16_t *src1, const uint16_t *src
 void ff_diff_int16_sse2(uint16_t *dst, const uint16_t *src1, const uint16_t *src2, unsigned mask, int w);
 int ff_add_hfyu_left_prediction_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, int w, int acc);
 int ff_add_hfyu_left_prediction_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, int w, int acc);
+void ff_add_hfyu_median_prediction_int16_mmxext(uint16_t *dst, const uint16_t *top, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top);
 
 void ff_llviddsp_init_x86(LLVidDSPContext *c)
 {
@@ -37,6 +38,10 @@ void ff_llviddsp_init_x86(LLVidDSPContext *c)
         c->diff_int16 = ff_diff_int16_mmx;
     }
 
+    if (EXTERNAL_MMXEXT(cpu_flags)) {
+        c->add_hfyu_median_prediction_int16 = ff_add_hfyu_median_prediction_int16_mmxext;
+    }
+
     if (EXTERNAL_SSE2(cpu_flags)) {
         c->add_int16 = ff_add_int16_sse2;
         c->diff_int16 = ff_diff_int16_sse2;