[media] media: videobuf2: Replace v4l2-specific data with vb2 data
[firefly-linux-kernel-4.4.55.git] / include / media / videobuf2-v4l2.h
1 /*
2  * videobuf2-v4l2.h - V4L2 driver helper framework
3  *
4  * Copyright (C) 2010 Samsung Electronics
5  *
6  * Author: Pawel Osciak <pawel@osciak.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation.
11  */
12 #ifndef _MEDIA_VIDEOBUF2_V4L2_H
13 #define _MEDIA_VIDEOBUF2_V4L2_H
14
15 #include <linux/videodev2.h>
16 #include <media/videobuf2-core.h>
17
18 #if VB2_MAX_FRAME != VIDEO_MAX_FRAME
19 #error VB2_MAX_FRAME != VIDEO_MAX_FRAME
20 #endif
21
22 #if VB2_MAX_PLANES != VIDEO_MAX_PLANES
23 #error VB2_MAX_PLANES != VIDEO_MAX_PLANES
24 #endif
25
26 /**
27  * struct vb2_v4l2_buffer - video buffer information for v4l2
28  * @vb2_buf:    video buffer 2
29  * @flags:      buffer informational flags
30  * @field:      enum v4l2_field; field order of the image in the buffer
31  * @timestamp:  frame timestamp
32  * @timecode:   frame timecode
33  * @sequence:   sequence count of this frame
34  * Should contain enough information to be able to cover all the fields
35  * of struct v4l2_buffer at videodev2.h
36  */
37 struct vb2_v4l2_buffer {
38         struct vb2_buffer       vb2_buf;
39
40         __u32                   flags;
41         __u32                   field;
42         struct timeval          timestamp;
43         struct v4l2_timecode    timecode;
44         __u32                   sequence;
45 };
46
47 /*
48  * to_vb2_v4l2_buffer() - cast struct vb2_buffer * to struct vb2_v4l2_buffer *
49  */
50 #define to_vb2_v4l2_buffer(vb) \
51         container_of(vb, struct vb2_v4l2_buffer, vb2_buf)
52
53 #endif /* _MEDIA_VIDEOBUF2_V4L2_H */