• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _MSM_VDEC_H_
20 #define _MSM_VDEC_H_
21 #include <linux/types.h>
22 #define VDEC_IOCTL_MAGIC 'v'
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define VDEC_IOCTL_INITIALIZE _IOWR(VDEC_IOCTL_MAGIC, 1, struct vdec_init)
25 #define VDEC_IOCTL_SETBUFFERS _IOW(VDEC_IOCTL_MAGIC, 2, struct vdec_buffer)
26 #define VDEC_IOCTL_QUEUE _IOWR(VDEC_IOCTL_MAGIC, 3,   struct vdec_input_buf)
27 #define VDEC_IOCTL_REUSEFRAMEBUFFER _IOW(VDEC_IOCTL_MAGIC, 4, unsigned int)
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define VDEC_IOCTL_FLUSH _IOW(VDEC_IOCTL_MAGIC, 5, unsigned int)
30 #define VDEC_IOCTL_EOS _IO(VDEC_IOCTL_MAGIC, 6)
31 #define VDEC_IOCTL_GETMSG _IOR(VDEC_IOCTL_MAGIC, 7, struct vdec_msg)
32 #define VDEC_IOCTL_CLOSE _IO(VDEC_IOCTL_MAGIC, 8)
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define VDEC_IOCTL_FREEBUFFERS _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_buf_info)
35 #define VDEC_IOCTL_GETDECATTRIBUTES _IOR(VDEC_IOCTL_MAGIC, 10,   struct vdec_dec_attributes)
36 enum {
37  VDEC_FRAME_DECODE_OK,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  VDEC_FRAME_DECODE_ERR,
40  VDEC_FATAL_ERR,
41  VDEC_FLUSH_FINISH,
42  VDEC_EOS,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  VDEC_FRAME_FLUSH,
45  VDEC_STREAM_SWITCH,
46  VDEC_SUSPEND_FINISH,
47  VDEC_BUFFER_CONSUMED
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 };
50 enum {
51  VDEC_FLUSH_INPUT,
52  VDEC_FLUSH_OUTPUT,
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  VDEC_FLUSH_ALL
55 };
56 enum {
57  VDEC_BUFFER_TYPE_INPUT,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  VDEC_BUFFER_TYPE_OUTPUT,
60  VDEC_BUFFER_TYPE_INTERNAL1,
61  VDEC_BUFFER_TYPE_INTERNAL2,
62 };
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 enum {
65  VDEC_QUEUE_SUCCESS,
66  VDEC_QUEUE_FAILED,
67  VDEC_QUEUE_BADSTATE,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 };
70 struct vdec_input_buf_info {
71  u32 offset;
72  u32 data;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  u32 size;
75  int timestamp_lo;
76  int timestamp_hi;
77  int avsync_state;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  u32 flags;
80 };
81 struct vdec_buf_desc {
82  u32 bufsize;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  u32 num_min_buffers;
85  u32 num_max_buffers;
86 };
87 struct vdec_buf_req {
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  u32 max_input_queue_size;
90  struct vdec_buf_desc input;
91  struct vdec_buf_desc output;
92  struct vdec_buf_desc dec_req1;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  struct vdec_buf_desc dec_req2;
95 };
96 struct vdec_region_info {
97  u32 src_id;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  u32 offset;
100  u32 size;
101 };
102 struct vdec_config {
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  u32 fourcc;
105  u32 width;
106  u32 height;
107  u32 order;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  u32 notify_enable;
110  u32 vc1_rowbase;
111  u32 h264_startcode_detect;
112  u32 h264_nal_len_size;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  u32 postproc_flag;
115  u32 fruc_enable;
116  u32 reserved;
117 };
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 struct vdec_vc1_panscan_regions {
120  int num;
121  int width[4];
122  int height[4];
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  int xoffset[4];
125  int yoffset[4];
126 };
127 struct vdec_cropping_window {
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  u32 x1;
130  u32 y1;
131  u32 x2;
132  u32 y2;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 };
135 struct vdec_frame_info {
136  u32 status;
137  u32 offset;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  u32 data1;
140  u32 data2;
141  int timestamp_lo;
142  int timestamp_hi;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  int cal_timestamp_lo;
145  int cal_timestamp_hi;
146  u32 dec_width;
147  u32 dec_height;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  struct vdec_cropping_window cwin;
150  u32 picture_type[2];
151  u32 picture_format;
152  u32 vc1_rangeY;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  u32 vc1_rangeUV;
155  u32 picture_resolution;
156  u32 frame_disp_repeat;
157  u32 repeat_first_field;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159  u32 top_field_first;
160  u32 interframe_interp;
161  struct vdec_vc1_panscan_regions panscan;
162  u32 concealed_macblk_num;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  u32 flags;
165  u32 performance_stats;
166  u32 data3;
167 };
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 struct vdec_buf_info {
170  u32 buf_type;
171  struct vdec_region_info region;
172  u32 num_buf;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  u32 islast;
175 };
176 struct vdec_buffer {
177  u32 pmem_id;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  struct vdec_buf_info buf;
180 };
181 struct vdec_sequence {
182  u8 *header;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  u32 len;
185 };
186 struct vdec_config_sps {
187  struct vdec_config cfg;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  struct vdec_sequence seq;
190 };
191 #define VDEC_MSG_REUSEINPUTBUFFER 1
192 #define VDEC_MSG_FRAMEDONE 2
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194 struct vdec_msg {
195  u32 id;
196  union {
197  u32 buf_id;
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  struct vdec_frame_info vfr_info;
200  };
201 };
202 struct vdec_init {
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  struct vdec_config_sps sps_cfg;
205  struct vdec_buf_req *buf_req;
206 };
207 struct vdec_input_buf {
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  u32 pmem_id;
210  struct vdec_input_buf_info buffer;
211  struct vdec_queue_status *queue_status;
212 };
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 struct vdec_queue_status {
215  u32 status;
216 };
217 struct vdec_dec_attributes {
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  u32 fourcc;
220  u32 profile;
221  u32 level;
222  u32 dec_pic_width;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224  u32 dec_pic_height;
225  struct vdec_buf_desc input;
226  struct vdec_buf_desc output;
227  struct vdec_buf_desc dec_req1;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  struct vdec_buf_desc dec_req2;
230 };
231 #endif
232