In commit 99fb257 and commit 3135bc0 of FFmpeg, New changes introduce syntax
that relies on the assembler preprocessor to evaluate Boolean logic operations
(== and !!).
However, the assemblers (NASM/YASM) within the OSS-Fuzz environment, or the
x86inc. asm macro expansion mechanism, cannot correctly parse these complex
expressions,
resulting in an expecting ')' error.
To fix the fuzzing build error, I suggest keeping these two lines of code in
their original version.
'cglobal put_vp8_epel%1_h6, 6, 6 + npicregs, 8, dst, dststride, src, srcstride,
height, mx, picreg'
'cglobal put_vp8_epel%1_h4, 6, 6 + npicregs, 7, dst, dststride, src, srcstride,
height, mx, picreg'␋
Signed-off-by: xingyaner <[email protected]>
---
libavcodec/x86/vp8dsp.asm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/x86/vp8dsp.asm b/libavcodec/x86/vp8dsp.asm
index 22356f687b..d758b84afa 100644
--- a/libavcodec/x86/vp8dsp.asm
+++ b/libavcodec/x86/vp8dsp.asm
@@ -173,7 +173,7 @@ SECTION .text
%define MOV movq
%endif
-cglobal put_vp8_epel%1_h6, 6, 6 + npicregs, 6+2*(%1==8), dst, dststride, src, srcstride, height, mx, picreg
+cglobal put_vp8_epel%1_h6, 6, 6 + npicregs, 8, dst, dststride, src, srcstride,
height, mx, picreg
%if %1 == 4
mova m3, [filter4_h6_shuf]
%if PIC
@@ -228,7 +228,7 @@ cglobal put_vp8_epel%1_h6, 6, 6 + npicregs, 6+2*(%1==8),
dst, dststride, src, sr
jg .nextrow
RET
-cglobal put_vp8_epel%1_h4, 6, 6 + npicregs, 6+!!(%1 == 8), dst, dststride, src, srcstride, height, mx, picreg
+cglobal put_vp8_epel%1_h4, 6, 6 + npicregs, 7, dst, dststride, src, srcstride,
height, mx, picreg
mova m2, [pw_256]
%if %1 == 8
shl mxd, 4