]> git.baikalelectronics.ru Git - kernel.git/commitdiff
media: rkvdec: h264: Fix reference frame_num wrap for second field
authorJonas Karlman <jonas@kwiboo.se>
Fri, 13 May 2022 20:29:15 +0000 (22:29 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 17 May 2022 08:06:49 +0000 (10:06 +0200)
When decoding the second field in a complementary field pair the second
field is sharing the same frame_num with the first field.

Currently the frame_num for the first field is wrapped when it matches the
field being decoded, this caused issues decoding the second field in a
complementary field pair.

Fix this by using inclusive comparison: 'less than or equal'.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Reviewed-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/rkvdec/rkvdec-h264.c

index fb41e2fd83592281e522c2c3724c632d83397f15..57821ee3b21333ceaed26248b2e5fadfe565e33b 100644 (file)
@@ -782,7 +782,7 @@ static void assemble_hw_rps(struct rkvdec_ctx *ctx,
                        continue;
 
                if (dpb[i].flags & V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM ||
-                   dpb[i].frame_num < dec_params->frame_num) {
+                   dpb[i].frame_num <= dec_params->frame_num) {
                        p[i] = dpb[i].frame_num;
                        continue;
                }