[PATCH] media: hantro: Empty encoder capture buffers by default
Ezequiel Garcia
ezequiel at vanguardiasur.com.ar
Thu Mar 31 13:15:31 PDT 2022
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 at chromium.org>
Reviewed-by: Ezequiel Garcia <ezequiel at vanguardiasur.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
>
More information about the Linux-rockchip
mailing list