[media] media: videobuf2: Restructure vb2_buffer
Remove v4l2 stuff - v4l2_buf, v4l2_plane - from struct vb2_buffer. Add new member variables - bytesused, length, offset, userptr, fd, data_offset - to struct vb2_plane in order to cover all information of v4l2_plane. struct vb2_plane { <snip> unsigned int bytesused; unsigned int length; union { unsigned int offset; unsigned long userptr; int fd; } m; unsigned int data_offset; } Replace v4l2_buf with new member variables - index, type, memory - which are common fields for buffer management. struct vb2_buffer { <snip> unsigned int index; unsigned int type; unsigned int memory; unsigned int num_planes; struct vb2_plane planes[VIDEO_MAX_PLANES]; <snip> }; v4l2 specific fields - flags, field, timestamp, timecode, sequence - are moved to vb2_v4l2_buffer in videobuf2-v4l2.c struct vb2_v4l2_buffer { struct vb2_buffer vb2_buf; __u32 flags; __u32 field; struct timeval timestamp; struct v4l2_timecode timecode; __u32 sequence; }; Signed-off-by: Junghak Sung <jh1009.sung@samsung.com> Signed-off-by: Geunyoung Kim <nenggun.kim@samsung.com> Acked-by: Seung-Woo Kim <sw0312.kim@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
c139990e84
commit
2d7007153f
@@ -351,7 +351,7 @@ static irqreturn_t emmaprp_irq(int irq_emma, void *data)
|
||||
{
|
||||
struct emmaprp_dev *pcdev = data;
|
||||
struct emmaprp_ctx *curr_ctx;
|
||||
struct vb2_buffer *src_vb, *dst_vb;
|
||||
struct vb2_v4l2_buffer *src_vb, *dst_vb;
|
||||
unsigned long flags;
|
||||
u32 irqst;
|
||||
|
||||
@@ -375,13 +375,13 @@ static irqreturn_t emmaprp_irq(int irq_emma, void *data)
|
||||
src_vb = v4l2_m2m_src_buf_remove(curr_ctx->m2m_ctx);
|
||||
dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx);
|
||||
|
||||
dst_vb->v4l2_buf.timestamp = src_vb->v4l2_buf.timestamp;
|
||||
dst_vb->v4l2_buf.flags &=
|
||||
dst_vb->timestamp = src_vb->timestamp;
|
||||
dst_vb->flags &=
|
||||
~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
|
||||
dst_vb->v4l2_buf.flags |=
|
||||
src_vb->v4l2_buf.flags
|
||||
dst_vb->flags |=
|
||||
src_vb->flags
|
||||
& V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
|
||||
dst_vb->v4l2_buf.timecode = src_vb->v4l2_buf.timecode;
|
||||
dst_vb->timecode = src_vb->timecode;
|
||||
|
||||
spin_lock_irqsave(&pcdev->irqlock, flags);
|
||||
v4l2_m2m_buf_done(src_vb, VB2_BUF_STATE_DONE);
|
||||
@@ -742,8 +742,9 @@ static int emmaprp_buf_prepare(struct vb2_buffer *vb)
|
||||
|
||||
static void emmaprp_buf_queue(struct vb2_buffer *vb)
|
||||
{
|
||||
struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
|
||||
struct emmaprp_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
|
||||
v4l2_m2m_buf_queue(ctx->m2m_ctx, vb);
|
||||
v4l2_m2m_buf_queue(ctx->m2m_ctx, vbuf);
|
||||
}
|
||||
|
||||
static struct vb2_ops emmaprp_qops = {
|
||||
|
Reference in New Issue
Block a user