From 3b7acab4e297ad44fe62b29ea48cfbacbf39f2e6 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 13 Oct 2026 05:45:22 +0200 Subject: [PATCH] avcodec/riscv/vc1dsp: fix unescaping of an escape byte at the start of a vector chunk Fixes: 2ACIzt6ruKw2 Fixes: output mismatch Output mismatch Replicated through UnModified FFmpeg with checkasm under qemu-riscv64 Found during the review of https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24592 --- libavcodec/riscv/vc1dsp_rvv.S | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/riscv/vc1dsp_rvv.S b/libavcodec/riscv/vc1dsp_rvv.S index e54167c34f..1ff5991288 100644 --- a/libavcodec/riscv/vc1dsp_rvv.S +++ b/libavcodec/riscv/vc1dsp_rvv.S @@ -429,10 +429,10 @@ func ff_vc1_unescape_buffer_rvv, zve32x bgez t2, 4f # found an escape byte? vse8.v v16, (a2) - addi t2, t0, -2 + addi t2, t0, -1 add a2, a2, t0 2: - vslidedown.vx v8, v16, t2 + vslidedown.vx v8, v12, t2 sub a1, a1, t0 vslidedown.vi v12, v8, 1 add a0, a0, t0 @@ -449,7 +449,6 @@ func ff_vc1_unescape_buffer_rvv, zve32x vse8.v v16, (a2) addi t0, t2, 1 add a2, a2, t2 - addi t2, t2, -1 - vsetvli zero, t0, e8, m4, ta, ma + vsetivli zero, 2, e8, m4, ta, ma j 2b endfunc