/*------------------------------------------------------------------------------ -- -- -- This software is confidential and proprietary and may be used -- -- only as expressly authorized by a licensing agreement from -- -- -- -- Hantro Products Oy. -- -- -- -- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY -- -- ALL RIGHTS RESERVED -- -- -- -- The entire notice above must be reproduced -- -- on all copies and should not be removed. -- -- -- -------------------------------------------------------------------------------- -- -- Abstract : Definition of decContainer_t data structure -- -------------------------------------------------------------------------------- -- -- Version control information, please leave untouched. -- -- $RCSfile: h264hwd_container.h,v $ -- $Date: 2009/04/27 08:56:17 $ -- $Revision: 1.10 $ -- ------------------------------------------------------------------------------*/ #ifndef H264HWD_CONTAINER_H #define H264HWD_CONTAINER_H /*------------------------------------------------------------------------------ 1. Include headers ------------------------------------------------------------------------------*/ #include "basetype.h" #include "h264hwd_storage.h" #include "h264hwd_util.h" #include "refbuffer.h" #include "deccfg.h" #include "decppif.h" /*------------------------------------------------------------------------------ 2. Module defines ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ 3. Data types ------------------------------------------------------------------------------*/ #define H264DEC_UNINITIALIZED 0U #define H264DEC_INITIALIZED 1U #define H264DEC_BUFFER_EMPTY 2U #define H264DEC_NEW_HEADERS 3U /* asic interface */ typedef struct DecAsicBuffers { u32 buff_status; DWLLinearMem_t mbCtrl; DWLLinearMem_t mv; DWLLinearMem_t intraPred; DWLLinearMem_t residual; DWLLinearMem_t *outBuffer; DWLLinearMem_t cabacInit; u32 refPicList[16]; u32 maxRefFrm; u32 filterDisable; i32 chromaQpIndexOffset; i32 chromaQpIndexOffset2; u32 currentMB; u32 notCodedMask; u32 rlcWords; u32 picSizeInMbs; u32 wholePicConcealed; u32 disableOutWriting; u32 enableDmvAndPoc; } DecAsicBuffers_t; typedef struct decContainer { const void *checksum; u32 decStat; u32 picNumber; u32 asicRunning; u32 rlcMode; u32 tryVlc; u32 reallocate; const u8 *pHwStreamStart; u32 hwStreamStartBus; u32 hwBitPos; u32 hwLength; u32 streamPosUpdated; u32 nalStartCode; u32 modeChange; u32 gapsCheckedForThis; u32 packetDecoded; u32 forceRlcMode; /* by default stays 0, testing can set it to 1 for RLC mode */ u32 h264Regs[DEC_X170_REGISTERS]; storage_t storage; /* h264bsd storage */ DecAsicBuffers_t asicBuff[1]; const void *dwl; /* DWL instance */ u32 refBufSupport; u32 h264ProfileSupport; u32 is8190; u32 maxDecPicWidth; refBuffer_t refBufferCtrl; u32 keepHwReserved; struct pp_ { const void *ppInstance; void (*PPDecStart) (const void *, const DecPpInterface *); void (*PPDecWaitEnd) (const void *); void (*PPConfigQuery) (const void *, DecPpQuery *); void (*PPNextDisplayId)(const void *, u32); /* set the next PP outpic ID (multibuffer) */ DecPpInterface decPpIf; DecPpQuery ppInfo; const DWLLinearMem_t * sentPicToPp[17]; /* list of pictures sent to pp */ const DWLLinearMem_t * queuedPicToPp; /* queued picture that should be processed next */ u32 multiMaxId; /* maximum position used in sentPicToPp[] */ } pp; } decContainer_t; /*------------------------------------------------------------------------------ 4. Function prototypes ------------------------------------------------------------------------------*/ #endif /* #ifdef H264HWD_CONTAINER_H */