summaryrefslogtreecommitdiff
path: root/platform/sysroot/usr/include/linux/v4l2-subdev.h
blob: d684a54998b0dd70301b49d21debbc08cfdf81be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef __LINUX_V4L2_SUBDEV_H
#define __LINUX_V4L2_SUBDEV_H
#include <linux/const.h>
#include <linux/ioctl.h>
#include <linux/types.h>
#include <linux/v4l2-common.h>
#include <linux/v4l2-mediabus.h>
enum v4l2_subdev_format_whence {
  V4L2_SUBDEV_FORMAT_TRY = 0,
  V4L2_SUBDEV_FORMAT_ACTIVE = 1,
};
struct v4l2_subdev_format {
  __u32 which;
  __u32 pad;
  struct v4l2_mbus_framefmt format;
  __u32 stream;
  __u32 reserved[7];
};
struct v4l2_subdev_crop {
  __u32 which;
  __u32 pad;
  struct v4l2_rect rect;
  __u32 stream;
  __u32 reserved[7];
};
#define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001
#define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002
#define V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 0x00000004
#define V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC
#define V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION 0x00000008
struct v4l2_subdev_mbus_code_enum {
  __u32 pad;
  __u32 index;
  __u32 code;
  __u32 which;
  __u32 flags;
  __u32 stream;
  __u32 reserved[6];
};
struct v4l2_subdev_frame_size_enum {
  __u32 index;
  __u32 pad;
  __u32 code;
  __u32 min_width;
  __u32 max_width;
  __u32 min_height;
  __u32 max_height;
  __u32 which;
  __u32 stream;
  __u32 reserved[7];
};
struct v4l2_subdev_frame_interval {
  __u32 pad;
  struct v4l2_fract interval;
  __u32 stream;
  __u32 reserved[8];
};
struct v4l2_subdev_frame_interval_enum {
  __u32 index;
  __u32 pad;
  __u32 code;
  __u32 width;
  __u32 height;
  struct v4l2_fract interval;
  __u32 which;
  __u32 stream;
  __u32 reserved[7];
};
struct v4l2_subdev_selection {
  __u32 which;
  __u32 pad;
  __u32 target;
  __u32 flags;
  struct v4l2_rect r;
  __u32 stream;
  __u32 reserved[7];
};
struct v4l2_subdev_capability {
  __u32 version;
  __u32 capabilities;
  __u32 reserved[14];
};
#define V4L2_SUBDEV_CAP_RO_SUBDEV 0x00000001
#define V4L2_SUBDEV_CAP_STREAMS 0x00000002
#define V4L2_SUBDEV_ROUTE_FL_ACTIVE (1U << 0)
struct v4l2_subdev_route {
  __u32 sink_pad;
  __u32 sink_stream;
  __u32 source_pad;
  __u32 source_stream;
  __u32 flags;
  __u32 reserved[5];
};
struct v4l2_subdev_routing {
  __u32 which;
  __u32 num_routes;
  __u64 routes;
  __u32 reserved[6];
};
#define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
struct v4l2_subdev_client_capability {
  __u64 capabilities;
};
#define v4l2_subdev_edid v4l2_edid
#define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability)
#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
#define VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval)
#define VIDIOC_SUBDEV_S_FRAME_INTERVAL _IOWR('V', 22, struct v4l2_subdev_frame_interval)
#define VIDIOC_SUBDEV_ENUM_MBUS_CODE _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum)
#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE _IOWR('V', 74, struct v4l2_subdev_frame_size_enum)
#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum)
#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop)
#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop)
#define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection)
#define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection)
#define VIDIOC_SUBDEV_G_ROUTING _IOWR('V', 38, struct v4l2_subdev_routing)
#define VIDIOC_SUBDEV_S_ROUTING _IOWR('V', 39, struct v4l2_subdev_routing)
#define VIDIOC_SUBDEV_G_CLIENT_CAP _IOR('V', 101, struct v4l2_subdev_client_capability)
#define VIDIOC_SUBDEV_S_CLIENT_CAP _IOWR('V', 102, struct v4l2_subdev_client_capability)
#define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id)
#define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id)
#define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid)
#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid)
#define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id)
#define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
#define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
#define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
#define VIDIOC_SUBDEV_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings)
#define VIDIOC_SUBDEV_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap)
#endif