]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/x86/lossless_videodsp_init.c
Merge commit 'aeaa108bafa11db290f1ada0e22dbfbd655cf2ba'
[ffmpeg] / libavcodec / x86 / lossless_videodsp_init.c
index 4f20c1ce920a3737e6e041c42191505c4470c5ac..6d71f14e7f9cfaef37f96e0346803f552d8ac3a9 100644 (file)
@@ -38,9 +38,14 @@ int  ff_add_left_pred_ssse3(uint8_t *dst, const uint8_t *src,
                             ptrdiff_t w, int left);
 int  ff_add_left_pred_unaligned_ssse3(uint8_t *dst, const uint8_t *src,
                                       ptrdiff_t w, int left);
+int  ff_add_left_pred_unaligned_avx2(uint8_t *dst, const uint8_t *src,
+                                     ptrdiff_t w, int left);
 
 int ff_add_left_pred_int16_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc);
-int ff_add_left_pred_int16_sse4(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc);
+int ff_add_left_pred_int16_unaligned_ssse3(uint16_t *dst, const uint16_t *src, unsigned mask, ptrdiff_t w, unsigned acc);
+
+void ff_add_gradient_pred_ssse3(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width);
+void ff_add_gradient_pred_avx2(uint8_t *src, const ptrdiff_t stride, const ptrdiff_t width);
 
 #if HAVE_INLINE_ASM && HAVE_7REGS && ARCH_X86_32
 static void add_median_pred_cmov(uint8_t *dst, const uint8_t *top,
@@ -107,16 +112,17 @@ void ff_llviddsp_init_x86(LLVidDSPContext *c)
     if (EXTERNAL_SSSE3(cpu_flags)) {
         c->add_left_pred = ff_add_left_pred_ssse3;
         c->add_left_pred_int16 = ff_add_left_pred_int16_ssse3;
+        c->add_gradient_pred   = ff_add_gradient_pred_ssse3;
     }
 
     if (EXTERNAL_SSSE3_FAST(cpu_flags)) {
         c->add_left_pred = ff_add_left_pred_unaligned_ssse3;
+        c->add_left_pred_int16 = ff_add_left_pred_int16_unaligned_ssse3;
     }
 
-    if (EXTERNAL_SSE4(cpu_flags)) {
-        c->add_left_pred_int16 = ff_add_left_pred_int16_sse4;
-    }
     if (EXTERNAL_AVX2_FAST(cpu_flags)) {
         c->add_bytes       = ff_add_bytes_avx2;
+        c->add_left_pred   = ff_add_left_pred_unaligned_avx2;
+        c->add_gradient_pred = ff_add_gradient_pred_avx2;
     }
 }