Home | History | Annotate | Download | only in linux
      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)
     41 enum {
     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 };
     55 enum {
     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 };
     61 enum {
     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 */
     69 enum {
     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 };
     75 enum {
     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  };
     80 enum 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 };
     96 enum {
     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 */
    104 struct 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 };
    115 struct 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 };
    121 struct 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 };
    130 struct 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 };
    136 struct 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 };
    152 struct 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 };
    161 struct 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 */
    169 struct 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 };
    202 struct 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 };
    210 struct 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 };
    215 struct vdec_sequence {
    216  u8 *header;
    217  u32 len;
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219 };
    220 struct 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
    227 struct 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 };
    236 struct 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 };
    241 struct 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 };
    247 struct vdec_queue_status {
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249  u32 status;
    250 };
    251 struct 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 };
    265 struct vdec_version {
    266  u32 major;
    267  u32 minor;
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269 };
    270 struct dal_vdec_rectangle {
    271  u32 width;
    272  u32 height;
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274 };
    275 struct stride_type {
    276  u32 luma;
    277  u32 chroma;
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279 };
    280 struct 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 */
    289 union 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 };
    306 struct 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