6 * This file defines compatibility versions of several video structures
7 * defined in the Linux videodev2.h header (linux_videodev2.h). The
8 * structures defined in this file are the ones that have been determined
9 * to have 32- to 64-bit size dependencies.
12 #ifndef _LINUX_VIDEODEV2_COMPAT_H_
13 #define _LINUX_VIDEODEV2_COMPAT_H_
15 struct l_v4l2_buffer {
17 enum v4l2_buf_type type;
20 enum v4l2_field field;
22 struct v4l2_timecode timecode;
26 enum v4l2_memory memory;
36 struct l_v4l2_framebuffer {
39 /* FIXME: in theory we should pass something like PCI device + memory
40 * region + offset instead of some physical address */
42 struct v4l2_pix_format fmt;
50 struct l_v4l2_window {
52 enum v4l2_field field;
60 struct l_v4l2_standard {
64 struct v4l2_fract frameperiod; /* Frames, not fields */
68 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
69 __attribute__ ((packed))
73 struct l_v4l2_ext_control {
76 uint32_t reserved2[1];
82 } __attribute__ ((packed));
84 struct l_v4l2_ext_controls {
92 struct l_v4l2_format {
93 enum v4l2_buf_type type;
95 struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */
96 struct l_v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */
97 struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */
98 struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
99 uint8_t raw_data[200]; /* user-defined */
102 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
103 __attribute__ ((packed))
107 #ifdef VIDIOC_DQEVENT
108 struct l_v4l2_event {
111 struct v4l2_event_vsync vsync;
116 struct l_timespec timestamp;
117 uint32_t reserved[9];
121 struct l_v4l2_input {
122 uint32_t index; /* Which input */
123 uint8_t name[32]; /* Label */
124 uint32_t type; /* Type of input */
125 uint32_t audioset; /* Associated audios (bitfield) */
126 uint32_t tuner; /* Associated tuner */
129 uint32_t capabilities;
130 uint32_t reserved[3];
132 #ifdef COMPAT_LINUX32 /* 32bit linuxolator */
133 __attribute__ ((packed))
137 #endif /* _LINUX_VIDEODEV2_COMPAT_H_ */