2 * This file defines compatibility versions of several video structures
3 * defined in the Linux videodev2.h header (linux_videodev2.h). The
4 * structures defined in this file are the ones that have been determined
5 * to have 32- to 64-bit size dependencies.
8 #ifndef _LINUX_VIDEODEV2_COMPAT_H_
9 #define _LINUX_VIDEODEV2_COMPAT_H_
11 struct l_v4l2_buffer {
13 enum v4l2_buf_type type;
16 enum v4l2_field field;
18 struct v4l2_timecode timecode;
22 enum v4l2_memory memory;
32 struct l_v4l2_framebuffer {
35 /* FIXME: in theory we should pass something like PCI device + memory
36 * region + offset instead of some physical address */
38 struct v4l2_pix_format fmt;
46 struct l_v4l2_window {
48 enum v4l2_field field;
56 struct l_v4l2_standard {
60 struct v4l2_fract frameperiod; /* Frames, not fields */
64 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
65 __attribute__ ((packed))
69 struct l_v4l2_ext_control {
72 uint32_t reserved2[1];
78 } __attribute__ ((packed));
80 struct l_v4l2_ext_controls {
88 struct l_v4l2_format {
89 enum v4l2_buf_type type;
91 struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */
92 struct l_v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */
93 struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */
94 struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
95 uint8_t raw_data[200]; /* user-defined */
98 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
99 __attribute__ ((packed))
103 #ifdef VIDIOC_DQEVENT
104 struct l_v4l2_event {
107 struct v4l2_event_vsync vsync;
112 struct l_timespec timestamp;
113 uint32_t reserved[9];
117 struct l_v4l2_input {
118 uint32_t index; /* Which input */
119 uint8_t name[32]; /* Label */
120 uint32_t type; /* Type of input */
121 uint32_t audioset; /* Associated audios (bitfield) */
122 uint32_t tuner; /* Associated tuner */
125 uint32_t capabilities;
126 uint32_t reserved[3];
128 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
129 __attribute__ ((packed))
133 #endif /* _LINUX_VIDEODEV2_COMPAT_H_ */