30#define bf(fn, bd, opt) fn##_##bd##_##opt
32#define AVG_PROTOTYPES(bd, opt) \
33void bf(ff_vvc_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \
34 const int16_t *src0, const int16_t *src1, int width, int height); \
35void bf(ff_vvc_w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \
36 const int16_t *src0, const int16_t *src1, int width, int height, \
37 int denom, int w0, int w1, int o);
42#define DMVR_PROTOTYPES(bd, opt) \
43void ff_vvc_dmvr_##bd##_##opt(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, \
44 int height, intptr_t mx, intptr_t my, int width); \
45void ff_vvc_dmvr_h_##bd##_##opt(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, \
46 int height, intptr_t mx, intptr_t my, int width); \
47void ff_vvc_dmvr_v_##bd##_##opt(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, \
48 int height, intptr_t mx, intptr_t my, int width); \
49void ff_vvc_dmvr_hv_##bd##_##opt(int16_t *dst, const uint8_t *src, ptrdiff_t src_stride, \
50 int height, intptr_t mx, intptr_t my, int width); \
55#define DMVR_INIT(bd, opt) do { \
56 c->inter.dmvr[0][0] = ff_vvc_dmvr_##bd##_##opt; \
57 c->inter.dmvr[0][1] = ff_vvc_dmvr_h_##bd##_##opt; \
58 c->inter.dmvr[1][0] = ff_vvc_dmvr_v_##bd##_##opt; \
59 c->inter.dmvr[1][1] = ff_vvc_dmvr_hv_##bd##_##opt; \
65#define PUT_PIXELS_PROTOTYPES2(bd, opt) \
66void bf(ff_vvc_put_pixels, bd, opt)(int16_t *dst, \
67 const uint8_t *_src, const ptrdiff_t _src_stride, \
68 const int height, const int8_t *hf, const int8_t *vf, const int width);
73#define PEL_FUNC(dst, C, idx1, idx2, a) \
75 for (int w = 1; w < 7; w++) \
76 c->inter.dst[C][w][idx1][idx2] = a; \
79#define FUNCS(C, opt) \
80 PEL_FUNC(put, C, 0, 0, ff_vvc_put_pixels_8_##opt); \
91 vlenb = ff_get_rv_vlenb();
95 c->inter.avg = ff_vvc_avg_8_rvv_256;
96# if (__riscv_xlen == 64)
97 c->inter.w_avg = ff_vvc_w_avg_8_rvv_256;
107 }
else if (vlenb >= 16) {
110 c->inter.avg = ff_vvc_avg_8_rvv_128;
111# if (__riscv_xlen == 64)
112 c->inter.w_avg = ff_vvc_w_avg_8_rvv_128;
#define flags(name, subs,...)
Macro definitions for various function/variable attributes.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
#define AV_CPU_FLAG_RVB
B (bit manipulations)
#define AV_CPU_FLAG_RVV_I32
Vectors of 8/16/32-bit int's */.
#define DMVR_PROTOTYPES(bd, opt)
#define AVG_PROTOTYPES(bd, opt)
int ff_vvc_sad_rvv_128(const int16_t *src0, const int16_t *src1, int dx, int dy, int block_w, int block_h)
void ff_vvc_dsp_init_riscv(VVCDSPContext *const c, const int bd)
int ff_vvc_sad_rvv_256(const int16_t *src0, const int16_t *src1, int dx, int dy, int block_w, int block_h)
#define PUT_PIXELS_PROTOTYPES2(bd, opt)
#define DMVR_INIT(bd, opt)