From 7bbad32d5ab69cb52bc92a5ec30c7b9838daa08a Mon Sep 17 00:00:00 2001 From: Wu Jianhua Date: Thu, 16 Sep 2021 15:34:08 +0800 Subject: libavfilter/x86/vf_gblur: correct the order of loop step The problem was caused by if the width of the processed block minus 1 is a multiple of the aligned number the instruction jle .bscale_scalar would skip the Optimized Loop Step, which will lead to an incorrect sampling when specifying steps more than 1. Move the Optimized Loop Step after .bscale_scalar to ensure the loop step is enabled. Signed-off-by: Wu Jianhua --- libavfilter/x86/vf_gblur.asm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavfilter/x86/vf_gblur.asm b/libavfilter/x86/vf_gblur.asm index 64c067538a..16e802e002 100644 --- a/libavfilter/x86/vf_gblur.asm +++ b/libavfilter/x86/vf_gblur.asm @@ -524,9 +524,8 @@ cglobal horiz_slice, 4, 9, 9, ptr, width, height, steps, nu, bscale, x, y, step, cmp xq, 0 jg .loop_x_scalar - OPTIMIZED_LOOP_STEP - .bscale_scalar: + OPTIMIZED_LOOP_STEP sub ptrq, 4 sub localbufq, mmsize mulps m3, m1 -- cgit v1.2.3