[FFmpeg-devel] [PATCH] lavc/flacdsp: fix CPU requirement for 32-bit LPC

Rémi Denis-Courmont remi at remlab.net
Mon May 13 18:52:24 EEST 2024


---
 libavcodec/riscv/flacdsp_init.c | 13 ++++++-------
 libavcodec/riscv/flacdsp_rvv.S  |  4 ++--
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/libavcodec/riscv/flacdsp_init.c b/libavcodec/riscv/flacdsp_init.c
index 0d7cff8bfe..77ffd09244 100644
--- a/libavcodec/riscv/flacdsp_init.c
+++ b/libavcodec/riscv/flacdsp_init.c
@@ -71,21 +71,20 @@ av_cold void ff_flacdsp_init_riscv(FLACDSPContext *c, enum AVSampleFormat fmt,
     if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) {
         int vlenb = ff_get_rv_vlenb();
 
-        if (vlenb >= 16) {
+        if (vlenb >= 16)
             c->lpc16 = ff_flac_lpc16_rvv;
+
+        c->wasted32 = ff_flac_wasted32_rvv;
+
 # if (__riscv_xlen >= 64)
+        if (flags & AV_CPU_FLAG_RVV_I64) {
             if (vlenb > 16)
                 c->lpc32 = ff_flac_lpc32_rvv_simple;
             else
                 c->lpc32 = ff_flac_lpc32_rvv;
-# endif
-        }
 
-        c->wasted32 = ff_flac_wasted32_rvv;
-
-# if (__riscv_xlen >= 64)
-        if (flags & AV_CPU_FLAG_RVV_I64)
             c->wasted33 = ff_flac_wasted33_rvv;
+        }
 
         switch (fmt) {
         case AV_SAMPLE_FMT_S16:
diff --git a/libavcodec/riscv/flacdsp_rvv.S b/libavcodec/riscv/flacdsp_rvv.S
index 5e5f4e7b64..8b9c626198 100644
--- a/libavcodec/riscv/flacdsp_rvv.S
+++ b/libavcodec/riscv/flacdsp_rvv.S
@@ -44,7 +44,7 @@ func ff_flac_lpc16_rvv, zve32x
 endfunc
 
 #if (__riscv_xlen == 64)
-func ff_flac_lpc32_rvv, zve32x
+func ff_flac_lpc32_rvv, zve64x
         addi    t2, a2, -16
         ble     t2, zero, ff_flac_lpc32_rvv_simple
         vsetivli zero, 1, e64, m1, ta, ma
@@ -75,7 +75,7 @@ func ff_flac_lpc32_rvv, zve32x
         ret
 endfunc
 
-func ff_flac_lpc32_rvv_simple, zve32x
+func ff_flac_lpc32_rvv_simple, zve64x
         vsetivli zero, 1, e64, m1, ta, ma
         vmv.s.x v0, zero
         vsetvli zero, a2, e32, m4, ta, ma
-- 
2.43.0



More information about the ffmpeg-devel mailing list