diff options
author | Rémi Denis-Courmont <remi@remlab.net> | 2024-07-27 14:30:52 +0300 |
---|---|---|
committer | Rémi Denis-Courmont <remi@remlab.net> | 2024-07-30 18:41:51 +0300 |
commit | 5171baa2289322d57aa36df321582719293f231c (patch) | |
tree | b4d307f8433091e12ec43079ac4fe2c8cd84571c /libavcodec/riscv | |
parent | 0e09f6d690b748f61d652ad58ed96c2d48670110 (diff) | |
download | ffmpeg-5171baa2289322d57aa36df321582719293f231c.tar.gz |
lavc/ac3dsp: fix R-V CPU requirements
It probably will not matter on any real hardware, but the Zbb optimisations
do not require Zba. And then, we need HAVE_RVV to build the RVV stuff.
Diffstat (limited to 'libavcodec/riscv')
-rw-r--r-- | libavcodec/riscv/ac3dsp_init.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/libavcodec/riscv/ac3dsp_init.c b/libavcodec/riscv/ac3dsp_init.c index f66b6cac57..24b3881854 100644 --- a/libavcodec/riscv/ac3dsp_init.c +++ b/libavcodec/riscv/ac3dsp_init.c @@ -41,26 +41,32 @@ av_cold void ff_ac3dsp_init_riscv(AC3DSPContext *c) #if HAVE_RV int flags = av_get_cpu_flags(); - if (flags & AV_CPU_FLAG_RVB_BASIC) + if (flags & AV_CPU_FLAG_RVB_BASIC) { c->ac3_exponent_min = ff_ac3_exponent_min_rvb; - if (flags & AV_CPU_FLAG_RVV_I32) + c->extract_exponents = ff_extract_exponents_rvb; + } + +# if HAVE_RVV + if (flags & AV_CPU_FLAG_RVV_I32) { c->ac3_exponent_min = ff_ac3_exponent_min_rvv; - if (flags & AV_CPU_FLAG_RVB_ADDR) { - if (flags & AV_CPU_FLAG_RVB_BASIC) - c->extract_exponents = ff_extract_exponents_rvb; -# if HAVE_RV_ZVBB - if (flags & AV_CPU_FLAG_RV_ZVBB) - c->extract_exponents = ff_extract_exponents_rvvb; + if (flags & AV_CPU_FLAG_RVB) { +# if HAVE_RV_ZVBB + if (flags & AV_CPU_FLAG_RV_ZVBB) + c->extract_exponents = ff_extract_exponents_rvvb; +# endif + if (flags & AV_CPU_FLAG_RVV_F32) { + c->float_to_fixed24 = ff_float_to_fixed24_rvv; + c->sum_square_butterfly_float = + ff_sum_square_butterfly_float_rvv; + } +# if __riscv_xlen >= 64 + if (flags & AV_CPU_FLAG_RVV_I64) + c->sum_square_butterfly_int32 = + ff_sum_square_butterfly_int32_rvv; +# endif # endif - if (flags & AV_CPU_FLAG_RVV_F32) { - c->float_to_fixed24 = ff_float_to_fixed24_rvv; - c->sum_square_butterfly_float = ff_sum_square_butterfly_float_rvv; } -# if __riscv_xlen >= 64 - if (flags & AV_CPU_FLAG_RVV_I64) - c->sum_square_butterfly_int32 = ff_sum_square_butterfly_int32_rvv; -# endif } #endif } |