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