/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _MSM_VIDC_DEC_H_
#define _MSM_VIDC_DEC_H_
#include <linux/types.h>
#include <linux/ioctl.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_S_BASE 0x40000000
#define VDEC_S_SUCCESS (VDEC_S_BASE)
#define VDEC_S_EFAIL (VDEC_S_BASE + 1)
#define VDEC_S_EFATAL (VDEC_S_BASE + 2)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_S_EBADPARAM (VDEC_S_BASE + 3)
#define VDEC_S_EINVALSTATE (VDEC_S_BASE + 4)
#define VDEC_S_ENOSWRES (VDEC_S_BASE + 5)
#define VDEC_S_ENOHWRES (VDEC_S_BASE + 6)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_S_EINVALCMD (VDEC_S_BASE + 7)
#define VDEC_S_ETIMEOUT (VDEC_S_BASE + 8)
#define VDEC_S_ENOPREREQ (VDEC_S_BASE + 9)
#define VDEC_S_ECMDQFULL (VDEC_S_BASE + 10)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_S_ENOTSUPP (VDEC_S_BASE + 11)
#define VDEC_S_ENOTIMPL (VDEC_S_BASE + 12)
#define VDEC_S_BUSY (VDEC_S_BASE + 13)
#define VDEC_INTF_VER 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_MSG_BASE 0x0000000
#define VDEC_MSG_INVALID (VDEC_MSG_BASE + 0)
#define VDEC_MSG_RESP_INPUT_BUFFER_DONE (VDEC_MSG_BASE + 1)
#define VDEC_MSG_RESP_OUTPUT_BUFFER_DONE (VDEC_MSG_BASE + 2)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_MSG_RESP_INPUT_FLUSHED (VDEC_MSG_BASE + 3)
#define VDEC_MSG_RESP_OUTPUT_FLUSHED (VDEC_MSG_BASE + 4)
#define VDEC_MSG_RESP_FLUSH_INPUT_DONE (VDEC_MSG_BASE + 5)
#define VDEC_MSG_RESP_FLUSH_OUTPUT_DONE (VDEC_MSG_BASE + 6)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_MSG_RESP_START_DONE (VDEC_MSG_BASE + 7)
#define VDEC_MSG_RESP_STOP_DONE (VDEC_MSG_BASE + 8)
#define VDEC_MSG_RESP_PAUSE_DONE (VDEC_MSG_BASE + 9)
#define VDEC_MSG_RESP_RESUME_DONE (VDEC_MSG_BASE + 10)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_MSG_RESP_RESOURCE_LOADED (VDEC_MSG_BASE + 11)
#define VDEC_EVT_RESOURCES_LOST (VDEC_MSG_BASE + 12)
#define VDEC_MSG_EVT_CONFIG_CHANGED (VDEC_MSG_BASE + 13)
#define VDEC_MSG_EVT_HW_ERROR (VDEC_MSG_BASE + 14)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_BUFFERFLAG_EOS 0x00000001
#define VDEC_BUFFERFLAG_DECODEONLY 0x00000004
#define VDEC_BUFFERFLAG_DATACORRUPT 0x00000008
#define VDEC_BUFFERFLAG_ENDOFFRAME 0x00000010
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_BUFFERFLAG_SYNCFRAME 0x00000020
#define VDEC_BUFFERFLAG_EXTRADATA 0x00000040
#define VDEC_BUFFERFLAG_CODECCONFIG 0x00000080
#define VDEC_EXTRADATA_QP 0x00000001
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_EXTRADATA_SEI 0x00000002
#define VDEC_EXTRADATA_VUI 0x00000004
#define VDEC_EXTRADATA_MB_ERROR_MAP 0x00000008
#define VDEC_CMDBASE 0x800
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_CMD_SET_INTF_VERSION (VDEC_CMDBASE)
#define VDEC_IOCTL_MAGIC 'v'
struct vdec_ioctl_msg {
 void *inputparam;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 void *outputparam;
};
#define VDEC_IOCTL_GET_PROFILE_LEVEL_SUPPORTED   _IOWR(VDEC_IOCTL_MAGIC, 0, struct vdec_ioctl_msg)
#define VDEC_IOCTL_GET_INTERLACE_FORMAT   _IOR(VDEC_IOCTL_MAGIC, 1, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_GET_CURRENT_PROFILE_LEVEL   _IOWR(VDEC_IOCTL_MAGIC, 2, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_OUTPUT_FORMAT   _IOWR(VDEC_IOCTL_MAGIC, 3, struct vdec_ioctl_msg)
#define VDEC_IOCTL_GET_OUTPUT_FORMAT   _IOWR(VDEC_IOCTL_MAGIC, 4, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_CODEC   _IOW(VDEC_IOCTL_MAGIC, 5, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_GET_CODEC   _IOR(VDEC_IOCTL_MAGIC, 6, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_PICRES   _IOW(VDEC_IOCTL_MAGIC, 7, struct vdec_ioctl_msg)
#define VDEC_IOCTL_GET_PICRES   _IOR(VDEC_IOCTL_MAGIC, 8, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_EXTRADATA   _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_GET_EXTRADATA   _IOR(VDEC_IOCTL_MAGIC, 10, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_SEQUENCE_HEADER   _IOW(VDEC_IOCTL_MAGIC, 11, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_BUFFER_REQ   _IOW(VDEC_IOCTL_MAGIC, 12, struct vdec_ioctl_msg)
#define VDEC_IOCTL_GET_BUFFER_REQ   _IOR(VDEC_IOCTL_MAGIC, 13, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_ALLOCATE_BUFFER   _IOWR(VDEC_IOCTL_MAGIC, 14, struct vdec_ioctl_msg)
#define VDEC_IOCTL_FREE_BUFFER   _IOW(VDEC_IOCTL_MAGIC, 15, struct vdec_ioctl_msg)
#define VDEC_IOCTL_SET_BUFFER   _IOW(VDEC_IOCTL_MAGIC, 16, struct vdec_ioctl_msg)
#define VDEC_IOCTL_FILL_OUTPUT_BUFFER   _IOW(VDEC_IOCTL_MAGIC, 17, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_DECODE_FRAME   _IOW(VDEC_IOCTL_MAGIC, 18, struct vdec_ioctl_msg)
#define VDEC_IOCTL_LOAD_RESOURCES _IO(VDEC_IOCTL_MAGIC, 19)
#define VDEC_IOCTL_CMD_START _IO(VDEC_IOCTL_MAGIC, 20)
#define VDEC_IOCTL_CMD_STOP _IO(VDEC_IOCTL_MAGIC, 21)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_CMD_PAUSE _IO(VDEC_IOCTL_MAGIC, 22)
#define VDEC_IOCTL_CMD_RESUME _IO(VDEC_IOCTL_MAGIC, 23)
#define VDEC_IOCTL_CMD_FLUSH _IOW(VDEC_IOCTL_MAGIC, 24, struct vdec_ioctl_msg)
#define VDEC_IOCTL_GET_NEXT_MSG   _IOR(VDEC_IOCTL_MAGIC, 25, struct vdec_ioctl_msg)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define VDEC_IOCTL_STOP_NEXT_MSG _IO(VDEC_IOCTL_MAGIC, 26)
#define VDEC_IOCTL_GET_NUMBER_INSTANCES   _IOR(VDEC_IOCTL_MAGIC, 27, struct vdec_ioctl_msg)
enum vdec_picture {
 PICTURE_TYPE_I,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 PICTURE_TYPE_P,
 PICTURE_TYPE_B,
 PICTURE_TYPE_BI,
 PICTURE_TYPE_SKIP,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 PICTURE_TYPE_UNKNOWN
};
enum vdec_buffer {
 VDEC_BUFFER_TYPE_INPUT,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_BUFFER_TYPE_OUTPUT
};
struct vdec_allocatorproperty {
 enum vdec_buffer buffer_type;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t mincount;
 uint32_t maxcount;
 uint32_t actualcount;
 uint32_t buffer_size;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t alignment;
 uint32_t buf_poolid;
};
struct vdec_bufferpayload {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint8_t *bufferaddr;
 uint32_t buffer_len;
 int pmem_fd;
 uint32_t offset;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t mmaped_size;
};
struct vdec_setbuffer_cmd {
 enum vdec_buffer buffer_type;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct vdec_bufferpayload buffer;
};
struct vdec_fillbuffer_cmd {
 struct vdec_bufferpayload buffer;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 void *client_data;
};
enum vdec_bufferflush {
 VDEC_FLUSH_TYPE_INPUT,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_FLUSH_TYPE_OUTPUT,
 VDEC_FLUSH_TYPE_ALL
};
enum vdec_codec {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_CODECTYPE_H264 = 0x1,
 VDEC_CODECTYPE_H263 = 0x2,
 VDEC_CODECTYPE_MPEG4 = 0x3,
 VDEC_CODECTYPE_DIVX_3 = 0x4,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_CODECTYPE_DIVX_4 = 0x5,
 VDEC_CODECTYPE_DIVX_5 = 0x6,
 VDEC_CODECTYPE_DIVX_6 = 0x7,
 VDEC_CODECTYPE_XVID = 0x8,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_CODECTYPE_MPEG1 = 0x9,
 VDEC_CODECTYPE_MPEG2 = 0xa,
 VDEC_CODECTYPE_VC1 = 0xb,
 VDEC_CODECTYPE_VC1_RCV = 0xc
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum vdec_mpeg2_profile {
 VDEC_MPEG2ProfileSimple = 0x1,
 VDEC_MPEG2ProfileMain = 0x2,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG2Profile422 = 0x4,
 VDEC_MPEG2ProfileSNR = 0x8,
 VDEC_MPEG2ProfileSpatial = 0x10,
 VDEC_MPEG2ProfileHigh = 0x20,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG2ProfileKhronosExtensions = 0x6F000000,
 VDEC_MPEG2ProfileVendorStartUnused = 0x7F000000,
 VDEC_MPEG2ProfileMax = 0x7FFFFFFF
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum vdec_mpeg2_level {
 VDEC_MPEG2LevelLL = 0x1,
 VDEC_MPEG2LevelML = 0x2,
 VDEC_MPEG2LevelH14 = 0x4,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG2LevelHL = 0x8,
 VDEC_MPEG2LevelKhronosExtensions = 0x6F000000,
 VDEC_MPEG2LevelVendorStartUnused = 0x7F000000,
 VDEC_MPEG2LevelMax = 0x7FFFFFFF
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum vdec_mpeg4_profile {
 VDEC_MPEG4ProfileSimple = 0x01,
 VDEC_MPEG4ProfileSimpleScalable = 0x02,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4ProfileCore = 0x04,
 VDEC_MPEG4ProfileMain = 0x08,
 VDEC_MPEG4ProfileNbit = 0x10,
 VDEC_MPEG4ProfileScalableTexture = 0x20,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4ProfileSimpleFace = 0x40,
 VDEC_MPEG4ProfileSimpleFBA = 0x80,
 VDEC_MPEG4ProfileBasicAnimated = 0x100,
 VDEC_MPEG4ProfileHybrid = 0x200,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4ProfileAdvancedRealTime = 0x400,
 VDEC_MPEG4ProfileCoreScalable = 0x800,
 VDEC_MPEG4ProfileAdvancedCoding = 0x1000,
 VDEC_MPEG4ProfileAdvancedCore = 0x2000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4ProfileAdvancedScalable = 0x4000,
 VDEC_MPEG4ProfileAdvancedSimple = 0x8000,
 VDEC_MPEG4ProfileKhronosExtensions = 0x6F000000,
 VDEC_MPEG4ProfileVendorStartUnused = 0x7F000000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4ProfileMax = 0x7FFFFFFF
};
enum vdec_mpeg4_level {
 VDEC_MPEG4Level0 = 0x01,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4Level0b = 0x02,
 VDEC_MPEG4Level1 = 0x04,
 VDEC_MPEG4Level2 = 0x08,
 VDEC_MPEG4Level3 = 0x10,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4Level4 = 0x20,
 VDEC_MPEG4Level4a = 0x40,
 VDEC_MPEG4Level5 = 0x80,
 VDEC_MPEG4LevelKhronosExtensions = 0x6F000000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_MPEG4LevelVendorStartUnused = 0x7F000000,
 VDEC_MPEG4LevelMax = 0x7FFFFFFF
};
enum vdec_avc_profile {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCProfileBaseline = 0x01,
 VDEC_AVCProfileMain = 0x02,
 VDEC_AVCProfileExtended = 0x04,
 VDEC_AVCProfileHigh = 0x08,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCProfileHigh10 = 0x10,
 VDEC_AVCProfileHigh422 = 0x20,
 VDEC_AVCProfileHigh444 = 0x40,
 VDEC_AVCProfileKhronosExtensions = 0x6F000000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCProfileVendorStartUnused = 0x7F000000,
 VDEC_AVCProfileMax = 0x7FFFFFFF
};
enum vdec_avc_level {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCLevel1 = 0x01,
 VDEC_AVCLevel1b = 0x02,
 VDEC_AVCLevel11 = 0x04,
 VDEC_AVCLevel12 = 0x08,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCLevel13 = 0x10,
 VDEC_AVCLevel2 = 0x20,
 VDEC_AVCLevel21 = 0x40,
 VDEC_AVCLevel22 = 0x80,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCLevel3 = 0x100,
 VDEC_AVCLevel31 = 0x200,
 VDEC_AVCLevel32 = 0x400,
 VDEC_AVCLevel4 = 0x800,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCLevel41 = 0x1000,
 VDEC_AVCLevel42 = 0x2000,
 VDEC_AVCLevel5 = 0x4000,
 VDEC_AVCLevel51 = 0x8000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_AVCLevelKhronosExtensions = 0x6F000000,
 VDEC_AVCLevelVendorStartUnused = 0x7F000000,
 VDEC_AVCLevelMax = 0x7FFFFFFF
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum vdec_divx_profile {
 VDEC_DIVXProfile_qMobile = 0x01,
 VDEC_DIVXProfile_Mobile = 0x02,
 VDEC_DIVXProfile_HD = 0x04,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_DIVXProfile_Handheld = 0x08,
 VDEC_DIVXProfile_Portable = 0x10,
 VDEC_DIVXProfile_HomeTheater = 0x20
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum vdec_xvid_profile {
 VDEC_XVIDProfile_Simple = 0x1,
 VDEC_XVIDProfile_Advanced_Realtime_Simple = 0x2,
 VDEC_XVIDProfile_Advanced_Simple = 0x4
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum vdec_xvid_level {
 VDEC_XVID_LEVEL_S_L0 = 0x1,
 VDEC_XVID_LEVEL_S_L1 = 0x2,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_XVID_LEVEL_S_L2 = 0x4,
 VDEC_XVID_LEVEL_S_L3 = 0x8,
 VDEC_XVID_LEVEL_ARTS_L1 = 0x10,
 VDEC_XVID_LEVEL_ARTS_L2 = 0x20,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_XVID_LEVEL_ARTS_L3 = 0x40,
 VDEC_XVID_LEVEL_ARTS_L4 = 0x80,
 VDEC_XVID_LEVEL_AS_L0 = 0x100,
 VDEC_XVID_LEVEL_AS_L1 = 0x200,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_XVID_LEVEL_AS_L2 = 0x400,
 VDEC_XVID_LEVEL_AS_L3 = 0x800,
 VDEC_XVID_LEVEL_AS_L4 = 0x1000
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum vdec_h263profile {
 VDEC_H263ProfileBaseline = 0x01,
 VDEC_H263ProfileH320Coding = 0x02,
 VDEC_H263ProfileBackwardCompatible = 0x04,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263ProfileISWV2 = 0x08,
 VDEC_H263ProfileISWV3 = 0x10,
 VDEC_H263ProfileHighCompression = 0x20,
 VDEC_H263ProfileInternet = 0x40,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263ProfileInterlace = 0x80,
 VDEC_H263ProfileHighLatency = 0x100,
 VDEC_H263ProfileKhronosExtensions = 0x6F000000,
 VDEC_H263ProfileVendorStartUnused = 0x7F000000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263ProfileMax = 0x7FFFFFFF
};
enum vdec_h263level {
 VDEC_H263Level10 = 0x01,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263Level20 = 0x02,
 VDEC_H263Level30 = 0x04,
 VDEC_H263Level40 = 0x08,
 VDEC_H263Level45 = 0x10,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263Level50 = 0x20,
 VDEC_H263Level60 = 0x40,
 VDEC_H263Level70 = 0x80,
 VDEC_H263LevelKhronosExtensions = 0x6F000000,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_H263LevelVendorStartUnused = 0x7F000000,
 VDEC_H263LevelMax = 0x7FFFFFFF
};
enum vdec_wmv_format {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_WMVFormatUnused = 0x01,
 VDEC_WMVFormat7 = 0x02,
 VDEC_WMVFormat8 = 0x04,
 VDEC_WMVFormat9 = 0x08,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_WMFFormatKhronosExtensions = 0x6F000000,
 VDEC_WMFFormatVendorStartUnused = 0x7F000000,
 VDEC_WMVFormatMax = 0x7FFFFFFF
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
enum vdec_vc1_profile {
 VDEC_VC1ProfileSimple = 0x1,
 VDEC_VC1ProfileMain = 0x2,
 VDEC_VC1ProfileAdvanced = 0x4
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum vdec_vc1_level {
 VDEC_VC1_LEVEL_S_Low = 0x1,
 VDEC_VC1_LEVEL_S_Medium = 0x2,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_VC1_LEVEL_M_Low = 0x4,
 VDEC_VC1_LEVEL_M_Medium = 0x8,
 VDEC_VC1_LEVEL_M_High = 0x10,
 VDEC_VC1_LEVEL_A_L0 = 0x20,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_VC1_LEVEL_A_L1 = 0x40,
 VDEC_VC1_LEVEL_A_L2 = 0x80,
 VDEC_VC1_LEVEL_A_L3 = 0x100,
 VDEC_VC1_LEVEL_A_L4 = 0x200
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct vdec_profile_level {
 uint32_t profiles;
 uint32_t levels;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
enum vdec_interlaced_format {
 VDEC_InterlaceFrameProgressive = 0x1,
 VDEC_InterlaceInterleaveFrameTopFieldFirst = 0x2,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_InterlaceInterleaveFrameBottomFieldFirst = 0x4
};
enum vdec_output_fromat {
 VDEC_YUV_FORMAT_NV12 = 0x1,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 VDEC_YUV_FORMAT_TILE_4x2 = 0x2
};
struct vdec_picsize {
 uint32_t frame_width;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t frame_height;
 uint32_t stride;
 uint32_t scan_lines;
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct vdec_seqheader {
 uint8_t *ptr_seqheader;
 uint32_t seq_header_len;
 int pmem_fd;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t pmem_offset;
};
struct vdec_mberror {
 uint8_t *ptr_errormap;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t err_mapsize;
};
struct vdec_input_frameinfo {
 uint8_t *bufferaddr;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t offset;
 uint32_t datalen;
 uint32_t flags;
 int64_t timestamp;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 void *client_data;
 int pmem_fd;
 uint32_t pmem_offset;
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct vdec_framesize {
 uint32_t n_left;
 uint32_t n_top;
 uint32_t n_right;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint32_t n_bottom;
};
struct vdec_output_frameinfo {
 uint8_t *phy_addr;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 uint8_t *bufferaddr;
 uint32_t offset;
 uint32_t len;
 uint32_t flags;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 int64_t time_stamp;
 void *client_data;
 void *input_frame_clientdata;
 struct vdec_framesize framesize;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
union vdec_msgdata {
 struct vdec_output_frameinfo output_frame;
 void *input_frame_clientdata;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct vdec_msginfo {
 uint32_t status_code;
 uint32_t msgcode;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 union vdec_msgdata msgdata;
 uint32_t msgdatasize;
};
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
