media: hantro: Empty encoder capture buffers by default
[ Upstream commit309373a357] 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:775fec6900("media: add Rockchip VPU JPEG encoder driver") Fixes:082aaecff3("media: hantro: Fix .buf_prepare") Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
461e4c1f19
commit
b6b70cd3dd
@@ -644,8 +644,12 @@ static int hantro_buf_prepare(struct vb2_buffer *vb)
|
|||||||
* (for OUTPUT buffers, if userspace passes 0 bytesused, v4l2-core sets
|
* (for OUTPUT buffers, if userspace passes 0 bytesused, v4l2-core sets
|
||||||
* it to buffer length).
|
* it to buffer length).
|
||||||
*/
|
*/
|
||||||
if (V4L2_TYPE_IS_CAPTURE(vq->type))
|
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);
|
vb2_set_plane_payload(vb, 0, pix_fmt->plane_fmt[0].sizeimage);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user