summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/rkvdec
diff options
context:
space:
mode:
authorChen-Yu Tsai <wenst@chromium.org>2021-10-08 11:04:22 +0100
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-10-19 08:08:39 +0100
commit298d8e8f7bcf023aceb60232d59b983255fec0df (patch)
tree7c205327b54f99e82783537f1fd3aad0c47bbe5b /drivers/staging/media/rkvdec
parent4c2e5156d9fa63a3f41c2bf56b694ad42df825d7 (diff)
downloadlinux-stable-298d8e8f7bcf023aceb60232d59b983255fec0df.tar.gz
linux-stable-298d8e8f7bcf023aceb60232d59b983255fec0df.tar.bz2
linux-stable-298d8e8f7bcf023aceb60232d59b983255fec0df.zip
media: rkvdec: Do not override sizeimage for output format
The rkvdec H.264 decoder currently overrides sizeimage for the output format. This causes issues when userspace requires and requests a larger buffer, but ends up with one of insufficient size. Instead, only provide a default size if none was requested. This fixes the video_decode_accelerator_tests from Chromium failing on the first frame due to insufficient buffer space. It also aligns the behavior of the rkvdec driver with the Hantro and Cedrus drivers. Fixes: cd33c830448b ("media: rkvdec: Add the rkvdec driver") Cc: <stable@vger.kernel.org> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/staging/media/rkvdec')
-rw-r--r--drivers/staging/media/rkvdec/rkvdec-h264.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
index 76e97cbe2512..951e19231da2 100644
--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
+++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
@@ -1015,8 +1015,9 @@ static int rkvdec_h264_adjust_fmt(struct rkvdec_ctx *ctx,
struct v4l2_pix_format_mplane *fmt = &f->fmt.pix_mp;
fmt->num_planes = 1;
- fmt->plane_fmt[0].sizeimage = fmt->width * fmt->height *
- RKVDEC_H264_MAX_DEPTH_IN_BYTES;
+ if (!fmt->plane_fmt[0].sizeimage)
+ fmt->plane_fmt[0].sizeimage = fmt->width * fmt->height *
+ RKVDEC_H264_MAX_DEPTH_IN_BYTES;
return 0;
}