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#define VDEC_IOCTL_GETVERSION _IOR(VDEC_IOCTL_MAGIC, 11, struct vdec_version) 37#define VDEC_IOCTL_SETPROPERTY _IOW (VDEC_IOCTL_MAGIC, 12, struct vdec_property_info) 38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39#define VDEC_IOCTL_GETPROPERTY _IOR (VDEC_IOCTL_MAGIC, 13, struct vdec_property_info) 40#define VDEC_IOCTL_PERFORMANCE_CHANGE_REQ _IOW(VDEC_IOCTL_MAGIC, 14, unsigned int) 41enum { 42 VDEC_FRAME_DECODE_OK, 43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 VDEC_FRAME_DECODE_ERR, 45 VDEC_FATAL_ERR, 46 VDEC_FLUSH_FINISH, 47 VDEC_EOS, 48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 VDEC_FRAME_FLUSH, 50 VDEC_STREAM_SWITCH, 51 VDEC_SUSPEND_FINISH, 52 VDEC_BUFFER_CONSUMED 53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54}; 55enum { 56 VDEC_FLUSH_INPUT, 57 VDEC_FLUSH_OUTPUT, 58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 VDEC_FLUSH_ALL 60}; 61enum { 62 VDEC_BUFFER_TYPE_INPUT, 63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 VDEC_BUFFER_TYPE_OUTPUT, 65 VDEC_BUFFER_TYPE_INTERNAL1, 66 VDEC_BUFFER_TYPE_INTERNAL2, 67}; 68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69enum { 70 VDEC_QUEUE_SUCCESS, 71 VDEC_QUEUE_FAILED, 72 VDEC_QUEUE_BADSTATE, 73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74}; 75enum { 76 VDEC_COLOR_FORMAT_NV21 = 0x01, 77 VDEC_COLOR_FORMAT_NV21_YAMOTO = 0x02 78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 }; 80enum vdec_property_id { 81 VDEC_FOURCC, 82 VDEC_PROFILE, 83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 VDEC_LEVEL, 85 VDEC_DIMENSIONS, 86 VDEC_CWIN, 87 VDEC_INPUT_BUF_REQ, 88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 VDEC_OUTPUT_BUF_REQ, 90 VDEC_LUMA_CHROMA_STRIDE, 91 VDEC_NUM_DAL_PORTS, 92 VDEC_PRIORITY, 93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 VDEC_FRAME_ALIGNMENT 95}; 96enum { 97 PERF_REQUEST_SET_MIN = 0, 98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 PERF_REQUEST_LOWER, 100 PERF_REQUEST_RAISE, 101 PERF_REQUEST_SET_MAX 102}; 103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104struct vdec_input_buf_info { 105 u32 offset; 106 u32 data; 107 u32 size; 108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 int timestamp_lo; 110 int timestamp_hi; 111 int avsync_state; 112 u32 flags; 113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114}; 115struct vdec_buf_desc { 116 u32 bufsize; 117 u32 num_min_buffers; 118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 u32 num_max_buffers; 120}; 121struct vdec_buf_req { 122 u32 max_input_queue_size; 123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 struct vdec_buf_desc input; 125 struct vdec_buf_desc output; 126 struct vdec_buf_desc dec_req1; 127 struct vdec_buf_desc dec_req2; 128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129}; 130struct vdec_region_info { 131 u32 src_id; 132 u32 offset; 133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 u32 size; 135}; 136struct vdec_config { 137 u32 fourcc; 138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 u32 width; 140 u32 height; 141 u32 order; 142 u32 notify_enable; 143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 u32 vc1_rowbase; 145 u32 h264_startcode_detect; 146 u32 h264_nal_len_size; 147 u32 postproc_flag; 148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 u32 fruc_enable; 150 u32 color_format; 151}; 152struct vdec_vc1_panscan_regions { 153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 int num; 155 int width[4]; 156 int height[4]; 157 int xoffset[4]; 158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 int yoffset[4]; 160}; 161struct vdec_cropping_window { 162 u32 x1; 163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 u32 y1; 165 u32 x2; 166 u32 y2; 167}; 168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169struct vdec_frame_info { 170 u32 status; 171 u32 offset; 172 u32 data1; 173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 u32 data2; 175 int timestamp_lo; 176 int timestamp_hi; 177 int cal_timestamp_lo; 178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 int cal_timestamp_hi; 180 u32 dec_width; 181 u32 dec_height; 182 struct vdec_cropping_window cwin; 183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 u32 picture_type[2]; 185 u32 picture_format; 186 u32 vc1_rangeY; 187 u32 vc1_rangeUV; 188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 u32 picture_resolution; 190 u32 frame_disp_repeat; 191 u32 repeat_first_field; 192 u32 top_field_first; 193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 u32 interframe_interp; 195 struct vdec_vc1_panscan_regions panscan; 196 u32 concealed_macblk_num; 197 u32 flags; 198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 u32 performance_stats; 200 u32 data3; 201}; 202struct vdec_buf_info { 203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 u32 buf_type; 205 struct vdec_region_info region; 206 u32 num_buf; 207 u32 islast; 208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209}; 210struct vdec_buffer { 211 u32 pmem_id; 212 struct vdec_buf_info buf; 213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214}; 215struct vdec_sequence { 216 u8 *header; 217 u32 len; 218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219}; 220struct vdec_config_sps { 221 struct vdec_config cfg; 222 struct vdec_sequence seq; 223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224}; 225#define VDEC_MSG_REUSEINPUTBUFFER 1 226#define VDEC_MSG_FRAMEDONE 2 227struct vdec_msg { 228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 u32 id; 230 union { 231 u32 buf_id; 232 struct vdec_frame_info vfr_info; 233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 }; 235}; 236struct vdec_init { 237 struct vdec_config_sps sps_cfg; 238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 struct vdec_buf_req *buf_req; 240}; 241struct vdec_input_buf { 242 u32 pmem_id; 243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 struct vdec_input_buf_info buffer; 245 struct vdec_queue_status *queue_status; 246}; 247struct vdec_queue_status { 248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 u32 status; 250}; 251struct vdec_dec_attributes { 252 u32 fourcc; 253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 u32 profile; 255 u32 level; 256 u32 dec_pic_width; 257 u32 dec_pic_height; 258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 struct vdec_buf_desc input; 260 struct vdec_buf_desc output; 261 struct vdec_buf_desc dec_req1; 262 struct vdec_buf_desc dec_req2; 263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264}; 265struct vdec_version { 266 u32 major; 267 u32 minor; 268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269}; 270struct dal_vdec_rectangle { 271 u32 width; 272 u32 height; 273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274}; 275struct stride_type { 276 u32 luma; 277 u32 chroma; 278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279}; 280struct frame_alignment_type { 281 u32 luma_width; 282 u32 luma_height; 283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 u32 chroma_width; 285 u32 chroma_height; 286 u32 chroma_offset; 287}; 288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289union vdec_property { 290 u32 fourcc; 291 u32 profile; 292 u32 level; 293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 struct dal_vdec_rectangle dim; 295 struct vdec_cropping_window cw; 296 struct vdec_buf_desc input_req; 297 struct vdec_buf_desc output_req; 298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 struct stride_type stride; 300 u32 num_dal_ports; 301 u32 priority; 302 struct frame_alignment_type frame_alignment; 303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 u32 def_type; 305}; 306struct vdec_property_info { 307 enum vdec_property_id id; 308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 union vdec_property property; 310}; 311#endif 312 313