[FFmpeg-devel] [PATCH v3 1/3] avcodec/x86/vvc/vvcdsp_init: add put prototypes
toqsxw at outlook.com
toqsxw at outlook.com
Wed Apr 17 21:28:21 EEST 2024
From: Wu Jianhua <toqsxw at outlook.com>
When we used the --disable-ssse3 --disable-optimizations options,
the compiler would not skip the MC_LINKS like the compilation that
enabled the optimization, so it would fail to find the function
prototypes. Hence, this commit uses the same way to add prototypes
for the functions as HEVC DSP.
Signed-off-by: Wu Jianhua <toqsxw at outlook.com>
---
libavcodec/x86/vvc/vvcdsp_init.c | 35 +++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/libavcodec/x86/vvc/vvcdsp_init.c b/libavcodec/x86/vvc/vvcdsp_init.c
index 23a3172c45..d9203f4d5f 100644
--- a/libavcodec/x86/vvc/vvcdsp_init.c
+++ b/libavcodec/x86/vvc/vvcdsp_init.c
@@ -30,9 +30,42 @@
#include "libavcodec/vvc/dsp.h"
#include "libavcodec/x86/h26x/h2656dsp.h"
+#define PUT_PROTOTYPE(name, depth, opt) \
+void ff_vvc_put_ ## name ## _ ## depth ## _##opt(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, int height, const int8_t *hf, const int8_t *vf, int width);
+
+#define PUT_PROTOTYPES(name, bitd, opt) \
+ PUT_PROTOTYPE(name##2, bitd, opt) \
+ PUT_PROTOTYPE(name##4, bitd, opt) \
+ PUT_PROTOTYPE(name##8, bitd, opt) \
+ PUT_PROTOTYPE(name##12, bitd, opt) \
+ PUT_PROTOTYPE(name##16, bitd, opt) \
+ PUT_PROTOTYPE(name##24, bitd, opt) \
+ PUT_PROTOTYPE(name##32, bitd, opt) \
+ PUT_PROTOTYPE(name##48, bitd, opt) \
+ PUT_PROTOTYPE(name##64, bitd, opt) \
+ PUT_PROTOTYPE(name##128, bitd, opt)
+
+#define PUT_BPC_PROTOTYPES(name, opt) \
+ PUT_PROTOTYPES(name, 8, opt) \
+ PUT_PROTOTYPES(name, 10, opt) \
+ PUT_PROTOTYPES(name, 12, opt)
+
+#define PUT_TAP_PROTOTYPES(n, opt) \
+ PUT_BPC_PROTOTYPES(n##tap_h, opt) \
+ PUT_BPC_PROTOTYPES(n##tap_v, opt) \
+ PUT_BPC_PROTOTYPES(n##tap_hv, opt)
+
+PUT_BPC_PROTOTYPES(pixels, sse4)
+PUT_BPC_PROTOTYPES(pixels, avx2)
+
+PUT_TAP_PROTOTYPES(4, sse4)
+PUT_TAP_PROTOTYPES(8, sse4)
+PUT_TAP_PROTOTYPES(4, avx2)
+PUT_TAP_PROTOTYPES(8, avx2)
+
#if ARCH_X86_64
#define FW_PUT(name, depth, opt) \
-static void ff_vvc_put_ ## name ## _ ## depth ## _##opt(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, \
+void ff_vvc_put_ ## name ## _ ## depth ## _##opt(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, \
int height, const int8_t *hf, const int8_t *vf, int width) \
{ \
ff_h2656_put_## name ## _ ## depth ## _##opt(dst, 2 * MAX_PB_SIZE, src, srcstride, height, hf, vf, width); \
--
2.44.0.windows.1
More information about the ffmpeg-devel
mailing list