]> git.hungrycats.org Git - linux/commitdiff
media: verisilicon: av1: Fix reference video buffer pointer assignment
authorBenjamin Gaignard <benjamin.gaignard@collabora.com>
Tue, 10 Sep 2024 14:10:09 +0000 (14:10 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2024 09:33:03 +0000 (10:33 +0100)
commit 672f24ed6ebcd986688c6674a6d994a265fefc25 upstream.

Always get new destination buffer for reference frame because nothing
garantees the one set previously is still valid or unused.

Fixes this chromium test suite:
https://chromium.googlesource.com/chromium/src/media/+/refs/heads/main/test/data/test-25fps.av1.ivf

Fixes: 727a400686a2 ("media: verisilicon: Add Rockchip AV1 decoder")
Cc: <stable@vger.kernel.org>
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil: fix typo and add link to chromium test suite]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c

index cc4483857489c50257b75cb3dd99a09c2a3bbef8..ff78b31728290d4b8ae4b6efa1e0b8996a674e1c 100644 (file)
@@ -161,8 +161,7 @@ static int rockchip_vpu981_av1_dec_frame_ref(struct hantro_ctx *ctx,
                av1_dec->frame_refs[i].timestamp = timestamp;
                av1_dec->frame_refs[i].frame_type = frame->frame_type;
                av1_dec->frame_refs[i].order_hint = frame->order_hint;
-               if (!av1_dec->frame_refs[i].vb2_ref)
-                       av1_dec->frame_refs[i].vb2_ref = hantro_get_dst_buf(ctx);
+               av1_dec->frame_refs[i].vb2_ref = hantro_get_dst_buf(ctx);
 
                for (j = 0; j < V4L2_AV1_TOTAL_REFS_PER_FRAME; j++)
                        av1_dec->frame_refs[i].order_hints[j] = frame->order_hints[j];