]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/x86/vf_interlace.asm
Merge commit '78149d6657302b58d5e46e8bc0a521ed009f86f7'
[ffmpeg] / libavfilter / x86 / vf_interlace.asm
index 06b269828a27e0280bbeb51c0288bb94e4be8c24..a6c65b805dc266ec567d50675bf58cebdec6e2db 100644 (file)
@@ -39,6 +39,20 @@ SECTION .text
 
     pcmpeq%1 m6, m6
 
+    test hq, mmsize
+    je .loop
+
+    ;process 1 * mmsize
+    movu m0, [mrefq+hq]
+    pavg%1 m0, [prefq+hq]
+    pxor m0, m6
+    pxor m2, m6, [srcq+hq]
+    pavg%1 m0, m2
+    pxor m0, m6
+    mova [dstq+hq], m0
+    add hq, mmsize
+    jge .end
+
 .loop:
     movu m0, [mrefq+hq]
     movu m1, [mrefq+hq+mmsize]
@@ -57,7 +71,9 @@ SECTION .text
 
     add hq, 2*mmsize
     jl .loop
-REP_RET
+
+.end:
+    REP_RET
 %endmacro
 
 %macro LOWPASS_LINE 0
@@ -201,5 +217,10 @@ LOWPASS_LINE
 INIT_XMM avx
 LOWPASS_LINE
 
+%if HAVE_AVX2_EXTERNAL
+INIT_YMM avx2
+LOWPASS_LINE
+%endif
+
 INIT_XMM sse2
 LOWPASS_LINE_COMPLEX