Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
v4l2-subdev.h
Go to the documentation of this file.
1
/*
2
* V4L2 subdev userspace API
3
*
4
* Copyright (C) 2010 Nokia Corporation
5
*
6
* Contacts: Laurent Pinchart <
[email protected]
>
7
* Sakari Ailus <
[email protected]
>
8
*
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License version 2 as
11
* published by the Free Software Foundation.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program; if not, write to the Free Software
20
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
*/
22
23
#ifndef __LINUX_V4L2_SUBDEV_H
24
#define __LINUX_V4L2_SUBDEV_H
25
26
#include <
linux/ioctl.h
>
27
#include <linux/types.h>
28
#include <
linux/v4l2-common.h
>
29
#include <
linux/v4l2-mediabus.h
>
30
36
enum
v4l2_subdev_format_whence
{
37
V4L2_SUBDEV_FORMAT_TRY
= 0,
38
V4L2_SUBDEV_FORMAT_ACTIVE
= 1,
39
};
40
47
struct
v4l2_subdev_format
{
48
__u32
which
;
49
__u32
pad
;
50
struct
v4l2_mbus_framefmt
format
;
51
__u32
reserved
[8];
52
};
53
60
struct
v4l2_subdev_crop
{
61
__u32
which
;
62
__u32
pad
;
63
struct
v4l2_rect
rect
;
64
__u32
reserved
[8];
65
};
66
73
struct
v4l2_subdev_mbus_code_enum {
74
__u32
pad
;
75
__u32
index
;
76
__u32
code
;
77
__u32
reserved
[9];
78
};
79
86
struct
v4l2_subdev_frame_size_enum {
87
__u32
index
;
88
__u32
pad
;
89
__u32
code
;
90
__u32
min_width
;
91
__u32
max_width
;
92
__u32
min_height
;
93
__u32
max_height
;
94
__u32
reserved
[9];
95
};
96
102
struct
v4l2_subdev_frame_interval {
103
__u32
pad
;
104
struct
v4l2_fract
interval
;
105
__u32
reserved
[9];
106
};
107
117
struct
v4l2_subdev_frame_interval_enum {
118
__u32
index
;
119
__u32
pad
;
120
__u32
code
;
121
__u32
width
;
122
__u32
height
;
123
struct
v4l2_fract
interval
;
124
__u32
reserved
[9];
125
};
126
142
struct
v4l2_subdev_selection {
143
__u32
which;
144
__u32
pad
;
145
__u32
target
;
146
__u32
flags
;
147
struct
v4l2_rect
r
;
148
__u32
reserved
[8];
149
};
150
151
struct
v4l2_subdev_edid {
152
__u32
pad
;
153
__u32
start_block
;
154
__u32
blocks;
155
__u32
reserved
[5];
156
__u8
__user
*
edid
;
157
};
158
159
#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
160
#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
161
#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \
162
_IOWR('V', 21, struct v4l2_subdev_frame_interval)
163
#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \
164
_IOWR('V', 22, struct v4l2_subdev_frame_interval)
165
#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \
166
_IOWR('V', 2, struct v4l2_subdev_mbus_code_enum)
167
#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
168
_IOWR('V', 74, struct v4l2_subdev_frame_size_enum)
169
#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \
170
_IOWR('V', 75, struct v4l2_subdev_frame_interval_enum)
171
#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop)
172
#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop)
173
#define VIDIOC_SUBDEV_G_SELECTION \
174
_IOWR('V', 61, struct v4l2_subdev_selection)
175
#define VIDIOC_SUBDEV_S_SELECTION \
176
_IOWR('V', 62, struct v4l2_subdev_selection)
177
#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid)
178
#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid)
179
180
#endif
Generated on Thu Jan 10 2013 14:52:58 for Linux Kernel by
1.8.2