blob: d1281b00d75ae30b8c0d6764ec319466cacf03fe [file] [log] [blame]
Dima Zavin2e5bd8f2009-08-30 19:17:26 -07001/****************************************************************************
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 ***
Ben Cheng654325d2012-03-07 21:13:49 -080010 *** 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 ***
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070017 ****************************************************************************
18 ****************************************************************************/
19#ifndef _MSM_VDEC_H_
20#define _MSM_VDEC_H_
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070021#include <linux/types.h>
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070022#define VDEC_IOCTL_MAGIC 'v'
Ben Cheng654325d2012-03-07 21:13:49 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070024#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)
Ben Cheng654325d2012-03-07 21:13:49 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070029#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)
Ben Cheng654325d2012-03-07 21:13:49 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070034#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)
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070036enum {
37 VDEC_FRAME_DECODE_OK,
Ben Cheng654325d2012-03-07 21:13:49 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070039 VDEC_FRAME_DECODE_ERR,
40 VDEC_FATAL_ERR,
41 VDEC_FLUSH_FINISH,
42 VDEC_EOS,
Ben Cheng654325d2012-03-07 21:13:49 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070044 VDEC_FRAME_FLUSH,
45 VDEC_STREAM_SWITCH,
46 VDEC_SUSPEND_FINISH,
47 VDEC_BUFFER_CONSUMED
Ben Cheng654325d2012-03-07 21:13:49 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070049};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070050enum {
51 VDEC_FLUSH_INPUT,
52 VDEC_FLUSH_OUTPUT,
Ben Cheng654325d2012-03-07 21:13:49 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070054 VDEC_FLUSH_ALL
55};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070056enum {
57 VDEC_BUFFER_TYPE_INPUT,
Ben Cheng654325d2012-03-07 21:13:49 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070059 VDEC_BUFFER_TYPE_OUTPUT,
60 VDEC_BUFFER_TYPE_INTERNAL1,
61 VDEC_BUFFER_TYPE_INTERNAL2,
62};
Ben Cheng654325d2012-03-07 21:13:49 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070064enum {
65 VDEC_QUEUE_SUCCESS,
66 VDEC_QUEUE_FAILED,
67 VDEC_QUEUE_BADSTATE,
Ben Cheng654325d2012-03-07 21:13:49 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070069};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070070struct vdec_input_buf_info {
71 u32 offset;
72 u32 data;
Ben Cheng654325d2012-03-07 21:13:49 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070074 u32 size;
75 int timestamp_lo;
76 int timestamp_hi;
77 int avsync_state;
Ben Cheng654325d2012-03-07 21:13:49 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070079 u32 flags;
80};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070081struct vdec_buf_desc {
82 u32 bufsize;
Ben Cheng654325d2012-03-07 21:13:49 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070084 u32 num_min_buffers;
85 u32 num_max_buffers;
86};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070087struct vdec_buf_req {
Ben Cheng654325d2012-03-07 21:13:49 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070089 u32 max_input_queue_size;
90 struct vdec_buf_desc input;
91 struct vdec_buf_desc output;
92 struct vdec_buf_desc dec_req1;
Ben Cheng654325d2012-03-07 21:13:49 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070094 struct vdec_buf_desc dec_req2;
95};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070096struct vdec_region_info {
97 u32 src_id;
Ben Cheng654325d2012-03-07 21:13:49 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -070099 u32 offset;
100 u32 size;
101};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700102struct vdec_config {
Ben Cheng654325d2012-03-07 21:13:49 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700104 u32 fourcc;
105 u32 width;
106 u32 height;
107 u32 order;
Ben Cheng654325d2012-03-07 21:13:49 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700109 u32 notify_enable;
110 u32 vc1_rowbase;
111 u32 h264_startcode_detect;
112 u32 h264_nal_len_size;
Ben Cheng654325d2012-03-07 21:13:49 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700114 u32 postproc_flag;
115 u32 fruc_enable;
116 u32 reserved;
117};
Ben Cheng654325d2012-03-07 21:13:49 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700119struct vdec_vc1_panscan_regions {
120 int num;
121 int width[4];
122 int height[4];
Ben Cheng654325d2012-03-07 21:13:49 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700124 int xoffset[4];
125 int yoffset[4];
126};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700127struct vdec_cropping_window {
Ben Cheng654325d2012-03-07 21:13:49 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700129 u32 x1;
130 u32 y1;
131 u32 x2;
132 u32 y2;
Ben Cheng654325d2012-03-07 21:13:49 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700134};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700135struct vdec_frame_info {
136 u32 status;
137 u32 offset;
Ben Cheng654325d2012-03-07 21:13:49 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700139 u32 data1;
140 u32 data2;
141 int timestamp_lo;
142 int timestamp_hi;
Ben Cheng654325d2012-03-07 21:13:49 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700144 int cal_timestamp_lo;
145 int cal_timestamp_hi;
146 u32 dec_width;
147 u32 dec_height;
Ben Cheng654325d2012-03-07 21:13:49 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700149 struct vdec_cropping_window cwin;
150 u32 picture_type[2];
151 u32 picture_format;
152 u32 vc1_rangeY;
Ben Cheng654325d2012-03-07 21:13:49 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700154 u32 vc1_rangeUV;
155 u32 picture_resolution;
156 u32 frame_disp_repeat;
157 u32 repeat_first_field;
Ben Cheng654325d2012-03-07 21:13:49 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700159 u32 top_field_first;
160 u32 interframe_interp;
161 struct vdec_vc1_panscan_regions panscan;
162 u32 concealed_macblk_num;
Ben Cheng654325d2012-03-07 21:13:49 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700164 u32 flags;
165 u32 performance_stats;
166 u32 data3;
167};
Ben Cheng654325d2012-03-07 21:13:49 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700169struct vdec_buf_info {
170 u32 buf_type;
171 struct vdec_region_info region;
172 u32 num_buf;
Ben Cheng654325d2012-03-07 21:13:49 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700174 u32 islast;
175};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700176struct vdec_buffer {
177 u32 pmem_id;
Ben Cheng654325d2012-03-07 21:13:49 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700179 struct vdec_buf_info buf;
180};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700181struct vdec_sequence {
182 u8 *header;
Ben Cheng654325d2012-03-07 21:13:49 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700184 u32 len;
185};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700186struct vdec_config_sps {
187 struct vdec_config cfg;
Ben Cheng654325d2012-03-07 21:13:49 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700189 struct vdec_sequence seq;
190};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700191#define VDEC_MSG_REUSEINPUTBUFFER 1
192#define VDEC_MSG_FRAMEDONE 2
Ben Cheng654325d2012-03-07 21:13:49 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700194struct vdec_msg {
195 u32 id;
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700196 union {
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700197 u32 buf_id;
Ben Cheng654325d2012-03-07 21:13:49 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700199 struct vdec_frame_info vfr_info;
200 };
201};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700202struct vdec_init {
Ben Cheng654325d2012-03-07 21:13:49 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700204 struct vdec_config_sps sps_cfg;
205 struct vdec_buf_req *buf_req;
206};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700207struct vdec_input_buf {
Ben Cheng654325d2012-03-07 21:13:49 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700209 u32 pmem_id;
210 struct vdec_input_buf_info buffer;
211 struct vdec_queue_status *queue_status;
212};
Ben Cheng654325d2012-03-07 21:13:49 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700214struct vdec_queue_status {
215 u32 status;
216};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700217struct vdec_dec_attributes {
Ben Cheng654325d2012-03-07 21:13:49 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700219 u32 fourcc;
220 u32 profile;
221 u32 level;
222 u32 dec_pic_width;
Ben Cheng654325d2012-03-07 21:13:49 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700224 u32 dec_pic_height;
225 struct vdec_buf_desc input;
226 struct vdec_buf_desc output;
227 struct vdec_buf_desc dec_req1;
Ben Cheng654325d2012-03-07 21:13:49 -0800228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700229 struct vdec_buf_desc dec_req2;
230};
Dima Zavin2e5bd8f2009-08-30 19:17:26 -0700231#endif