11094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru/* Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved. 21094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * 31094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * Redistribution and use in source and binary forms, with or without 41094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * modification, are permitted provided that the following conditions are met: 51094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * * Redistributions of source code must retain the above copyright 61094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * notice, this list of conditions and the following disclaimer. 71094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * * Redistributions in binary form must reproduce the above copyright 81094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * notice, this list of conditions and the following disclaimer in the 91094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * documentation and/or other materials provided with the distribution. 101094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * * Neither the name of Code Aurora nor 111094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * the names of its contributors may be used to endorse or promote 121094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * products derived from this software without specific prior written 131094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * permission. 141094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * 151094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 161094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 171094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 181094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 191094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 201094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 211094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 221094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 231094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 241094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 251094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 261094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru * 271094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru */ 281094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 291094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#ifndef _MSM_VDEC_H_ 301094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define _MSM_VDEC_H_ 311094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 321094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#include <linux/types.h> 331094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 341094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_MAGIC 'v' 351094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 361094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_INITIALIZE _IOWR(VDEC_IOCTL_MAGIC, 1, struct vdec_init) 371094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_SETBUFFERS _IOW(VDEC_IOCTL_MAGIC, 2, struct vdec_buffer) 381094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_QUEUE _IOWR(VDEC_IOCTL_MAGIC, 3, \ 391094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_input_buf) 401094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_REUSEFRAMEBUFFER _IOW(VDEC_IOCTL_MAGIC, 4, unsigned int) 411094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_FLUSH _IOW(VDEC_IOCTL_MAGIC, 5, unsigned int) 421094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_EOS _IO(VDEC_IOCTL_MAGIC, 6) 431094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_GETMSG _IOR(VDEC_IOCTL_MAGIC, 7, struct vdec_msg) 441094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_CLOSE _IO(VDEC_IOCTL_MAGIC, 8) 451094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_FREEBUFFERS _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_buf_info) 461094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_IOCTL_GETDECATTRIBUTES _IOR(VDEC_IOCTL_MAGIC, 10, \ 471094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_dec_attributes) 481094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 491094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queruenum { 501094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FRAME_DECODE_OK, 511094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FRAME_DECODE_ERR, 521094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FATAL_ERR, 531094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FLUSH_FINISH, 541094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_EOS, 551094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FRAME_FLUSH, 561094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_STREAM_SWITCH, 571094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_SUSPEND_FINISH, 581094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_BUFFER_CONSUMED 591094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 601094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 611094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queruenum { 621094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FLUSH_INPUT, 631094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FLUSH_OUTPUT, 641094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_FLUSH_ALL 651094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 661094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 671094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queruenum { 681094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_BUFFER_TYPE_INPUT, 691094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_BUFFER_TYPE_OUTPUT, 701094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_BUFFER_TYPE_INTERNAL1, 711094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_BUFFER_TYPE_INTERNAL2, 721094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 731094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 741094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queruenum { 751094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_QUEUE_SUCCESS, 761094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_QUEUE_FAILED, 771094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru VDEC_QUEUE_BADSTATE, 781094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 791094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 801094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_input_buf_info { 811094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 offset; 821094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 data; 831094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 size; 841094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int timestamp_lo; 851094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int timestamp_hi; 861094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int avsync_state; 871094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 flags; 881094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 891094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 901094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_buf_desc { 911094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 bufsize; 921094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 num_min_buffers; 931094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 num_max_buffers; 941094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 951094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 961094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_buf_req { 971094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 max_input_queue_size; 981094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc input; 991094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc output; 1001094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc dec_req1; 1011094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc dec_req2; 1021094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1031094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1041094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_region_info { 1051094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 src_id; 1061094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 offset; 1071094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 size; 1081094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1091094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1101094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_config { 1111094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 fourcc; /* video format */ 1121094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 width; /* source width */ 1131094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 height; /* source height */ 1141094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 order; /* render decoder order */ 1151094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 notify_enable; /* enable notify input buffer done event */ 1161094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 vc1_rowbase; 1171094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 h264_startcode_detect; 1181094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 h264_nal_len_size; 1191094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 postproc_flag; 1201094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 fruc_enable; 1211094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 reserved; 1221094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1231094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1241094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_vc1_panscan_regions { 1251094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int num; 1261094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int width[4]; 1271094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int height[4]; 1281094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int xoffset[4]; 1291094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int yoffset[4]; 1301094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1311094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1321094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_cropping_window { 1331094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 x1; 1341094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 y1; 1351094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 x2; 1361094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 y2; 1371094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1381094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1391094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_frame_info { 1401094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 status; /* video decode status */ 1411094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 offset; /* buffer offset */ 1421094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 data1; /* user data field 1 */ 1431094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 data2; /* user data field 2 */ 1441094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int timestamp_lo; /* lower 32 bits timestamp, in msec */ 1451094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int timestamp_hi; /* higher 32 bits timestamp, in msec */ 1461094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int cal_timestamp_lo; /* lower 32 bits cal timestamp, in msec */ 1471094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru int cal_timestamp_hi; /* higher 32 bits cal timestamp, in msec */ 1481094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 dec_width; /* frame roi width */ 1491094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 dec_height; /* frame roi height */ 1501094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_cropping_window cwin; /* The frame cropping window */ 1511094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 picture_type[2]; /* picture coding type */ 1521094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 picture_format; /* picture coding format */ 1531094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 vc1_rangeY; /* luma range mapping */ 1541094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 vc1_rangeUV; /* chroma range mapping */ 1551094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 picture_resolution; /* scaling factor */ 1561094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 frame_disp_repeat; /* how often repeated by disp */ 1571094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 repeat_first_field; /* repeat 1st field after 2nd */ 1581094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 top_field_first; /* top field displayed first */ 1591094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 interframe_interp; /* not for inter-frame interp */ 1601094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_vc1_panscan_regions panscan; /* pan region */ 1611094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 concealed_macblk_num; /* number of concealed macro blk */ 1621094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 flags; /* input flags */ 1631094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 performance_stats; /* performance statistics returned by decoder */ 1641094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 data3; /* user data field 3 */ 1651094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1661094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1671094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_buf_info { 1681094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 buf_type; 1691094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_region_info region; 1701094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 num_buf; 1711094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 islast; 1721094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1731094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1741094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_buffer { 1751094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 pmem_id; 1761094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_info buf; 1771094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1781094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1791094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_sequence { 1801094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u8 *header; 1811094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 len; 1821094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1831094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1841094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_config_sps { 1851094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_config cfg; 1861094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_sequence seq; 1871094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 1881094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1891094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_MSG_REUSEINPUTBUFFER 1 1901094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#define VDEC_MSG_FRAMEDONE 2 1911094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1921094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_msg { 1931094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 id; 1941094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 1951094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru union { 1961094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru /* id = VDEC_MSG_REUSEINPUTBUFFER */ 1971094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 buf_id; 1981094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru /* id = VDEC_MSG_FRAMEDONE */ 1991094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_frame_info vfr_info; 2001094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru }; 2011094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 2021094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 2031094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_init { 2041094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_config_sps sps_cfg; 2051094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_req *buf_req; 2061094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 2071094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 2081094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_input_buf { 2091094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 pmem_id; 2101094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_input_buf_info buffer; 2111094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_queue_status *queue_status; 2121094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 2131094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 2141094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_queue_status { 2151094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 status; 2161094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 2171094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 2181094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Querustruct vdec_dec_attributes { 2191094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 fourcc; 2201094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 profile; 2211094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 level; 2221094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 dec_pic_width; 2231094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru u32 dec_pic_height; 2241094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc input; 2251094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc output; 2261094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc dec_req1; 2271094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru struct vdec_buf_desc dec_req2; 2281094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru}; 2291094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru 2301094b68a0b1abb6616b613d8e4069ff71f882ce0Jean-Baptiste Queru#endif /* _MSM_VDEC_H_ */ 231