// //****************************************************************************** // MStar Software // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. // All software, firmware and related documentation herein ("MStar Software") are // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by // law, including, but not limited to, copyright law and international treaties. // Any use, modification, reproduction, retransmission, or republication of all // or part of MStar Software is expressly prohibited, unless prior written // permission has been granted by MStar. // // By accessing, browsing and/or using MStar Software, you acknowledge that you // have read, understood, and agree, to be bound by below terms ("Terms") and to // comply with all applicable laws and regulations: // // 1. MStar shall retain any and all right, ownership and interest to MStar // Software and any modification/derivatives thereof. // No right, ownership, or interest to MStar Software and any // modification/derivatives thereof is transferred to you under Terms. // // 2. You understand that MStar Software might include, incorporate or be // supplied together with third party`s software and the use of MStar // Software may require additional licenses from third parties. // Therefore, you hereby agree it is your sole responsibility to separately // obtain any and all third party right and license necessary for your use of // such third party`s software. // // 3. MStar Software and any modification/derivatives thereof shall be deemed as // MStar`s confidential information and you agree to keep MStar`s // confidential information in strictest confidence and not disclose to any // third party. // // 4. MStar Software is provided on an "AS IS" basis without warranties of any // kind. Any warranties are hereby expressly disclaimed by MStar, including // without limitation, any warranties of merchantability, non-infringement of // intellectual property rights, fitness for a particular purpose, error free // and in conformity with any international standard. You agree to waive any // claim against MStar for any loss, damage, cost or expense that you may // incur related to your use of MStar Software. // In no event shall MStar be liable for any direct, indirect, incidental or // consequential damages, including without limitation, lost of profit or // revenues, lost or damage of data, and unauthorized system use. // You agree that this Section 4 shall still apply without being affected // even if MStar Software has been modified by MStar in accordance with your // request or instruction for your use, except otherwise agreed by both // parties in writing. // // 5. If requested, MStar may from time to time provide technical supports or // services in relation with MStar Software to you for your use of // MStar Software in conjunction with your or your customer`s product // ("Services"). // You understand and agree that, except otherwise agreed by both parties in // writing, Services are provided on an "AS IS" basis and the warranty // disclaimer set forth in Section 4 above shall apply. // // 6. Nothing contained herein shall be construed as by implication, estoppels // or otherwise: // (a) conferring any license or right to use MStar name, trademark, service // mark, symbol or any other identification; // (b) obligating MStar or any of its affiliates to furnish any person, // including without limitation, you and your customers, any assistance // of any kind whatsoever, or any information; or // (c) conferring any license or right under any intellectual property right. // // 7. These terms shall be governed by and construed in accordance with the laws // of Taiwan, R.O.C., excluding its conflict of law rules. // Any and all dispute arising out hereof or related hereto shall be finally // settled by arbitration referred to the Chinese Arbitration Association, // Taipei in accordance with the ROC Arbitration Law and the Arbitration // Rules of the Association by three (3) arbitrators appointed in accordance // with the said Rules. // The place of arbitration shall be in Taipei, Taiwan and the language shall // be English. // The arbitration award shall be final and binding to both parties. // //****************************************************************************** // //////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2008-2009 MStar Semiconductor, Inc. // All rights reserved. // // Unless otherwise stipulated in writing, any and all information contained // herein regardless in any format shall remain the sole proprietary of // MStar Semiconductor Inc. and be kept in strict confidence // ("MStar Confidential Information") by the recipient. // Any unauthorized act including without limitation unauthorized disclosure, // copying, use, reproduction, sale, distribution, modification, disassembling, // reverse engineering and compiling of the contents of MStar Confidential // Information is unlawful and strictly prohibited. MStar hereby reserves the // rights to any and all damages, losses, costs and expenses resulting therefrom. // //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// /// /// @file drvRVD.h /// @brief RVD Driver Interface /// @author MStar Semiconductor Inc. /////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef _DRV_RVD_H_ #define _DRV_RVD_H_ #ifdef __cplusplus extern "C" { #endif //------------------------------------------------------------------------------------------------- // Driver Capability //------------------------------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// // Constant & Macro Definition //////////////////////////////////////////////////////////////////////////////// //------------------------------------------------------------------------------------------------- // Macro and Define //------------------------------------------------------------------------------------------------- #define MSIF_RVD_LIB_CODE {'R','V','D','_'} //Lib code #define MSIF_RVD_LIBVER {'0','1'} //LIB version #define MSIF_RVD_BUILDNUM {'0','1'} //Build Number #define MSIF_RVD_CHANGELIST {'0','0','1','3','2','9','3','7'} //P4 ChangeList Number //------------------------------------------------------------------------------ /// @brief \b RVD_DRV_VERSION : RVD Version //------------------------------------------------------------------------------ #define RVD_DRV_VERSION /* Character String for DRV/API version */ \ MSIF_TAG, /* 'MSIF' */ \ MSIF_CLASS, /* '00' */ \ MSIF_CUS, /* 0x0000 */ \ MSIF_MOD, /* 0x0000 */ \ MSIF_CHIP, \ MSIF_CPU, \ MSIF_RVD_LIB_CODE, /* IP__ */ \ MSIF_RVD_LIBVER, /* 0.0 ~ Z.Z */ \ MSIF_RVD_BUILDNUM, /* 00 ~ 99 */ \ MSIF_RVD_CHANGELIST, /* CL# */ \ MSIF_OS //------------------------------------------------------------------------------------------------- // Type and Structure //------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------- /// @brief \b Name: RVD_InterruptCb /// @brief \b Description: RVD Interrupt callback pointer //----------------------------------------------------------------------------- typedef void (*RVD_InterruptCb)(void); //----------------------------------------------------------------------------- /// @brief \b Enum \b Name: E_RVD_DEBUG_LEVEL /// @brief \b Enum \b Description: SHOW MGS DEBUG LEVEL of RVD //----------------------------------------------------------------------------- typedef enum { E_RVD_DEBUG_NONE = 0x0, ///< Disable all uart message E_RVD_DEBUG_INF = 0x01, ///< output general message E_RVD_DEBUG_DRV = 0x02, ///< output drv layer message E_RVD_DEBUG_HAL = 0x04, ///< output hal layer message E_RVD_DEBUG_ERR = 0x08 ///< Only output error message } RVD_DebugLevel; //----------------------------------------------------------------------------- /// @brief \b Enum \b Name: RVD_DisplayMode /// @brief \b Enum \b Description: RVD Trick(Play)Mode (F/W used) //----------------------------------------------------------------------------- typedef enum { E_RVD_DISPLAYMODE_NULL = 0x7000, ///0): show N times, slow motion Nx(2,4...) ; N(<0): FF speed Nx(-2,-4,...) AVCH264_CMD_2X_SPEED E_RVD_CMD_DISP_ERR_FRM, // True: display and error frame; FALSE: not show error frame ; AVCH264_CMD_ERR_TH E_RVD_CMD_ERR_CONCEAL, // 1: on ; 0: off ; AVCH264_CMD_PASTE E_RVD_CMD_DROP_DISP_AUTO, // ??? can we input no arg, 1:on AVCH264_CMD_DISP_DROP, 0:off AVCH264_CMD_DIS_DISP_DROP E_RVD_CMD_DROP_DISP_ONCE, // AVCH264_CMD_DROP_CNT E_RVD_CMD_DISP_REPEAT_MAX, // Display repeat times //********************************* // test cmd //********************************* E_RVD_CMD_TEST_MASK = (0x0400|E_RVD_CMD_NEW_BASE), E_RVD_CMD_ENABLE_LAST_FRAME_SHOW, E_RVD_CMD_ISR_TYPE } RVD_User_Cmd; //----------------------------------------------------------------------------- /// @brief \b Struct \b Name: RVD_FileInfo /// @brief \b Struct \b Description: RVD file information //----------------------------------------------------------------------------- typedef struct { MS_U16 RV_Version; ///< Real Video Bitstream version MS_U16 ulNumSizes; ///< Real Video Number sizes MS_U16 ulPicSizes_w[8]; ///< Real Video file width MS_U16 ulPicSizes_h[8]; ///< Real Video file height MS_U16 ulBufMode; ///< Info F/W support HD/SD MS_U32 ulFBAddr; ///< Frame buffer start addr MS_U32 ulFBSize; ///< Frame Buffer total size + IAP size (need to be protected) MS_U32 ulVLCAddr; ///< VLC Table address size :0x20000 } RVD_FileInfo; //----------------------------------------------------------------------------- /// @brief \b Struct \b Name: RVD_MiuInfo /// @brief \b Struct \b Description: Store the RVD driver info //----------------------------------------------------------------------------- typedef struct { MS_BOOL bRVD_MiuSel; /// MS_U32 u32BDMAFlag; /// T_RVPicCodType (temp) MS_U16 u16Pitch; ///