video: driver: support non-zero data_offset

In V4L2 definition, bytesused contains both data_offset
and actual payload size, whereas in HFI definition, data_size
only contain actual payload size after data_offset.
Add conversions to correctly support non-zero data_offset.

Change-Id: Ib581e942e39e0adbb673c53d1b31e669bdb2b998
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
This commit is contained in:
Qiwei Liu
2021-04-27 20:38:13 +08:00
committed by Gerrit - the friendly Code Review server
parent cfd1584e2a
commit 2e2fbdb7e5
2 changed files with 2 additions and 3 deletions

View File

@@ -1843,7 +1843,7 @@ static int vb2_buffer_to_driver(struct vb2_buffer *vb2,
buf->index = vb2->index;
buf->fd = vb2->planes[0].m.fd;
buf->data_offset = vb2->planes[0].data_offset;
buf->data_size = vb2->planes[0].bytesused;
buf->data_size = vb2->planes[0].bytesused - vb2->planes[0].data_offset;
buf->buffer_size = vb2->planes[0].length;
buf->timestamp = vb2->timestamp;
@@ -3098,7 +3098,7 @@ int msm_vidc_vb2_buffer_done(struct msm_vidc_inst *inst,
vbuf = to_vb2_v4l2_buffer(vb2);
vbuf->flags = buf->flags;
vb2->timestamp = buf->timestamp;
vb2->planes[0].bytesused = buf->data_size;
vb2->planes[0].bytesused = buf->data_size + vb2->planes[0].data_offset;
vb2_buffer_done(vb2, VB2_BUF_STATE_DONE);
return 0;