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 _UAPI_MSM_VDEC_H_
     20 #define _UAPI_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