diff options
author | Junghak Sung <jh1009.sung@samsung.com> | 2015-09-22 09:30:30 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-10-01 08:04:43 -0400 |
commit | 2d7007153f0c9b1dd00c01894df7d26ddc32b79f (patch) | |
tree | 8320f9d22f45dd7dcea64088b50ff706bb0082b2 /include/media/videobuf2-v4l2.h | |
parent | c139990e842d550db2f59bd4f5993bba90f140e0 (diff) |
[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>
Diffstat (limited to 'include/media/videobuf2-v4l2.h')
-rw-r--r-- | include/media/videobuf2-v4l2.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h index d4a4d9acd39b..20d8ad20066c 100644 --- a/include/media/videobuf2-v4l2.h +++ b/include/media/videobuf2-v4l2.h | |||
@@ -12,6 +12,34 @@ | |||
12 | #ifndef _MEDIA_VIDEOBUF2_V4L2_H | 12 | #ifndef _MEDIA_VIDEOBUF2_V4L2_H |
13 | #define _MEDIA_VIDEOBUF2_V4L2_H | 13 | #define _MEDIA_VIDEOBUF2_V4L2_H |
14 | 14 | ||
15 | #include <linux/videodev2.h> | ||
15 | #include <media/videobuf2-core.h> | 16 | #include <media/videobuf2-core.h> |
16 | 17 | ||
18 | /** | ||
19 | * struct vb2_v4l2_buffer - video buffer information for v4l2 | ||
20 | * @vb2_buf: video buffer 2 | ||
21 | * @flags: buffer informational flags | ||
22 | * @field: enum v4l2_field; field order of the image in the buffer | ||
23 | * @timestamp: frame timestamp | ||
24 | * @timecode: frame timecode | ||
25 | * @sequence: sequence count of this frame | ||
26 | * Should contain enough information to be able to cover all the fields | ||
27 | * of struct v4l2_buffer at videodev2.h | ||
28 | */ | ||
29 | struct vb2_v4l2_buffer { | ||
30 | struct vb2_buffer vb2_buf; | ||
31 | |||
32 | __u32 flags; | ||
33 | __u32 field; | ||
34 | struct timeval timestamp; | ||
35 | struct v4l2_timecode timecode; | ||
36 | __u32 sequence; | ||
37 | }; | ||
38 | |||
39 | /** | ||
40 | * to_vb2_v4l2_buffer() - cast struct vb2_buffer * to struct vb2_v4l2_buffer * | ||
41 | */ | ||
42 | #define to_vb2_v4l2_buffer(vb) \ | ||
43 | (container_of(vb, struct vb2_v4l2_buffer, vb2_buf)) | ||
44 | |||
17 | #endif /* _MEDIA_VIDEOBUF2_V4L2_H */ | 45 | #endif /* _MEDIA_VIDEOBUF2_V4L2_H */ |