msm_q6vdec.h revision 8611d5578ff014a1415b26e75e63aecbc4ad266c
18611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved. 28611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * 38611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * Redistribution and use in source and binary forms, with or without 48611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * modification, are permitted provided that the following conditions are met: 58611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * * Redistributions of source code must retain the above copyright 68611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * notice, this list of conditions and the following disclaimer. 78611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * * Redistributions in binary form must reproduce the above copyright 88611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * notice, this list of conditions and the following disclaimer in the 98611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * documentation and/or other materials provided with the distribution. 108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * * Neither the name of Code Aurora nor 118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * the names of its contributors may be used to endorse or promote 128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * products derived from this software without specific prior written 138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * permission. 148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * 158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 198611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 258611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu * 278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu */ 288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#ifndef _MSM_VDEC_H_ 308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define _MSM_VDEC_H_ 318611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#include <linux/types.h> 338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_MAGIC 'v' 358611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 368611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_INITIALIZE _IOWR(VDEC_IOCTL_MAGIC, 1, struct vdec_init) 378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_SETBUFFERS _IOW(VDEC_IOCTL_MAGIC, 2, struct vdec_buffer) 388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_QUEUE _IOWR(VDEC_IOCTL_MAGIC, 3, \ 398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_input_buf) 408611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_REUSEFRAMEBUFFER _IOW(VDEC_IOCTL_MAGIC, 4, unsigned int) 418611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_FLUSH _IOW(VDEC_IOCTL_MAGIC, 5, unsigned int) 428611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_EOS _IO(VDEC_IOCTL_MAGIC, 6) 438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_GETMSG _IOR(VDEC_IOCTL_MAGIC, 7, struct vdec_msg) 448611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_CLOSE _IO(VDEC_IOCTL_MAGIC, 8) 458611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_FREEBUFFERS _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_buf_info) 468611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_IOCTL_GETDECATTRIBUTES _IOR(VDEC_IOCTL_MAGIC, 10, \ 478611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_dec_attributes) 488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 498611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum { 508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FRAME_DECODE_OK, 518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FRAME_DECODE_ERR, 528611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FATAL_ERR, 538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FLUSH_FINISH, 548611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_EOS, 558611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FRAME_FLUSH, 568611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_STREAM_SWITCH, 578611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_SUSPEND_FINISH, 588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_BUFFER_CONSUMED 598611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 608611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 618611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum { 628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FLUSH_INPUT, 638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FLUSH_OUTPUT, 648611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_FLUSH_ALL 658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 668611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 678611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum { 688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_BUFFER_TYPE_INPUT, 698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_BUFFER_TYPE_OUTPUT, 708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_BUFFER_TYPE_INTERNAL1, 718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_BUFFER_TYPE_INTERNAL2, 728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsuenum { 758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_QUEUE_SUCCESS, 768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_QUEUE_FAILED, 778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu VDEC_QUEUE_BADSTATE, 788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_input_buf_info { 818611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 offset; 828611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 data; 838611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 size; 848611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int timestamp_lo; 858611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int timestamp_hi; 868611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int avsync_state; 878611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 flags; 888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 898611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 908611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_buf_desc { 918611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 bufsize; 928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 num_min_buffers; 938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 num_max_buffers; 948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 958611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 968611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_buf_req { 978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 max_input_queue_size; 988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc input; 998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc output; 1008611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc dec_req1; 1018611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc dec_req2; 1028611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1048611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_region_info { 1058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 src_id; 1068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 offset; 1078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 size; 1088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_config { 1118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 fourcc; /* video format */ 1128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 width; /* source width */ 1138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 height; /* source height */ 1148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 order; /* render decoder order */ 1158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 notify_enable; /* enable notify input buffer done event */ 1168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 vc1_rowbase; 1178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 h264_startcode_detect; 1188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 h264_nal_len_size; 1198611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 postproc_flag; 1208611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 fruc_enable; 1218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 reserved; 1228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_vc1_panscan_regions { 1258611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int num; 1268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int width[4]; 1278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int height[4]; 1288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int xoffset[4]; 1298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int yoffset[4]; 1308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1318611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_cropping_window { 1338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 x1; 1348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 y1; 1358611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 x2; 1368611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 y2; 1378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_frame_info { 1408611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 status; /* video decode status */ 1418611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 offset; /* buffer offset */ 1428611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 data1; /* user data field 1 */ 1438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 data2; /* user data field 2 */ 1448611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int timestamp_lo; /* lower 32 bits timestamp, in msec */ 1458611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int timestamp_hi; /* higher 32 bits timestamp, in msec */ 1468611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int cal_timestamp_lo; /* lower 32 bits cal timestamp, in msec */ 1478611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int cal_timestamp_hi; /* higher 32 bits cal timestamp, in msec */ 1488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 dec_width; /* frame roi width */ 1498611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 dec_height; /* frame roi height */ 1508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_cropping_window cwin; /* The frame cropping window */ 1518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 picture_type[2]; /* picture coding type */ 1528611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 picture_format; /* picture coding format */ 1538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 vc1_rangeY; /* luma range mapping */ 1548611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 vc1_rangeUV; /* chroma range mapping */ 1558611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 picture_resolution; /* scaling factor */ 1568611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 frame_disp_repeat; /* how often repeated by disp */ 1578611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 repeat_first_field; /* repeat 1st field after 2nd */ 1588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 top_field_first; /* top field displayed first */ 1598611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 interframe_interp; /* not for inter-frame interp */ 1608611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_vc1_panscan_regions panscan; /* pan region */ 1618611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 concealed_macblk_num; /* number of concealed macro blk */ 1628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 flags; /* input flags */ 1638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 performance_stats; /* performance statistics returned by decoder */ 1648611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 data3; /* user data field 3 */ 1658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1668611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1678611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_buf_info { 1688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 buf_type; 1698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_region_info region; 1708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 num_buf; 1718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 islast; 1728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_buffer { 1758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 pmem_id; 1768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_info buf; 1778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_sequence { 1808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u8 *header; 1818611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 len; 1828611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1838611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1848611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_config_sps { 1858611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_config cfg; 1868611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_sequence seq; 1878611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 1888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1898611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_MSG_REUSEINPUTBUFFER 1 1908611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define VDEC_MSG_FRAMEDONE 2 1918611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_msg { 1938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 id; 1948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 1958611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu union { 1968611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu /* id = VDEC_MSG_REUSEINPUTBUFFER */ 1978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 buf_id; 1988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu /* id = VDEC_MSG_FRAMEDONE */ 1998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_frame_info vfr_info; 2008611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu }; 2018611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 2028611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 2038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_init { 2048611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_config_sps sps_cfg; 2058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_req *buf_req; 2068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 2078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 2088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_input_buf { 2098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 pmem_id; 2108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_input_buf_info buffer; 2118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_queue_status *queue_status; 2128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 2138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 2148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_queue_status { 2158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 status; 2168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 2178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 2188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct vdec_dec_attributes { 2198611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 fourcc; 2208611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 profile; 2218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 level; 2228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 dec_pic_width; 2238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 dec_pic_height; 2248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc input; 2258611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc output; 2268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc dec_req1; 2278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct vdec_buf_desc dec_req2; 2288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu}; 2298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu 2308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#endif /* _MSM_VDEC_H_ */ 231