[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YkYL45bEwjS/1+Rs@eze-laptop>
Date: Thu, 31 Mar 2022 17:15:31 -0300
From: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>
To: Chen-Yu Tsai <wenst@...omium.org>
Cc: Philipp Zabel <p.zabel@...gutronix.de>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Nicolas Dufresne <nicolas.dufresne@...labora.com>,
linux-media@...r.kernel.org, linux-rockchip@...ts.infradead.org,
linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] media: hantro: Empty encoder capture buffers by default
On Thu, Mar 31, 2022 at 04:49:06PM +0800, Chen-Yu Tsai wrote:
> The payload size for encoder capture buffers is set by the driver upon
> finishing encoding each frame, based on the encoded length returned from
> hardware, and whatever header and padding length used. Setting a
> non-zero default serves no real purpose, and also causes issues if the
> capture buffer is returned to userspace unused, confusing the
> application.
>
> Instead, always set the payload size to 0 for encoder capture buffers
> when preparing them.
>
> Fixes: 775fec69008d ("media: add Rockchip VPU JPEG encoder driver")
> Fixes: 082aaecff35f ("media: hantro: Fix .buf_prepare")
> Signed-off-by: Chen-Yu Tsai <wenst@...omium.org>
Reviewed-by: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>
> ---
>
> This was previously incorrectly squashed into my Hantro encoder cmd
> patch [1].
>
> [1] https://lore.kernel.org/linux-media/20220301042225.1540019-1-wenst@chromium.org/
>
> drivers/staging/media/hantro/hantro_v4l2.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/staging/media/hantro/hantro_v4l2.c
> index 67148ba346f5..261beb0c40f6 100644
> --- a/drivers/staging/media/hantro/hantro_v4l2.c
> +++ b/drivers/staging/media/hantro/hantro_v4l2.c
> @@ -733,8 +733,12 @@ static int hantro_buf_prepare(struct vb2_buffer *vb)
> * (for OUTPUT buffers, if userspace passes 0 bytesused, v4l2-core sets
> * it to buffer length).
> */
> - if (V4L2_TYPE_IS_CAPTURE(vq->type))
> - vb2_set_plane_payload(vb, 0, pix_fmt->plane_fmt[0].sizeimage);
> + if (V4L2_TYPE_IS_CAPTURE(vq->type)) {
> + if (ctx->is_encoder)
> + vb2_set_plane_payload(vb, 0, 0);
> + else
> + vb2_set_plane_payload(vb, 0, pix_fmt->plane_fmt[0].sizeimage);
> + }
>
> return 0;
> }
> --
> 2.35.1.1021.g381101b075-goog
>
Powered by blists - more mailing lists