/*------------------------------------------------------------------------------ -- -- -- 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 : Top level control of the decoder -- -------------------------------------------------------------------------------- -- -- Version control information, please leave untouched. -- -- $RCSfile: h264hwd_decoder.h,v $ -- $Date: 2009/11/26 13:32:15 $ -- $Revision: 1.4 $ -- ------------------------------------------------------------------------------*/ #ifndef H264HWD_DECODER_H #define H264HWD_DECODER_H /*------------------------------------------------------------------------------ 1. Include headers ------------------------------------------------------------------------------*/ #include "basetype.h" #include "h264hwd_storage.h" #include "h264hwd_container.h" #include "h264hwd_dpb.h" /*------------------------------------------------------------------------------ 2. Module defines ------------------------------------------------------------------------------*/ /* enumerated return values of the functions */ enum { H264BSD_RDY, H264BSD_PIC_RDY, H264BSD_HDRS_RDY, H264BSD_ERROR, H264BSD_PARAM_SET_ERROR, H264BSD_NEW_ACCESS_UNIT, H264BSD_FMO, H264BSD_UNPAIRED_FIELD }; /*------------------------------------------------------------------------------ 3. Data types ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ 4. Function prototypes ------------------------------------------------------------------------------*/ void h264bsdInit(storage_t * pStorage, u32 noOutputReordering, u32 useSmoothingBuffer); u32 h264bsdDecode(decContainer_t * pDecCont, const u8 * byteStrm, u32 len, u32 picId, u32 * readBytes); void h264bsdShutdown(storage_t * pStorage); const dpbOutPicture_t *h264bsdNextOutputPicture(storage_t * pStorage); u32 h264bsdPicWidth(storage_t * pStorage); u32 h264bsdPicHeight(storage_t * pStorage); u32 h264bsdVideoRange(storage_t * pStorage); u32 h264bsdMatrixCoefficients(storage_t * pStorage); u32 h264bsdIsMonoChrome(storage_t * pStorage); void h264bsdCroppingParams(storage_t * pStorage, u32 * croppingFlag, u32 * left, u32 * width, u32 * top, u32 * height); u32 h264bsdCheckValidParamSets(storage_t * pStorage); void h264bsdFlushBuffer(storage_t * pStorage); u32 h264bsdAspectRatioIdc(const storage_t * pStorage); void h264bsdSarSize(const storage_t * pStorage, u32 * sar_width, u32 * sar_height); #endif /* #ifdef H264HWD_DECODER_H */