1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 79*53ee8cc1Swenshuai.xi // 80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc. 81*53ee8cc1Swenshuai.xi // All rights reserved. 82*53ee8cc1Swenshuai.xi // 83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient. 87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 92*53ee8cc1Swenshuai.xi // 93*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 96*53ee8cc1Swenshuai.xi /// 97*53ee8cc1Swenshuai.xi /// @file apiDMX.h 98*53ee8cc1Swenshuai.xi /// @brief Demux API 99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor,Inc. 100*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi //------------------------------------------------- 103*53ee8cc1Swenshuai.xi /*! \defgroup DMX DMX interface 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi TSP (Transport Stream Processor) receives transport stream through serial or parallel interface. 106*53ee8cc1Swenshuai.xi The input stream can be filtered by PID and masked pattern to get individual section data streams that are qualified with CRC and stored into the ring buffers located in external memory. 107*53ee8cc1Swenshuai.xi Besides section filter, audio PES FIFO and video PES FIFO are used to pass the selected Audio/Video PES packet to audio/video decoder. 108*53ee8cc1Swenshuai.xi PVR function is also supported. 109*53ee8cc1Swenshuai.xi 110*53ee8cc1Swenshuai.xi In order to parse section data in TS stream, TSP equipment a 32-bit RISC processor, besides, The PID filter, header compare, CRC, DMA and PVR are implemented with dedicated hardware. 111*53ee8cc1Swenshuai.xi 112*53ee8cc1Swenshuai.xi <b> Ownership of Filters </b> \n 113*53ee8cc1Swenshuai.xi Not only one processor will use Demux driver at the same time, all the filters can be grouped into different processor by API MApi_DMX_SetOwner. 114*53ee8cc1Swenshuai.xi \image html apiDMX_pic1.png 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi <b> Filter Life Cycle </b> \n 117*53ee8cc1Swenshuai.xi \image html apiDMX_pic2.png 118*53ee8cc1Swenshuai.xi 119*53ee8cc1Swenshuai.xi <b> API call flow for initiation: </b> \n 120*53ee8cc1Swenshuai.xi \image html apiDMX_pic3.png 121*53ee8cc1Swenshuai.xi 122*53ee8cc1Swenshuai.xi <b> API call flow for exit: </b> \n 123*53ee8cc1Swenshuai.xi \image html apiDMX_pic4.png 124*53ee8cc1Swenshuai.xi 125*53ee8cc1Swenshuai.xi <b> API call flow for general usage - Live in playback: </b> \n 126*53ee8cc1Swenshuai.xi \image html apiDMX_pic5.png 127*53ee8cc1Swenshuai.xi 128*53ee8cc1Swenshuai.xi <b> API call flow for general usage - File in playback: </b> \n 129*53ee8cc1Swenshuai.xi \image html apiDMX_pic6.png 130*53ee8cc1Swenshuai.xi 131*53ee8cc1Swenshuai.xi <b> API call flow for general usage - PVR/PVRCA: </b> \n 132*53ee8cc1Swenshuai.xi \image html apiDMX_pic7.png 133*53ee8cc1Swenshuai.xi 134*53ee8cc1Swenshuai.xi <b> API call flow for general usage - MMFI Audio/MMFI Video3D: </b> \n 135*53ee8cc1Swenshuai.xi \image html apiDMX_pic8.png 136*53ee8cc1Swenshuai.xi 137*53ee8cc1Swenshuai.xi *! \defgroup TSP TSP related functions 138*53ee8cc1Swenshuai.xi * \ingroup DMX 139*53ee8cc1Swenshuai.xi 140*53ee8cc1Swenshuai.xi *! \defgroup TSP_General TSP General functions 141*53ee8cc1Swenshuai.xi * \ingroup TSP 142*53ee8cc1Swenshuai.xi 143*53ee8cc1Swenshuai.xi *! \defgroup TSP_Flow TSP Flow control functions 144*53ee8cc1Swenshuai.xi * \ingroup TSP 145*53ee8cc1Swenshuai.xi 146*53ee8cc1Swenshuai.xi *! \defgroup TSP_STC TSP STC/PCR functions 147*53ee8cc1Swenshuai.xi * \ingroup TSP 148*53ee8cc1Swenshuai.xi 149*53ee8cc1Swenshuai.xi *! \defgroup TSP_Filter TSP Basic filter control functions 150*53ee8cc1Swenshuai.xi * \ingroup TSP 151*53ee8cc1Swenshuai.xi 152*53ee8cc1Swenshuai.xi *! \defgroup TSP_SecFilter TSP Section filter control functions 153*53ee8cc1Swenshuai.xi * \ingroup TSP 154*53ee8cc1Swenshuai.xi 155*53ee8cc1Swenshuai.xi *! \defgroup TSP_TTX TSP Teltext related functions 156*53ee8cc1Swenshuai.xi * \ingroup TSP 157*53ee8cc1Swenshuai.xi 158*53ee8cc1Swenshuai.xi *! \defgroup TSP_FIFO TSP AVFIFO functions 159*53ee8cc1Swenshuai.xi * \ingroup TSP 160*53ee8cc1Swenshuai.xi 161*53ee8cc1Swenshuai.xi *! \defgroup TSP_PVR TSP PVR (record) related functions 162*53ee8cc1Swenshuai.xi * \ingroup TSP 163*53ee8cc1Swenshuai.xi 164*53ee8cc1Swenshuai.xi *! \defgroup TSP_PVR_General TSP PVR general functions 165*53ee8cc1Swenshuai.xi * \ingroup TSP_PVR 166*53ee8cc1Swenshuai.xi 167*53ee8cc1Swenshuai.xi *! \defgroup TSP_PVR_CA TSP PVR CA functions (need decrypt) 168*53ee8cc1Swenshuai.xi * \ingroup TSP_PVR 169*53ee8cc1Swenshuai.xi 170*53ee8cc1Swenshuai.xi *! \defgroup TSP_FILEIN_PVR TSP file-in record related functions 171*53ee8cc1Swenshuai.xi * \ingroup TSP_PVR 172*53ee8cc1Swenshuai.xi 173*53ee8cc1Swenshuai.xi *! \defgroup TSP_PVR_STB TSP PVR related functions for STB 174*53ee8cc1Swenshuai.xi * \ingroup TSP_PVR 175*53ee8cc1Swenshuai.xi 176*53ee8cc1Swenshuai.xi *! \defgroup TSP_Playback TSP playback (file-in) related functions 177*53ee8cc1Swenshuai.xi * \ingroup TSP 178*53ee8cc1Swenshuai.xi 179*53ee8cc1Swenshuai.xi *! \defgroup TSP_SCMB TSP Scramble status check functions 180*53ee8cc1Swenshuai.xi * \ingroup TSP 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi *! \defgroup TSP_STB TSP functions which only used on STB chip 183*53ee8cc1Swenshuai.xi * \ingroup TSP 184*53ee8cc1Swenshuai.xi 185*53ee8cc1Swenshuai.xi *! \defgroup TSP_Debug TSP Debug functions 186*53ee8cc1Swenshuai.xi * \ingroup TSP 187*53ee8cc1Swenshuai.xi 188*53ee8cc1Swenshuai.xi *! \defgroup TSP_FIQ TSP FIQ related functions 189*53ee8cc1Swenshuai.xi * \ingroup TSP 190*53ee8cc1Swenshuai.xi 191*53ee8cc1Swenshuai.xi *! \defgroup TSP_Merge TSP merge stream related functions for CI+ 1.4 used 192*53ee8cc1Swenshuai.xi * \ingroup TSP 193*53ee8cc1Swenshuai.xi 194*53ee8cc1Swenshuai.xi *! \defgroup TSP_MM TSP MM (Multi-Media) related functions 195*53ee8cc1Swenshuai.xi * \ingroup TSP 196*53ee8cc1Swenshuai.xi 197*53ee8cc1Swenshuai.xi *! \defgroup TSO TSO related functions 198*53ee8cc1Swenshuai.xi * \ingroup DMX 199*53ee8cc1Swenshuai.xi 200*53ee8cc1Swenshuai.xi *! \defgroup TSO_General TSO general functions 201*53ee8cc1Swenshuai.xi * \ingroup TSO 202*53ee8cc1Swenshuai.xi 203*53ee8cc1Swenshuai.xi *! \defgroup DMX_STR DMX STR functions 204*53ee8cc1Swenshuai.xi * \ingroup DMX 205*53ee8cc1Swenshuai.xi 206*53ee8cc1Swenshuai.xi *! \defgroup DMX_ToBeModified DMX api to be modified 207*53ee8cc1Swenshuai.xi * \ingroup DMX 208*53ee8cc1Swenshuai.xi 209*53ee8cc1Swenshuai.xi *! \defgroup DMX_ToBeModified_TSP TSP api to be modified 210*53ee8cc1Swenshuai.xi * \ingroup DMX_ToBeModified 211*53ee8cc1Swenshuai.xi 212*53ee8cc1Swenshuai.xi *! \defgroup DMX_ToBeModified_MM MM api to be modified 213*53ee8cc1Swenshuai.xi * \ingroup DMX_ToBeModified 214*53ee8cc1Swenshuai.xi 215*53ee8cc1Swenshuai.xi *! \defgroup DMX_ToBeModified_TSO TSO api to be modified 216*53ee8cc1Swenshuai.xi * \ingroup DMX_ToBeModified 217*53ee8cc1Swenshuai.xi 218*53ee8cc1Swenshuai.xi *! \defgroup DMX_ToBeRemove DMX api to be removed 219*53ee8cc1Swenshuai.xi * \ingroup DMX 220*53ee8cc1Swenshuai.xi 221*53ee8cc1Swenshuai.xi */ 222*53ee8cc1Swenshuai.xi //------------------------------------------------- 223*53ee8cc1Swenshuai.xi 224*53ee8cc1Swenshuai.xi #ifndef __API_DMX_H__ 225*53ee8cc1Swenshuai.xi #define __API_DMX_H__ 226*53ee8cc1Swenshuai.xi 227*53ee8cc1Swenshuai.xi #include "MsCommon.h" 228*53ee8cc1Swenshuai.xi 229*53ee8cc1Swenshuai.xi #include "ULog.h" 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xi #ifdef __cplusplus 232*53ee8cc1Swenshuai.xi extern "C" 233*53ee8cc1Swenshuai.xi { 234*53ee8cc1Swenshuai.xi #endif 235*53ee8cc1Swenshuai.xi 236*53ee8cc1Swenshuai.xi /// NULL PID definition 237*53ee8cc1Swenshuai.xi #define DMX_PID_NULL (0x1FFFUL) 238*53ee8cc1Swenshuai.xi 239*53ee8cc1Swenshuai.xi // Please don't change this value if you know exactly what you are doing 240*53ee8cc1Swenshuai.xi /// DMX Filter pattern depth 241*53ee8cc1Swenshuai.xi #define DMX_SECT_FLT_DEPTH (16UL) 242*53ee8cc1Swenshuai.xi 243*53ee8cc1Swenshuai.xi /// NULL DMX Id 244*53ee8cc1Swenshuai.xi #define DMX_DMXID_NULL ((MS_U8)0xFFUL) 245*53ee8cc1Swenshuai.xi #define MSIF_DMX_LIB_CODE {'D','M','X','_'} //Lib code 246*53ee8cc1Swenshuai.xi #define MSIF_DMX_LIBVER {'1','5'} //LIB version 247*53ee8cc1Swenshuai.xi #define MSIF_DMX_BUILDNUM {'0','3'} //Build Number 248*53ee8cc1Swenshuai.xi #define MSIF_DMX_CHANGELIST {'0','0','6','1','7','4','7','0'} //P4 ChangeList Number 249*53ee8cc1Swenshuai.xi 250*53ee8cc1Swenshuai.xi /// DMX Version 251*53ee8cc1Swenshuai.xi #define DMX_API_VERSION /* Character String for DRV/API version */ \ 252*53ee8cc1Swenshuai.xi MSIF_TAG, /* 'MSIF' */ \ 253*53ee8cc1Swenshuai.xi MSIF_CLASS, /* '00' */ \ 254*53ee8cc1Swenshuai.xi MSIF_CUS, /* 0x0000 */ \ 255*53ee8cc1Swenshuai.xi MSIF_MOD, /* 0x0000 */ \ 256*53ee8cc1Swenshuai.xi MSIF_CHIP, \ 257*53ee8cc1Swenshuai.xi MSIF_CPU, \ 258*53ee8cc1Swenshuai.xi MSIF_DMX_LIB_CODE, /* IP__ */ \ 259*53ee8cc1Swenshuai.xi MSIF_DMX_LIBVER, /* 0.0 ~ Z.Z */ \ 260*53ee8cc1Swenshuai.xi MSIF_DMX_BUILDNUM, /* 00 ~ 99 */ \ 261*53ee8cc1Swenshuai.xi MSIF_DMX_CHANGELIST, /* CL# */ \ 262*53ee8cc1Swenshuai.xi MSIF_OS 263*53ee8cc1Swenshuai.xi 264*53ee8cc1Swenshuai.xi /// DMX status indicator 265*53ee8cc1Swenshuai.xi typedef enum 266*53ee8cc1Swenshuai.xi { 267*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_OK, ///< DMX status OK 268*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_ERROR, ///< DMX status ERROR 269*53ee8cc1Swenshuai.xi } DMX_FILTER_STATUS; 270*53ee8cc1Swenshuai.xi 271*53ee8cc1Swenshuai.xi typedef enum 272*53ee8cc1Swenshuai.xi { 273*53ee8cc1Swenshuai.xi DMX_DBG_NONE, 274*53ee8cc1Swenshuai.xi DMX_DBG_ERR, 275*53ee8cc1Swenshuai.xi DMX_DBG_WARN, 276*53ee8cc1Swenshuai.xi DMX_DBG_INFO, 277*53ee8cc1Swenshuai.xi DMX_DBG_PVR, 278*53ee8cc1Swenshuai.xi DMX_DBG_FUNC, 279*53ee8cc1Swenshuai.xi } DMX_DBGMSG_LEVEL; 280*53ee8cc1Swenshuai.xi 281*53ee8cc1Swenshuai.xi /// DMX internal startup parameter 282*53ee8cc1Swenshuai.xi typedef struct _DMX_FW_Param 283*53ee8cc1Swenshuai.xi { 284*53ee8cc1Swenshuai.xi MS_PHY phyFWAddr; 285*53ee8cc1Swenshuai.xi MS_U32 u32FWSize; 286*53ee8cc1Swenshuai.xi 287*53ee8cc1Swenshuai.xi MS_PHY phyVQAddr; 288*53ee8cc1Swenshuai.xi MS_U32 u32VQSize; 289*53ee8cc1Swenshuai.xi 290*53ee8cc1Swenshuai.xi MS_U32 u32IsHK; 291*53ee8cc1Swenshuai.xi MS_U32 u32Res; 292*53ee8cc1Swenshuai.xi 293*53ee8cc1Swenshuai.xi MS_U32 _zero_reserved[2]; 294*53ee8cc1Swenshuai.xi 295*53ee8cc1Swenshuai.xi } DMX_TSPParam; 296*53ee8cc1Swenshuai.xi 297*53ee8cc1Swenshuai.xi 298*53ee8cc1Swenshuai.xi #if 0 299*53ee8cc1Swenshuai.xi /// DMX fitler type and source type 300*53ee8cc1Swenshuai.xi typedef enum 301*53ee8cc1Swenshuai.xi { 302*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_VIDEO, ///< DMX video filter type 303*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_AUDIO, ///< DMX audio filter type 304*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_AUDIO2, ///< DMX audio2 filter type 305*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_SECTION, ///< DMX section filter type 306*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PES, ///< DMX PES filter type 307*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PACKET, ///< DMX TS packet filter type 308*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PCR, ///< DMX PCR filter type 309*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_TELETEXT, ///< DMX teletext filter type 310*53ee8cc1Swenshuai.xi 311*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_MASK = 0xC0000000, ///< DMX filter source mask 312*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_LIVE = 0x80000000, ///< DMX live stream filter source 313*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_FILE = 0x40000000, ///< DMX file in filter type 314*53ee8cc1Swenshuai.xi } DMX_FILTER_TYPE; 315*53ee8cc1Swenshuai.xi #endif 316*53ee8cc1Swenshuai.xi 317*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE MS_U32 318*53ee8cc1Swenshuai.xi 319*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO 0x00000000UL ///< DMX video filter type 320*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO 0x00000001UL ///< DMX audio filter type 321*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO2 0x00000002UL ///< DMX audio2 filter type 322*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION 0x00000003UL ///< DMX section filter type 323*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PES 0x00000004UL ///< DMX PES filter type 324*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PACKET 0x00000005UL ///< DMX TS packet filter type 325*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PCR 0x00000006UL ///< DMX PCR filter type 326*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_TELETEXT 0x00000007UL ///< DMX teletext filter type 327*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO3D 0x00000008UL ///< DMX V3D filter type 328*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO3 0x00000009UL ///< DMX audio 3 filter type 329*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO4 0x0000000AUL ///< DMX audio 4 filter type 330*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_REC 0x0000000BUL ///< DMX record filter type no destination needs to be set 331*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SCMBCHK 0x0000000CUL ///< DMX filter type for checking TS scrambling status 332*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION_VER 0x0000000DUL ///< DMX section filter type with version and CRC check 333*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION_NO_PUSI 0x0000000EUL ///< DMX section filter type which receive section without PUSI 334*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_MASK 0xF2FF0F00UL 335*53ee8cc1Swenshuai.xi 336*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_MASK 0xF0FC0000UL ///< DMX filter source mask 337*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_LIVE 0x80000000UL ///< DMX live stream filter source 338*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE 0x40000000UL ///< DMX file in filter type 339*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_LIVEB DMX_FILTER_SOURCE_TYPE_FILE ///< Input from TS1 to File PID filter 340*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS1 0x00800000UL ///< DMX live stream filter source 1 341*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS2 0x00400000UL ///< DMX live stream filter source 2 342*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS3 0x00200000UL ///< DMX live stream filter source 3 343*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE1 0x00100000UL ///< DMX file1 fource from TS1 344*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE2 0x00080000UL ///< DMX file2 fource from TS2 345*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE3 0x00040000UL 346*53ee8cc1Swenshuai.xi 347*53ee8cc1Swenshuai.xi // Source ID define. For merge stream 348*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_MASK 0x00000F00UL 349*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_0 0x00000000UL 350*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_1 0x00000100UL 351*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_2 0x00000200UL 352*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_3 0x00000300UL 353*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_4 0x00000400UL 354*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_5 0x00000500UL 355*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_6 0x00000600UL 356*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_7 0x00000700UL 357*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_8 0x00000800UL 358*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_9 0x00000900UL 359*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_10 0x00000a00UL 360*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_11 0x00000b00UL 361*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_12 0x00000c00UL 362*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_13 0x00000d00UL 363*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_14 0x00000e00UL 364*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_15 0x00000f00UL 365*53ee8cc1Swenshuai.xi 366*53ee8cc1Swenshuai.xi 367*53ee8cc1Swenshuai.xi // Only supported by TSP ver3.0 driver for section filter duplicate sw patch 368*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_DUPSEC 0x02000000UL 369*53ee8cc1Swenshuai.xi 370*53ee8cc1Swenshuai.xi 371*53ee8cc1Swenshuai.xi // Only supported by TSP ver2.0 driver 372*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PLAYBACK DMX_FILTER_SOURCE_TYPE_LIVE 373*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PVR0 0x20000000UL ///< DMX PVR0 stream filter source 374*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PVR1 0x10000000UL ///< DMX PVR1 stream filter source 375*53ee8cc1Swenshuai.xi 376*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_SCMB_MASK 0x30000000UL 377*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_SCMB 0x20000000UL ///< DMX descramble filter type 378*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_SCMB_SHAREKEY 0x10000000UL ///< DMX descramble filter type with sharekey 379*53ee8cc1Swenshuai.xi 380*53ee8cc1Swenshuai.xi //-------------------------------------------------- 381*53ee8cc1Swenshuai.xi // Debug table 382*53ee8cc1Swenshuai.xi typedef enum 383*53ee8cc1Swenshuai.xi { 384*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_NONE, 385*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_CLEAR, 386*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_ENABLE, 387*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_DISABLE, 388*53ee8cc1Swenshuai.xi } DMX_DEBUG_CMD; 389*53ee8cc1Swenshuai.xi 390*53ee8cc1Swenshuai.xi typedef enum 391*53ee8cc1Swenshuai.xi { 392*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS0, 393*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS1, 394*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS2, 395*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE, 396*53ee8cc1Swenshuai.xi } DMX_DEBUG_SRC; 397*53ee8cc1Swenshuai.xi 398*53ee8cc1Swenshuai.xi typedef enum 399*53ee8cc1Swenshuai.xi { 400*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS0, 401*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS1, 402*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TSCB, 403*53ee8cc1Swenshuai.xi } DMX_DEBUG_TSIF; 404*53ee8cc1Swenshuai.xi 405*53ee8cc1Swenshuai.xi typedef enum 406*53ee8cc1Swenshuai.xi { 407*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO, 408*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIO, 409*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO3D, 410*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOB, 411*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOC, 412*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOD, 413*53ee8cc1Swenshuai.xi } DMX_DEBUG_FIFO; 414*53ee8cc1Swenshuai.xi 415*53ee8cc1Swenshuai.xi typedef enum 416*53ee8cc1Swenshuai.xi { 417*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_0, 418*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_0_FILE, 419*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_1, 420*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_2, 421*53ee8cc1Swenshuai.xi DMX_DEBUG_MMFI0, 422*53ee8cc1Swenshuai.xi DMX_DEBUG_MMFI1, 423*53ee8cc1Swenshuai.xi } DMX_DEBUG_FIFO_SRC; 424*53ee8cc1Swenshuai.xi 425*53ee8cc1Swenshuai.xi // only one playback flow or PVR flow exist 426*53ee8cc1Swenshuai.xi // Playback flow and PVR flow can exist simultaneously 427*53ee8cc1Swenshuai.xi /// DMX flow type 428*53ee8cc1Swenshuai.xi typedef enum 429*53ee8cc1Swenshuai.xi { 430*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK = 0, ///< DMX playback flow 431*53ee8cc1Swenshuai.xi DMX_FLOW_PVR = 1, ///< DMX recording flow 432*53ee8cc1Swenshuai.xi DMX_FLOW_PVR1 = 2, ///< DMX recording flow, note: Not support for all chip 433*53ee8cc1Swenshuai.xi 434*53ee8cc1Swenshuai.xi DMX_FLOW_PVRCA = 3, ///< CI+ PVR 435*53ee8cc1Swenshuai.xi 436*53ee8cc1Swenshuai.xi DMX_FLOW_FILEIN_MM = 4, ///< DMX Filein flow with Main path Vido and MMFI path Audio 437*53ee8cc1Swenshuai.xi DMX_FLOW_MMFI0 = DMX_FLOW_FILEIN_MM, ///< DMX Filein flow with MMFI 0 (MMFI version 2.0) 438*53ee8cc1Swenshuai.xi DMX_FLOW_FILEIN_MM3D = 5, ///< DMX Filein flow with Main path Video, MMFI path 3DVideo, and MMFI Audio 439*53ee8cc1Swenshuai.xi DMX_FLOW_MMFI1 = DMX_FLOW_FILEIN_MM3D, ///< DMX Filein flow with MMFI 1 (MMFI version 2.0) 440*53ee8cc1Swenshuai.xi 441*53ee8cc1Swenshuai.xi DMX_FLOW_CIPHSS_PLAYBACK = 6, ///< Playback flow for CI+ HSS 2 path input for CI+ 442*53ee8cc1Swenshuai.xi DMX_FLOW_CIPHSS_PVRCA = 7, ///< PVR flow for CI+ HSS 2 path input for CI+ 443*53ee8cc1Swenshuai.xi 444*53ee8cc1Swenshuai.xi DMX_FLOW_PVR2 = 8, ///< DMX recording flow, note: Not support for all chip, PVR2 445*53ee8cc1Swenshuai.xi DMX_FLOW_PVR3 = 9, ///< DMX recording flow, note: Not support for all chip 446*53ee8cc1Swenshuai.xi DMX_FLOW_PVR4 = 10, ///< DMX recording flow, note: Not support for all chip 447*53ee8cc1Swenshuai.xi DMX_FLOW_PVR5 = 11, ///< DMX recording flow, note: Not support for all chip 448*53ee8cc1Swenshuai.xi 449*53ee8cc1Swenshuai.xi DMX_FLOW_TSO_PLAYBACK = 12, ///< DMX TSO playback flow (live0 & file0) 450*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK1 = 13, ///< DMX playback flow from TS1 (version 3.0) 451*53ee8cc1Swenshuai.xi DMX_FLOW_PVRCA1 = 14, ///< CI+ PVR (version 3.0) 452*53ee8cc1Swenshuai.xi 453*53ee8cc1Swenshuai.xi DMX_FLOW_TSO_PLAYBACK1 = 15, ///< DMX TSO1 playback flow (live1 & file1) 454*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK2 = 16, ///< DMX playback flow from TS2 (version 3.0/4.0) 455*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK3 = 17, ///< DMX playback flow from TS3 (version 4.0) 456*53ee8cc1Swenshuai.xi 457*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_NOCA = 18, ///< DMX playback flow without pass through CA 458*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_SRC_TS1 = 19, ///< DMX playback, CA input from TS1 output to Live0 459*53ee8cc1Swenshuai.xi 460*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_FI = 20, ///< DMX playback flow from TSFI (version 3.0) 461*53ee8cc1Swenshuai.xi 462*53ee8cc1Swenshuai.xi DMX_FLOW_NUM, 463*53ee8cc1Swenshuai.xi } DMX_FLOW; 464*53ee8cc1Swenshuai.xi 465*53ee8cc1Swenshuai.xi /// DMX input type 466*53ee8cc1Swenshuai.xi typedef enum 467*53ee8cc1Swenshuai.xi { 468*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DEMOD, ///< DMX input from internal demod 469*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM, ///< DMX input from memory 470*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT0, ///< DMX input from external input 0 471*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT1, ///< DMX input from external input 1 472*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT2, ///< DMX input from external input 2. note: Not support for all chip 473*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT3, ///< DMX input from external input 3. note: Not support for all chip 474*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM_NOPASSCA, ///< DMX input from memory, but not pass through CA 475*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DEMOD1, 476*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_TSO, ///< DMX input from TSOutput 477*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_TSO1, 478*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM_PASSCA1, ///< DMX input from memory, but pass through CA1, not CA0 479*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM1, ///< DMX input from memory path 2 480*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT4, ///< DMX input from external input 4. note: Not support for all chip 481*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT5, ///< DMX input from external input 5. note: Not support for all chip 482*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DISABLE, 483*53ee8cc1Swenshuai.xi 484*53ee8cc1Swenshuai.xi } DMX_FLOW_INPUT; 485*53ee8cc1Swenshuai.xi 486*53ee8cc1Swenshuai.xi /// DMX output pad 487*53ee8cc1Swenshuai.xi typedef enum 488*53ee8cc1Swenshuai.xi { 489*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_NONE = 0, 490*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_EXT_PAD1 = 1, ///< DMX output to external pad 1 491*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_EXT_PAD3 = 3, ///< DMX output to external pad 3 492*53ee8cc1Swenshuai.xi }DMX_FLOW_OUTPUT_PAD; 493*53ee8cc1Swenshuai.xi 494*53ee8cc1Swenshuai.xi typedef enum 495*53ee8cc1Swenshuai.xi { 496*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE0, 497*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE1, 498*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE2, 499*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE3, 500*53ee8cc1Swenshuai.xi 501*53ee8cc1Swenshuai.xi DMX_TSIF_FILE0, 502*53ee8cc1Swenshuai.xi DMX_TSIF_FILE1, 503*53ee8cc1Swenshuai.xi DMX_TSIF_FILE2, 504*53ee8cc1Swenshuai.xi DMX_TSIF_FILE3, 505*53ee8cc1Swenshuai.xi 506*53ee8cc1Swenshuai.xi DMX_TSIF_MAX, 507*53ee8cc1Swenshuai.xi } DMX_TSIF; 508*53ee8cc1Swenshuai.xi 509*53ee8cc1Swenshuai.xi typedef enum 510*53ee8cc1Swenshuai.xi { 511*53ee8cc1Swenshuai.xi DMX_PVR_EGN0, 512*53ee8cc1Swenshuai.xi DMX_PVR_EGN1, 513*53ee8cc1Swenshuai.xi DMX_PVR_EGN2, 514*53ee8cc1Swenshuai.xi DMX_PVR_EGN3, 515*53ee8cc1Swenshuai.xi DMX_PVR_EGN4, 516*53ee8cc1Swenshuai.xi DMX_PVR_EGN5, 517*53ee8cc1Swenshuai.xi 518*53ee8cc1Swenshuai.xi DMX_PVR_ENG_NUM, 519*53ee8cc1Swenshuai.xi } DMX_PVR_ENG; 520*53ee8cc1Swenshuai.xi 521*53ee8cc1Swenshuai.xi #if 0 522*53ee8cc1Swenshuai.xi // make sure what you are doing before changing the value 523*53ee8cc1Swenshuai.xi /// DMX callback types 524*53ee8cc1Swenshuai.xi typedef enum 525*53ee8cc1Swenshuai.xi { 526*53ee8cc1Swenshuai.xi DMX_EVENT_DATA_READY = 0x00000001, ///< DMX event ready 527*53ee8cc1Swenshuai.xi DMX_EVENT_BUF_OVERFLOW = 0x00000002, ///< DMX event overflow 528*53ee8cc1Swenshuai.xi DMX_EVENT_PVRBUF_FULL = 0x00000010, ///< DMX event PVR buffer overflow 529*53ee8cc1Swenshuai.xi 530*53ee8cc1Swenshuai.xi /// TSP self task callback // optional --> default is CB by poll 531*53ee8cc1Swenshuai.xi DMX_EVENT_CB_MASK = 0x80000000, ///< DMX callback mask 532*53ee8cc1Swenshuai.xi DMX_EVENT_CB_POLL = 0x00000000, ///< DMX callback by polling // OBSOLETE 533*53ee8cc1Swenshuai.xi DMX_EVENT_CB_SELF = 0x80000000, ///< DMX callback by demux module 534*53ee8cc1Swenshuai.xi DMX_EVENT_CB_SELF_TYPE2 = 0xC0000000, ///< DMX callback by demux module 535*53ee8cc1Swenshuai.xi } DMX_EVENT; 536*53ee8cc1Swenshuai.xi #endif 537*53ee8cc1Swenshuai.xi 538*53ee8cc1Swenshuai.xi #define DMX_EVENT MS_U32 539*53ee8cc1Swenshuai.xi #define DMX_EVENT_DATA_READY 0x00000001UL ///< DMX event ready 540*53ee8cc1Swenshuai.xi #define DMX_EVENT_BUF_OVERFLOW 0x00000002UL ///< DMX event overflow 541*53ee8cc1Swenshuai.xi #define DMX_EVENT_SEC_CRCERROR 0x00000004UL ///< DMX event CRC error 542*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVRBUF_FULL 0x00000010UL ///< DMX event PVR buffer overflow 543*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVR1BUF_FULL 0x00000020UL ///< DMX event Channel Browser buffer overflow 544*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVRBUF_SIZE_MET 0x00000040UL ///< DMX event PVR buffer callback size meet. note: Not support for all chips 545*53ee8cc1Swenshuai.xi 546*53ee8cc1Swenshuai.xi /// TSP self task callback // optional --> default is CB by poll 547*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_MASK 0x80000000UL ///< DMX callback mask 548*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_POLL 0x00000000UL ///< DMX callback by polling // OBSOLETE 549*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_SELF 0x80000000UL ///< DMX callback by demux module 550*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_SELF_TYPE2 0xC0000000UL ///< DMX callback by demux module 551*53ee8cc1Swenshuai.xi 552*53ee8cc1Swenshuai.xi typedef enum 553*53ee8cc1Swenshuai.xi { 554*53ee8cc1Swenshuai.xi DMX_BURSTSINGLE = 0x00, 555*53ee8cc1Swenshuai.xi DMX_BURST2BYTE = 0x01, 556*53ee8cc1Swenshuai.xi DMX_BURST4BYTE = 0x02, 557*53ee8cc1Swenshuai.xi DMX_BURST8BYTE = 0x03, 558*53ee8cc1Swenshuai.xi } DMX_BURSTTYPE; 559*53ee8cc1Swenshuai.xi 560*53ee8cc1Swenshuai.xi #if 0 561*53ee8cc1Swenshuai.xi // make sure what you are doing before changing the value 562*53ee8cc1Swenshuai.xi /// DMX section mode setting 563*53ee8cc1Swenshuai.xi typedef enum 564*53ee8cc1Swenshuai.xi { 565*53ee8cc1Swenshuai.xi DMX_SECT_MODE_CONTI = 0x00000000, ///< DMX receive section contiguously 566*53ee8cc1Swenshuai.xi DMX_SECT_MODE_ONESHOT = 0x00000001, ///< DMX only receive one section 567*53ee8cc1Swenshuai.xi 568*53ee8cc1Swenshuai.xi // optional 569*53ee8cc1Swenshuai.xi DMX_SECT_MODE_CRCCHK = 0x00000002, ///< DMX enables CRC check 570*53ee8cc1Swenshuai.xi DMX_SECT_MODE_AUTO_ADDR = 0x00000004, ///< DMX align read pointer to write pointer when get write pointer // OBSOLETE 571*53ee8cc1Swenshuai.xi } DMX_SECT_MODE; 572*53ee8cc1Swenshuai.xi #endif 573*53ee8cc1Swenshuai.xi 574*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE MS_U32 575*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_CONTI 0x00000000UL ///< DMX receive section contiguously 576*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_ONESHOT 0x00000001UL ///< DMX only receive one section 577*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_PESSCMCHK 0x00000003UL ///< DMX checking PES SCMB status 578*53ee8cc1Swenshuai.xi 579*53ee8cc1Swenshuai.xi // optional 580*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_CRCCHK 0x00000002UL ///< DMX enables CRC check 581*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_AUTO_ADDR 0x00000004UL ///< DMX align read pointer to write pointer when get write pointer // OBSOLETE 582*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_AUTO_CRCCHK 0x00000008UL ///< DMX enables Auto CRC check, should not be set with DMX_SECT_MODE_CRCCHK together 583*53ee8cc1Swenshuai.xi 584*53ee8cc1Swenshuai.xi /// for MApi_DMX_AVFifo_Status return value u32FifoStatus 585*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS MS_U32 586*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_MASK 0x0000000FUL /// use this mask to get fifo level and use below macro to get current fifo status 587*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_USAGE_MASK 0x0000000CUL /// use this mask to get fifo level usage 588*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_USAGE_SHIFT 2UL 589*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_EMPTY 0x00000001UL /// if fifo level status equal to this macro means fifo is empty 590*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_RST_MASK 0x80000000UL /// use this mask to get fifo reset status 591*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_RST_EN 0x80000000UL /// if fifo reset status equal to this macro means fifo reset is enabled. 592*53ee8cc1Swenshuai.xi 593*53ee8cc1Swenshuai.xi /// DMX filein Engine by path 594*53ee8cc1Swenshuai.xi typedef enum 595*53ee8cc1Swenshuai.xi { 596*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF0, 597*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF1, 598*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF2, 599*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF3, 600*53ee8cc1Swenshuai.xi DMX_FILEIN_INVALID, 601*53ee8cc1Swenshuai.xi } DMX_FILEIN_PATH; 602*53ee8cc1Swenshuai.xi 603*53ee8cc1Swenshuai.xi 604*53ee8cc1Swenshuai.xi /// DMX filein destination types 605*53ee8cc1Swenshuai.xi typedef enum 606*53ee8cc1Swenshuai.xi { 607*53ee8cc1Swenshuai.xi DMX_PES_AUDIO2_FIFO = 0, ///< DMX destination is audio2 fifo 608*53ee8cc1Swenshuai.xi DMX_PES_AUDIO_FIFO = 1, ///< DMX destination is audio fifo 609*53ee8cc1Swenshuai.xi DMX_PES_VIDEO_FIFO = 2, ///< DMX destination is video fifo 610*53ee8cc1Swenshuai.xi DMX_PES_NO_BYPASS_FIFO = 3, ///< DMX destination with no bypass 611*53ee8cc1Swenshuai.xi DMX_PES_VIDEO3D_FIFO = 4, ///< DMX destination is video3D fifo 612*53ee8cc1Swenshuai.xi DMX_PES_AUDIO3_FIFO = 5, ///< DMX destination is audio3 fifo 613*53ee8cc1Swenshuai.xi DMX_PES_AUDIO4_FIFO = 6, ///< DMX destination is audio4 fifo 614*53ee8cc1Swenshuai.xi } DMX_FILEIN_DST; // DMXPESDATAFIFO; 615*53ee8cc1Swenshuai.xi 616*53ee8cc1Swenshuai.xi /// DMX callback prototype 617*53ee8cc1Swenshuai.xi typedef void (*DMX_NotifyCb)(MS_U8 u8DmxId, DMX_EVENT enEvent); 618*53ee8cc1Swenshuai.xi typedef void (*DMX_Type2NotifyCb)(MS_U8 u8DmxId, DMX_EVENT enEvent, MS_U32 NotifyParam1); 619*53ee8cc1Swenshuai.xi /// DMX callback used in copy data 620*53ee8cc1Swenshuai.xi typedef MS_BOOL (*DMX_CheckCb)(MS_U8 u8DmxId, MS_U8* start, MS_U8* end, MS_U8* read, MS_U8* write); 621*53ee8cc1Swenshuai.xi 622*53ee8cc1Swenshuai.xi // dummy data structure 623*53ee8cc1Swenshuai.xi typedef struct 624*53ee8cc1Swenshuai.xi { 625*53ee8cc1Swenshuai.xi MS_U32 streaminfo; 626*53ee8cc1Swenshuai.xi } DMX_Stream_info; 627*53ee8cc1Swenshuai.xi 628*53ee8cc1Swenshuai.xi /// DMX section filter information structure 629*53ee8cc1Swenshuai.xi typedef struct 630*53ee8cc1Swenshuai.xi { 631*53ee8cc1Swenshuai.xi MS_PHY SectBufAddr; ///< DMX section buffer in physical address 632*53ee8cc1Swenshuai.xi MS_U32 SectBufSize; ///< DMX section buffer size 633*53ee8cc1Swenshuai.xi DMX_SECT_MODE SectMode; ///< DMX section mode 634*53ee8cc1Swenshuai.xi DMX_EVENT Event; ///< DMX section event 635*53ee8cc1Swenshuai.xi DMX_NotifyCb pNotify; ///< DMX section callback 636*53ee8cc1Swenshuai.xi DMX_Type2NotifyCb pType2Notify; ///< DMX section callback 637*53ee8cc1Swenshuai.xi MS_U32 Type2NotifyParam1; ///< DMX section callback 638*53ee8cc1Swenshuai.xi } DMX_Sect_info; 639*53ee8cc1Swenshuai.xi 640*53ee8cc1Swenshuai.xi /// DMX filter information structure 641*53ee8cc1Swenshuai.xi typedef struct 642*53ee8cc1Swenshuai.xi { 643*53ee8cc1Swenshuai.xi union { 644*53ee8cc1Swenshuai.xi DMX_Stream_info StreamInfo; ///< DMX stream information for future use 645*53ee8cc1Swenshuai.xi DMX_Sect_info SectInfo; ///< DMX section information 646*53ee8cc1Swenshuai.xi } Info; 647*53ee8cc1Swenshuai.xi } DMX_Flt_info; 648*53ee8cc1Swenshuai.xi 649*53ee8cc1Swenshuai.xi /// DMX PVR information structure 650*53ee8cc1Swenshuai.xi typedef struct 651*53ee8cc1Swenshuai.xi { 652*53ee8cc1Swenshuai.xi MS_PHY pPvrBuf0; ///< DMX PVR buffer 0 starting address 653*53ee8cc1Swenshuai.xi MS_PHY pPvrBuf1; ///< DMX PVR buffer 1 starting address 654*53ee8cc1Swenshuai.xi MS_U32 PvrBufSize0; ///< DMX PVR buffer 0 size 655*53ee8cc1Swenshuai.xi MS_U32 PvrBufSize1; ///< DMX PVR buffer 1 size 656*53ee8cc1Swenshuai.xi DMX_EVENT Event; ///< DMX PVR event 657*53ee8cc1Swenshuai.xi DMX_NotifyCb pNotify; ///< DMX PVR callback 658*53ee8cc1Swenshuai.xi 659*53ee8cc1Swenshuai.xi MS_U16 u16CaPvrModel; ///< DMX PVR CA mode 660*53ee8cc1Swenshuai.xi MS_BOOL bSpsEnable; ///< DMX PVR CA mode 661*53ee8cc1Swenshuai.xi 662*53ee8cc1Swenshuai.xi } DMX_Pvr_info; 663*53ee8cc1Swenshuai.xi 664*53ee8cc1Swenshuai.xi typedef enum 665*53ee8cc1Swenshuai.xi { 666*53ee8cc1Swenshuai.xi DMX_CA_PVR_TSP = 0x00000000UL, 667*53ee8cc1Swenshuai.xi DMX_CA_PVR_PROG0 = 0x00000001UL, 668*53ee8cc1Swenshuai.xi DMX_CA_PVR_PROG1 = 0x00000002UL, 669*53ee8cc1Swenshuai.xi }DMX_CA_PVRMODE; 670*53ee8cc1Swenshuai.xi 671*53ee8cc1Swenshuai.xi //---------------------------------- 672*53ee8cc1Swenshuai.xi /// DMX debug table information structure 673*53ee8cc1Swenshuai.xi //---------------------------------- 674*53ee8cc1Swenshuai.xi typedef struct 675*53ee8cc1Swenshuai.xi { 676*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 677*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC TspSrc; 678*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO TspFifo; 679*53ee8cc1Swenshuai.xi } DMX_DisContiCnt_info, DMX_DropPktCnt_info; 680*53ee8cc1Swenshuai.xi 681*53ee8cc1Swenshuai.xi typedef struct 682*53ee8cc1Swenshuai.xi { 683*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 684*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF TspTsif; 685*53ee8cc1Swenshuai.xi } DMX_LockPktCnt_info; 686*53ee8cc1Swenshuai.xi 687*53ee8cc1Swenshuai.xi typedef struct 688*53ee8cc1Swenshuai.xi { 689*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 690*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO TspFifo; 691*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_SRC TspFifoSrc; 692*53ee8cc1Swenshuai.xi } DMX_AVPktCnt_info; 693*53ee8cc1Swenshuai.xi 694*53ee8cc1Swenshuai.xi #define DMX_MAX_SIGFLAG_NUM 10UL 695*53ee8cc1Swenshuai.xi #define DMX_MAX_PVRSIGFLAG_NUM 6UL 696*53ee8cc1Swenshuai.xi typedef struct 697*53ee8cc1Swenshuai.xi { 698*53ee8cc1Swenshuai.xi MS_U32 u32Eng; 699*53ee8cc1Swenshuai.xi MS_U32 u32EvtWaitOpt; 700*53ee8cc1Swenshuai.xi MS_U32 u32DmxEvt; 701*53ee8cc1Swenshuai.xi MS_U32 u32TspEvt; 702*53ee8cc1Swenshuai.xi 703*53ee8cc1Swenshuai.xi MS_U32 u32PvrBufFullFlag[DMX_MAX_PVRSIGFLAG_NUM]; 704*53ee8cc1Swenshuai.xi 705*53ee8cc1Swenshuai.xi MS_U32 u32SecRdyFlag[DMX_MAX_SIGFLAG_NUM]; 706*53ee8cc1Swenshuai.xi MS_U32 u32SecOvfFlag[DMX_MAX_SIGFLAG_NUM]; 707*53ee8cc1Swenshuai.xi }DMX_TSP_IOSIGNAL; 708*53ee8cc1Swenshuai.xi 709*53ee8cc1Swenshuai.xi /// DMX capability query type 710*53ee8cc1Swenshuai.xi typedef enum 711*53ee8cc1Swenshuai.xi { 712*53ee8cc1Swenshuai.xi DMX_CAP_PID_FILTER_NUM = 0, ///< Get PID filter number 713*53ee8cc1Swenshuai.xi DMX_CAP_SEC_FILTER_NUM = 1, ///< Get section filter number 714*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_NUM = 2, ///< Get section buffer number 715*53ee8cc1Swenshuai.xi 716*53ee8cc1Swenshuai.xi DMX_CAP_PVR_ENG_NUM = 3, ///< Get pvr engine number 717*53ee8cc1Swenshuai.xi DMX_CAP_PVR_FILTER_NUM = 4, ///< Get pvr filter number 718*53ee8cc1Swenshuai.xi DMX_CAP_PVR1_FILTER_NUM = 5, ///< Get pvr1 filter number 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xi DMX_CAP_MMFI_AUDIO_FILTER_NUM = 6, ///< Get MM file in audio path filter number 721*53ee8cc1Swenshuai.xi DMX_CAP_MMFI_V3D_FILTER_NUM = 7, ///< Get MM file in video 3D path filter number 722*53ee8cc1Swenshuai.xi 723*53ee8cc1Swenshuai.xi DMX_CAP_MMFI0_FILTER_NUM = 6, ///< Get MM file in 0 path filter number 724*53ee8cc1Swenshuai.xi DMX_CAP_MMFI1_FILTER_NUM = 7, ///< Get MM file in 1 path filter number 725*53ee8cc1Swenshuai.xi 726*53ee8cc1Swenshuai.xi DMX_CAP_TSIF_NUM = 8, ///< Get ts interface number 727*53ee8cc1Swenshuai.xi DMX_CAP_DEMOD_NUM = 9, ///< Get demod support number 728*53ee8cc1Swenshuai.xi DMX_CAP_TS_PAD_NUM = 10, ///< Get TS pad support number 729*53ee8cc1Swenshuai.xi DMX_CAP_VQ_NUM = 11, ///< Get virtual queue support number 730*53ee8cc1Swenshuai.xi 731*53ee8cc1Swenshuai.xi DMX_CAP_CA_FLT_NUM = 12, ///< Get descramble filter number 732*53ee8cc1Swenshuai.xi DMX_CAP_CA_KEY_NUM = 13, ///< Get total descramble key number 733*53ee8cc1Swenshuai.xi 734*53ee8cc1Swenshuai.xi DMX_CAP_FW_ALIGN = 14, ///< Get MIU alignment in bytes of DMX FW 735*53ee8cc1Swenshuai.xi DMX_CAP_VQ_ALIGN = 15, ///< Get MIU alignment in bytes of Virtual queue 736*53ee8cc1Swenshuai.xi DMX_CAP_VQ_PITCH = 16, ///< Get length in bytes in bytes of one VQ unit 737*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_ALIGN = 17, ///< Get MIU alignment in bytes of section buffer 738*53ee8cc1Swenshuai.xi DMX_CAP_PVR_ALIGN = 18, ///< Get miu alignment in bytes of record buffer 739*53ee8cc1Swenshuai.xi 740*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA_PATH_NUM = 19, ///< Get the numbers of descramble record path 741*53ee8cc1Swenshuai.xi 742*53ee8cc1Swenshuai.xi DMX_CAP_SHAREKEY_FLT_RANGE = 20, ///< Get the range of sharekey descramble 0 filter id. data0 is start ID, data 1 is end ID 743*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA0_FLT_RANGE = 21, ///< Get the range of PVRCA0 filter id. data0 is start ID, data 1 is end ID 744*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA1_FLT_RANGE = 22, ///< Get the range of PVRCA1 filter id. data0 is start ID, data 1 is end ID 745*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA2_FLT_RANGE = 23, ///< Get the range of PVRCA2 filter id. data0 is start ID, data 1 is end ID 746*53ee8cc1Swenshuai.xi DMX_CAP_SHAREKEY_FLT1_RANGE = 24, ///< Get the range of sharekey descramble 1 filter id. data0 is start ID, data 1 is end ID 747*53ee8cc1Swenshuai.xi DMX_CAP_SHAREKEY_FLT2_RANGE = 25, ///< Get the range of sharekey descramble 2 filter id. data0 is start ID, data 1 is end ID 748*53ee8cc1Swenshuai.xi 749*53ee8cc1Swenshuai.xi DMX_CAP_HW_TYPE = 26, ///< Get the HW architecture type. 0xXXX0: No PVR, 0x100X: TV series, 0x200X: STB series 750*53ee8cc1Swenshuai.xi 751*53ee8cc1Swenshuai.xi DMX_CAP_RESOURCE_SIZE = 27, ///< Get DMX Private Resource data struct size (Share resource) 752*53ee8cc1Swenshuai.xi 753*53ee8cc1Swenshuai.xi DMX_CAP_VFIFO_NUM = 28, ///< Get VFIFO support number 754*53ee8cc1Swenshuai.xi DMX_CAP_AFIFO_NUM = 29, ///< Get AFIFO support number 755*53ee8cc1Swenshuai.xi 756*53ee8cc1Swenshuai.xi DMX_CAP_HWPCR_SUPPORT = 30, ///< Get HWPCR support status 757*53ee8cc1Swenshuai.xi DMX_CAP_PCRFLT_START_IDX = 31, ///< Get PCR start index 758*53ee8cc1Swenshuai.xi DMX_CAP_TSP_HWWP_SET_NUM = 32, ///< Get TSP write protect set numbers 759*53ee8cc1Swenshuai.xi 760*53ee8cc1Swenshuai.xi DMX_CAP_DSCMB_ENG_NUM = 33, ///< Get DSCMB engine numbers 761*53ee8cc1Swenshuai.xi 762*53ee8cc1Swenshuai.xi DMX_CAP_MAX_MERGESTR_NUM = 34, ///< Get Maxumum merge stream number 763*53ee8cc1Swenshuai.xi 764*53ee8cc1Swenshuai.xi DMX_CAP_MAX_SEC_FLT_DEPTH = 35, 765*53ee8cc1Swenshuai.xi DMX_CAP_FW_BUF_SIZE = 36, 766*53ee8cc1Swenshuai.xi DMX_CAP_FW_BUF_RANGE = 37, 767*53ee8cc1Swenshuai.xi DMX_CAP_VQ_BUF_RANGE = 38, 768*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_RANGE = 39, 769*53ee8cc1Swenshuai.xi DMX_CAP_FIQ_NUM = 40, 770*53ee8cc1Swenshuai.xi 771*53ee8cc1Swenshuai.xi DMX_CAP_NULL, 772*53ee8cc1Swenshuai.xi } DMX_QUERY_TYPE; 773*53ee8cc1Swenshuai.xi 774*53ee8cc1Swenshuai.xi typedef enum 775*53ee8cc1Swenshuai.xi { 776*53ee8cc1Swenshuai.xi DMX_HW_TYPE_NONE = 0UL, 777*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_SERIES = 0x00001000UL, ///< The HW architecture is TV series without PVR cunfction 778*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_TYPE1 = 0x00001001UL, ///< The HW architecture is TV series with Seperate PVR filters 779*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_TYPE2 = 0x00001002UL, ///< The HW architecture is TV series with general PVR filters 780*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_TYPE2_CA2 = 0x00001006UL, ///< The HW architecture is TV series with general PVR filters, with general dscmb filters, and merge stream 781*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_SERIES = 0x00002000UL, ///< The HW architecture is BOX series without PVR cunfction 782*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE1 = 0x00002001UL, ///< The HW architecture is BOX series 1 783*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE2 = 0x00002002UL, ///< The HW architecture is BOX series 2 784*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE3 = 0x00002003UL, ///< The HW architecture is BOX series 3 785*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE3_CASPS = 0x80002003UL, ///< The HW architecture is BOX series 3 with PVR CA SPS enable mode 786*53ee8cc1Swenshuai.xi } DMX_HW_TYPE; 787*53ee8cc1Swenshuai.xi 788*53ee8cc1Swenshuai.xi typedef enum 789*53ee8cc1Swenshuai.xi { 790*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_90K = 0x00000000UL, 791*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_27M = 0x00000001UL, 792*53ee8cc1Swenshuai.xi } DMX_TimeStamp_Clk; 793*53ee8cc1Swenshuai.xi 794*53ee8cc1Swenshuai.xi /// TSP file in Packet mode 795*53ee8cc1Swenshuai.xi typedef enum //_DMX_Filein_Packmode 796*53ee8cc1Swenshuai.xi { 797*53ee8cc1Swenshuai.xi DMX_PKTMODE_188 = 0x00000000UL, ///< DMX file in packet size with 188 (Single stream) 798*53ee8cc1Swenshuai.xi DMX_PKTMODE_192 = 0x00000001UL, ///< DMX file in packet size with 192 (Single stream) 799*53ee8cc1Swenshuai.xi DMX_PKTMODE_204 = 0x00000002UL, ///< DMX file in packet size with 204 (Single stream) 800*53ee8cc1Swenshuai.xi DMX_PKTMODE_130 = 0x00000003UL, ///< DMX file in packet size with 130 (RVU) 801*53ee8cc1Swenshuai.xi DMX_PKTMODE_134 = 0x00000004UL, ///< DMX file in packet size with 134 (RVU with timestamp) 802*53ee8cc1Swenshuai.xi DMX_PKTMODE_200 = 0x00000005UL, ///< DMX file in packet size with 200 (Open cable Single stream) 803*53ee8cc1Swenshuai.xi 804*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG188 = 0x00000006UL, ///< DMX file in packet size with 188 (Merge stream) 805*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG192 = 0x00000007UL, ///< DMX file in packet size with 192 (Merge stream) 806*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG200 = 0x00000008UL, ///< DMX file in packet size with 200 (Open cable Merge stream) 807*53ee8cc1Swenshuai.xi } DMX_Filein_PacketMode; 808*53ee8cc1Swenshuai.xi 809*53ee8cc1Swenshuai.xi #define DMX_PacketMode DMX_Filein_PacketMode 810*53ee8cc1Swenshuai.xi 811*53ee8cc1Swenshuai.xi /// TSP file in information structure 812*53ee8cc1Swenshuai.xi typedef struct 813*53ee8cc1Swenshuai.xi { 814*53ee8cc1Swenshuai.xi MS_U32 Rate; ///< DMX file in rate 815*53ee8cc1Swenshuai.xi DMX_Filein_PacketMode PKT_Mode; ///< DMX file in packet size mode 816*53ee8cc1Swenshuai.xi } DMX_Filein_info; 817*53ee8cc1Swenshuai.xi 818*53ee8cc1Swenshuai.xi typedef struct 819*53ee8cc1Swenshuai.xi { 820*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT Input; 821*53ee8cc1Swenshuai.xi MS_BOOL bClkInv; 822*53ee8cc1Swenshuai.xi MS_BOOL bExtSync; 823*53ee8cc1Swenshuai.xi MS_BOOL bParallel; 824*53ee8cc1Swenshuai.xi }DMX_FlowInput_Info; 825*53ee8cc1Swenshuai.xi 826*53ee8cc1Swenshuai.xi //MMFI Path 827*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH MS_U32 828*53ee8cc1Swenshuai.xi #define DMX_MMFI_AUDIO 0UL ///< DMX destination with no bypass to MM Audio path 829*53ee8cc1Swenshuai.xi #define DMX_MMFI_VIDEO 1UL ///< DMX destination with no bypass to MM Video path 830*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH0 DMX_MMFI_AUDIO 831*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH1 DMX_MMFI_VIDEO 832*53ee8cc1Swenshuai.xi 833*53ee8cc1Swenshuai.xi // must alignment with TSP_FIFO_XXX in halTSP.h 834*53ee8cc1Swenshuai.xi typedef enum 835*53ee8cc1Swenshuai.xi { 836*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUD = 0x00, 837*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDB = 0x01, 838*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD3D = 0x02, 839*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD = 0x03, 840*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDC = 0x04, 841*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDD = 0x05, 842*53ee8cc1Swenshuai.xi 843*53ee8cc1Swenshuai.xi DMX_MMFI1_FLTTYPE_MASK = 0x80, 844*53ee8cc1Swenshuai.xi }DMX_MMFI_FLTTYPE; 845*53ee8cc1Swenshuai.xi 846*53ee8cc1Swenshuai.xi typedef enum 847*53ee8cc1Swenshuai.xi { 848*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_AU = 0x0000, 849*53ee8cc1Swenshuai.xi 850*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AU = 0x0001, 851*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUB = 0x0002, 852*53ee8cc1Swenshuai.xi 853*53ee8cc1Swenshuai.xi DMX_MMFI_PES_APID_BYPASS = 0x0004, 854*53ee8cc1Swenshuai.xi DMX_MMFI_PES_APIDB_BYPASS = 0x0008, 855*53ee8cc1Swenshuai.xi 856*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_V3D = 0x0010, 857*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_V3D = 0x0020, 858*53ee8cc1Swenshuai.xi DMX_MMFI_PES_V3DPID_BYPASS = 0x0040, 859*53ee8cc1Swenshuai.xi 860*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_VD = 0x0080, 861*53ee8cc1Swenshuai.xi DMX_MMFI_PES_VPID_BYPASS = 0x0100, 862*53ee8cc1Swenshuai.xi 863*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_TS = 0x0200, 864*53ee8cc1Swenshuai.xi 865*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD = 0x0400, 866*53ee8cc1Swenshuai.xi 867*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUC = 0x0800, 868*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUD = 0x1000, 869*53ee8cc1Swenshuai.xi 870*53ee8cc1Swenshuai.xi DMX_MMFI1_PES_TYPE_MASK = 0x8000, ///< Must set, when using MMFI1 path 871*53ee8cc1Swenshuai.xi }DMX_MMFI_DST; 872*53ee8cc1Swenshuai.xi 873*53ee8cc1Swenshuai.xi typedef enum 874*53ee8cc1Swenshuai.xi { 875*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_DIV2N, 876*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_DIVN, 877*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_62M, 878*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_54M, 879*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_PTSOOUT, 880*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_PTSOOUT_DIV8, 881*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_Dmd, 882*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_27M, 883*53ee8cc1Swenshuai.xi }DMX_TSO_OutClk; 884*53ee8cc1Swenshuai.xi 885*53ee8cc1Swenshuai.xi typedef enum 886*53ee8cc1Swenshuai.xi { 887*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_172M_2N, // E_DMX_TSO_OUTCLK_DIV2N 888*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_288M_2N, // E_DMX_TSO_OUTCLK_DIV2N 889*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_432M_2N, // E_DMX_TSO_OUTCLK_DIV2N 890*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_216M_N, // E_DMX_TSO_OUTCLK_DIVN 891*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS0IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 892*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS1IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 893*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS2IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 894*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS3IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 895*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS4IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 896*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS5IN, // E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 897*53ee8cc1Swenshuai.xi }DMX_TSO_OutClkSrc; 898*53ee8cc1Swenshuai.xi 899*53ee8cc1Swenshuai.xi typedef struct 900*53ee8cc1Swenshuai.xi { 901*53ee8cc1Swenshuai.xi MS_U32 u32Res; 902*53ee8cc1Swenshuai.xi DMX_FLOW eFlow; 903*53ee8cc1Swenshuai.xi DMX_TSIF eTSOInIf; 904*53ee8cc1Swenshuai.xi DMX_FlowInput_Info stInputInfo; 905*53ee8cc1Swenshuai.xi MS_U8 u8LocalStrId; 906*53ee8cc1Swenshuai.xi MS_BOOL bBypassAll; 907*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 908*53ee8cc1Swenshuai.xi MS_BOOL bSet; 909*53ee8cc1Swenshuai.xi }DMX_TSO_InputCfg; 910*53ee8cc1Swenshuai.xi 911*53ee8cc1Swenshuai.xi typedef struct 912*53ee8cc1Swenshuai.xi { 913*53ee8cc1Swenshuai.xi MS_U32 u32Res; 914*53ee8cc1Swenshuai.xi DMX_FLOW eFlow; 915*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_PAD eOutPad; 916*53ee8cc1Swenshuai.xi MS_U16 u16OutPktSize; 917*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 918*53ee8cc1Swenshuai.xi 919*53ee8cc1Swenshuai.xi MS_BOOL bDefOutClk; 920*53ee8cc1Swenshuai.xi MS_BOOL bOutClkInv; 921*53ee8cc1Swenshuai.xi DMX_TSO_OutClk eTsoOutClk; 922*53ee8cc1Swenshuai.xi DMX_TSO_OutClkSrc eTsoOutClkSrc; 923*53ee8cc1Swenshuai.xi MS_U16 u16DivNum; 924*53ee8cc1Swenshuai.xi MS_BOOL bSet; 925*53ee8cc1Swenshuai.xi }DMX_TSO_OutputCfg; 926*53ee8cc1Swenshuai.xi 927*53ee8cc1Swenshuai.xi /// DMX FQ init infomation 928*53ee8cc1Swenshuai.xi typedef struct 929*53ee8cc1Swenshuai.xi { 930*53ee8cc1Swenshuai.xi MS_U8 u8AddrMode; 931*53ee8cc1Swenshuai.xi MS_PHY u32BufStart; 932*53ee8cc1Swenshuai.xi MS_U32 u32BufSize; 933*53ee8cc1Swenshuai.xi } DMX_FQ_Info; 934*53ee8cc1Swenshuai.xi 935*53ee8cc1Swenshuai.xi typedef enum 936*53ee8cc1Swenshuai.xi { 937*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_RUSH_DATA_PATH_NON = 0x00000000UL, 938*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_RUSH_DATA = 0x00000008UL, 939*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_B_RUSH_DATA = 0x00000010UL, 940*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_VPES_RUSH_DATA = 0x00000020UL, 941*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_SEC_RUSH_DATA = 0x00000040UL, 942*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_ADP_RUSH_DATA = 0x00000080UL, 943*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PCR_RUSH_DATA = 0x00000100UL, 944*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_RASP_RUSH_DATA = 0x00000200UL, 945*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR1_RUSH_DATA = E_DMX_FQ_SKIP_RASP_RUSH_DATA, 946*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PCR1_RUSH_DATA = 0x00001000UL, 947*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR3_RUSH_DATA = E_DMX_FQ_SKIP_PCR1_RUSH_DATA, 948*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_CFG1_MASK = 0x80000000UL, 949*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_C_RUSH_DATA = 0x80000008UL, 950*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_D_RUSH_DATA = 0x80000010UL, 951*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_V3DPES_RUSH_DATA = 0x80000020UL, 952*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR2_RUSH_DATA = 0x80000200UL, 953*53ee8cc1Swenshuai.xi }DMX_FQ_SkipPath; 954*53ee8cc1Swenshuai.xi 955*53ee8cc1Swenshuai.xi /// DMX TEI Remove Error Packet Infomation 956*53ee8cc1Swenshuai.xi typedef enum 957*53ee8cc1Swenshuai.xi { 958*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_AUDIO_PKT, ///< DMX TEI Remoce Audio Packet 959*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_VIDEO_PKT, ///< DMX TEI Remoce Video Packet 960*53ee8cc1Swenshuai.xi 961*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT0_LIVE, 962*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT0_FILE, 963*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT1, 964*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT2, 965*53ee8cc1Swenshuai.xi 966*53ee8cc1Swenshuai.xi }DMX_TEI_RmPktType; 967*53ee8cc1Swenshuai.xi 968*53ee8cc1Swenshuai.xi //STC update Control Parameters define 969*53ee8cc1Swenshuai.xi #define eStcUpdateCtrlMode MS_U8 970*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_FW 0x00 971*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_HK 0x01 972*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_UPDATEONCE 0x02 973*53ee8cc1Swenshuai.xi 974*53ee8cc1Swenshuai.xi //S2P Clock Option 975*53ee8cc1Swenshuai.xi #define eS2PClkOpt MS_U32 976*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_NONE 0x00000000 977*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_INVERT 0x00000001 978*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_NON_INVERT 0x00000002 979*53ee8cc1Swenshuai.xi 980*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 981*53ee8cc1Swenshuai.xi // include utopia v2 header files here 982*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 983*53ee8cc1Swenshuai.xi #ifdef DMX_UTOPIA_20 984*53ee8cc1Swenshuai.xi #include "apiDMX_v2.h" 985*53ee8cc1Swenshuai.xi #endif 986*53ee8cc1Swenshuai.xi 987*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 988*53ee8cc1Swenshuai.xi /// Initialize lib resource API 989*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 990*53ee8cc1Swenshuai.xi /// @param pu32ResMemAddr \b IN: Pointer to store resource memory addresses 991*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 992*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 993*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 994*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_InitLibResource(void *pResMemAddr); 995*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 996*53ee8cc1Swenshuai.xi /// Set TSP firmware address and size. 997*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 998*53ee8cc1Swenshuai.xi /// @param pFwAddr \b IN: TSP firmware address in DRAM physical address 999*53ee8cc1Swenshuai.xi /// @param u32FwSize \b IN: TSP firmware size 1000*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1001*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1002*53ee8cc1Swenshuai.xi /// @note It should be called before calling any other Demux API functions. 1003*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1004*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetFW(MS_PHY pFwAddr, MS_U32 u32FwSize); // In DRAM physical address 1005*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1006*53ee8cc1Swenshuai.xi /// Set the MIU address for TSP aeon (firmware) used. 1007*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1008*53ee8cc1Swenshuai.xi /// @param phyDataAddr \b IN: MIU phsyical address 1009*53ee8cc1Swenshuai.xi /// @param u32size \b IN: MIU buffer size 1010*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1011*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1012*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1013*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetFwDataAddr(MS_PHY phyDataAddr, MS_U32 u32size); 1014*53ee8cc1Swenshuai.xi /// Set TSP is work on HK or AEON. 1015*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1016*53ee8cc1Swenshuai.xi /// @param bIsHK \b IN: TRUE: HK, FALSE: AEON 1017*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1018*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1019*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1020*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetHK(MS_BOOL bIsHK); // OBSOLETE 1021*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1022*53ee8cc1Swenshuai.xi /// Initialize Demux module. 1023*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1024*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1025*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1026*53ee8cc1Swenshuai.xi /// @note It should be called before calling any other Demux API functions. 1027*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1028*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Init(void); 1029*53ee8cc1Swenshuai.xi 1030*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1031*53ee8cc1Swenshuai.xi /// Initialize Demux API for Virtual Quere Enable 1032*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1033*53ee8cc1Swenshuai.xi /// @param param \b IN: Init Virtual Quere Setting 1034*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1035*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1036*53ee8cc1Swenshuai.xi /// @note if want to use virtual quere, please call this API after calling MApi_DMX_Init. (VQ does not support for all chip) 1037*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1038*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_TSPInit(DMX_TSPParam *param); 1039*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1040*53ee8cc1Swenshuai.xi /// Exit Demux API 1041*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1042*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1043*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1044*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1045*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Exit(void); 1046*53ee8cc1Swenshuai.xi 1047*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1048*53ee8cc1Swenshuai.xi /// Force exit Demux API 1049*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1050*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1051*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1052*53ee8cc1Swenshuai.xi /// @note It is special case for MM 1053*53ee8cc1Swenshuai.xi ///------------------------------------------------------------------------------------------------- 1054*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_ForceExit(void); 1055*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1056*53ee8cc1Swenshuai.xi /// Save DMX driver states to DRAM. 1057*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1058*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1059*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1060*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1061*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Suspend(void); 1062*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1063*53ee8cc1Swenshuai.xi /// Restore DMX driver states from DRAM. And TSP need input the firmware info. to reload TSP FW. 1064*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1065*53ee8cc1Swenshuai.xi /// @param phyFWAddr \b IN: TSP firmware load address 1066*53ee8cc1Swenshuai.xi /// @param u32FWSize \b IN: TSP firmware size 1067*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1068*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1069*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1070*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Resume(MS_PHY phyFWAddr, MS_U32 u32FWSize); 1071*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1072*53ee8cc1Swenshuai.xi /// Check TSP is alive or not. (Firmware) 1073*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1074*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1075*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1076*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1077*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ChkAlive(void); 1078*53ee8cc1Swenshuai.xi 1079*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1080*53ee8cc1Swenshuai.xi /// Reset TSP and MM. It will reset all filter and do HW reset. 1081*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1082*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1083*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1084*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1085*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Reset(void); 1086*53ee8cc1Swenshuai.xi 1087*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1088*53ee8cc1Swenshuai.xi /// Release TSP driver HW lock semaphone 1089*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1090*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1091*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1092*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1093*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_ReleaseSemaphone(void); 1094*53ee8cc1Swenshuai.xi 1095*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1096*53ee8cc1Swenshuai.xi /// Enable/Disable TSP MIU internal write protect. Include PVR record buffer and section buffer. 1097*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1098*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable protect 1099*53ee8cc1Swenshuai.xi /// @param pphyStartAddr \b IN: Protect start address. Array[0-3]: [0]: PVR, [1-2]: Section, [3]: PVR1 1100*53ee8cc1Swenshuai.xi /// @param pphyEndAddr \b IN: Protect end address. Array[0-3]: [0]: PVR, [1-2]: Section, [3]: PVR1 1101*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1102*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1103*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1104*53ee8cc1Swenshuai.xi // void MApi_DMX_WriteProtect_Enable(MS_BOOL bEnable, MS_PHY* pphyStartAddr, MS_PHY* pphyEndAddr); 1105*53ee8cc1Swenshuai.xi 1106*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1107*53ee8cc1Swenshuai.xi /// Enable/Disable Demux MIU internal Firmware write protect. 1108*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1109*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable protect 1110*53ee8cc1Swenshuai.xi /// @param phyStartAddr \b IN: Protect start address. 1111*53ee8cc1Swenshuai.xi /// @param phyEndAddr \b IN: Protect end address. 1112*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1113*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1114*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1115*53ee8cc1Swenshuai.xi // void MApi_DMX_OrzWriteProtect_Enable(MS_BOOL bEnable, MS_PHY phyStartAddr, MS_PHY phyEndAddr); 1116*53ee8cc1Swenshuai.xi //----------------- 1117*53ee8cc1Swenshuai.xi // DMX_ToBeRemove 1118*53ee8cc1Swenshuai.xi //----------------- 1119*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1120*53ee8cc1Swenshuai.xi /// Read drop packet count of AV due to duplicate. (Use new debug function to get this information) 1121*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1122*53ee8cc1Swenshuai.xi /// @param eDmxPktType \b IN: The packet type wihch want to remove 1123*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 1124*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1125*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1126*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1127*53ee8cc1Swenshuai.xi // // DMX_FILTER_STATUS MApi_DMX_Read_DropPktCnt(MS_U16* pu16ADropCnt, MS_U16* pu16VDropCnt); 1128*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Read_DropPktCnt(MS_U16* pu16ADropCnt, MS_U16* pu16VDropCnt); 1129*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1130*53ee8cc1Swenshuai.xi /// Control DMX STR functions. 1131*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1132*53ee8cc1Swenshuai.xi /// @param u16PowerState \b IN: STR power mode. (to control STR suspend & resume case.) 1133*53ee8cc1Swenshuai.xi /// @param phyFWAddr \b IN: TSP firmware load address 1134*53ee8cc1Swenshuai.xi /// @param u32FWSize \b IN: TSP firmware size 1135*53ee8cc1Swenshuai.xi /// @return : Utopia status - UTOPIA_STATUS_SUCCESS (Succeed) or UTOPIA_STATUS_FAIL (Fail) 1136*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1137*53ee8cc1Swenshuai.xi MS_U32 MApi_DMX_SetPowerState(EN_POWER_MODE u16PowerState, MS_PHY phyFWAddr, MS_U32 u32FWSize); 1138*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_TEI_RemoveErrorPkt(DMX_TEI_RmPktType eDmxPktType, MS_BOOL bEnable); 1139*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1140*53ee8cc1Swenshuai.xi /// Set Demux Flow packet mode 1141*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1142*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1143*53ee8cc1Swenshuai.xi /// @param ePktMode \b IN: Packet mode of flow path. 1144*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1145*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1146*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1147*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_SetPacketMode(DMX_FLOW DmxFlow, DMX_PacketMode ePktMode); 1148*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1149*53ee8cc1Swenshuai.xi /// Set Sync Byte value to Stream source ID or TS source ID. 1150*53ee8cc1Swenshuai.xi /// @ingroup TSP_Merge 1151*53ee8cc1Swenshuai.xi /// @param u32SrcID \b IN: Index of stream source id or TS source id 1152*53ee8cc1Swenshuai.xi /// @param u8SyncByte \b IN: Sync byte, defalut value is 0x47 1153*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1154*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1155*53ee8cc1Swenshuai.xi /// @note: u32SrcID - Stream source ID is from 0 ~7 1156*53ee8cc1Swenshuai.xi /// TS source ID is mapping TSIF index 1157*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1158*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_SetMergeStrSyncByte(MS_U32 u32SrcID, MS_U8 u8SyncByte); 1159*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1160*53ee8cc1Swenshuai.xi /// Set enable/disable drop scramble packet of FIFO/PVR. If enable, scramble packet can't pass through FIFO/PVR. 1161*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1162*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: Type select: FIFO or PVR 1163*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable 1164*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1165*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1166*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1167*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_DropScmbPkt(DMX_FILTER_TYPE pDmxFltType, MS_BOOL bEnable); 1168*53ee8cc1Swenshuai.xi 1169*53ee8cc1Swenshuai.xi // owner ship set/checking 1170*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1171*53ee8cc1Swenshuai.xi /// Set demux filter owner. 1172*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1173*53ee8cc1Swenshuai.xi /// @param u8DmxIdStart \b IN: Demux filter start index 1174*53ee8cc1Swenshuai.xi /// @param u8DmxIdEnd \b IN: Demux filter end index 1175*53ee8cc1Swenshuai.xi /// @param bOwner \b IN: TRUE for owner, FALSE for not owner 1176*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1177*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1178*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1179*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetOwner(MS_U8 u8DmxIdStart, MS_U8 u8DmxIdEnd, MS_BOOL bOwner); //OBSOLETE 1180*53ee8cc1Swenshuai.xi 1181*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1182*53ee8cc1Swenshuai.xi /// Query DMX specific hardware capability. 1183*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1184*53ee8cc1Swenshuai.xi /// @param DmxQueryType \b IN: query type 1185*53ee8cc1Swenshuai.xi /// @param pOutput \b OUT: answer of query type 1186*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1187*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1188*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1189*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetCap(DMX_QUERY_TYPE DmxQueryType, void* pOutput); 1190*53ee8cc1Swenshuai.xi //----------------- 1191*53ee8cc1Swenshuai.xi // DMX_ToBeModified 1192*53ee8cc1Swenshuai.xi //----------------- 1193*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1194*53ee8cc1Swenshuai.xi /// Query DMX specific hardware capability by string type. 1195*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 1196*53ee8cc1Swenshuai.xi /// @param pstrQueryType \b IN: String of capability item 1197*53ee8cc1Swenshuai.xi /// @param s32Strlen \b IN: String size of capability item 1198*53ee8cc1Swenshuai.xi /// @param pOutput \b OUT: answer of query type 1199*53ee8cc1Swenshuai.xi /// @param pseOutSize \b OUT: Output data length 1200*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1201*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1202*53ee8cc1Swenshuai.xi /// @note: Keep MApi_DMX_GetCap function and refine interface for parameter 1203*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1204*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_GetCap_Ex(char* pstrQueryType, MS_S32 s32Strlen, void* pOutput, MS_S32* ps32OutSize); 1205*53ee8cc1Swenshuai.xi 1206*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1207*53ee8cc1Swenshuai.xi /// Invert Demux parallel input bit order 1208*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1209*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1210*53ee8cc1Swenshuai.xi /// @param bInvert \b IN: Invert bit order of TS parallel in. (TRUE: Invert, FALSE: Not invert) 1211*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1212*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1213*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------ 1214*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Parl_Invert(DMX_FLOW DmxFlow, MS_BOOL bInvert); 1215*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1216*53ee8cc1Swenshuai.xi /// Set Demux DMA burst length. 1217*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1218*53ee8cc1Swenshuai.xi /// @param BurstType \b IN: Burst length 1219*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1220*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1221*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------ 1222*53ee8cc1Swenshuai.xi // // DMX_FILTER_STATUS MApi_DMX_SetBurstLen(DMX_BURSTTYPE BurstType); 1223*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_SetBurstLen(DMX_BURSTTYPE BurstType); 1224*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1225*53ee8cc1Swenshuai.xi /// Enable/Disable TSP VQ. 1226*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1227*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable 1228*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1229*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1230*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1231*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_VQ_Enable(MS_BOOL bEnable); 1232*53ee8cc1Swenshuai.xi 1233*53ee8cc1Swenshuai.xi //----------------- 1234*53ee8cc1Swenshuai.xi // TSP_Flow 1235*53ee8cc1Swenshuai.xi //----------------- 1236*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1237*53ee8cc1Swenshuai.xi /// Set Demux Flow config. 1238*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1239*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1240*53ee8cc1Swenshuai.xi /// @param DmxFlowInput \b IN: Input port. (ex: external pad0, internal demod...etc) 1241*53ee8cc1Swenshuai.xi /// @param bClkInv \b IN: TS-in options: clock phase inversion 1242*53ee8cc1Swenshuai.xi /// @param bExtSync \b IN: TS-in options: sync by external signal 1243*53ee8cc1Swenshuai.xi /// @param bParallel \b IN: TS-in is parallel interface or serial interface 1244*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1245*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1246*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1247*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_FlowSet(DMX_FLOW DmxFlow, DMX_FLOW_INPUT DmxFlowInput, MS_BOOL bClkInv, MS_BOOL bExtSync, MS_BOOL bParallel); 1248*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1249*53ee8cc1Swenshuai.xi /// Setting PVR flow. 1250*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1251*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR Engine ID 1252*53ee8cc1Swenshuai.xi /// @param ePvrSrcTSIf \b IN: Select the record source 1253*53ee8cc1Swenshuai.xi /// @param bDscmbRec \b IN: TRUE for recording dscmbled stream; FALSE for recording orignal stream 1254*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1255*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1256*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1257*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PVR_FlowSet(DMX_PVR_ENG Eng, DMX_TSIF ePvrSrcTSIf, MS_BOOL bDscmbRec); 1258*53ee8cc1Swenshuai.xi 1259*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1260*53ee8cc1Swenshuai.xi /// Get Demux Flow setting. 1261*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1262*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1263*53ee8cc1Swenshuai.xi /// @param pDmxFlowInput \b OUT: pointer to store DMX input flow value. 1264*53ee8cc1Swenshuai.xi /// @param pbClkInv \b OUT: pointer to store clock phase inversion 1265*53ee8cc1Swenshuai.xi /// @param pbExtSync \b OUT: pointer to store sync by external signal 1266*53ee8cc1Swenshuai.xi /// @param pbParallel \b OUT: pointer to store parallel interface or serial interface 1267*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1268*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1269*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1270*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_FlowInput_Status(DMX_FLOW DmxFlow, DMX_FLOW_INPUT *pDmxFlowInput, MS_BOOL *pbClkInv, MS_BOOL *pbExtSync, MS_BOOL *pbParallel); 1271*53ee8cc1Swenshuai.xi 1272*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1273*53ee8cc1Swenshuai.xi /// Enable Demux flow path. 1274*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1275*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1276*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE: enable, FALSE: disable 1277*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1278*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1279*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1280*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_FlowEnable(DMX_FLOW DmxFlow, MS_BOOL bEnable); 1281*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1282*53ee8cc1Swenshuai.xi /// Set/Get DScmbler engine id depend on TSIF path 1283*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1284*53ee8cc1Swenshuai.xi /// @param eTsIf \b IN: TSP flow path (interface) 1285*53ee8cc1Swenshuai.xi /// @param pu32EngId \b IN/OUT: pointer to store dscmb engine id 1286*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE:Set dscmb engine id ; FALSE: Get dscmb engine id 1287*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1288*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1289*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1290*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Flow_DscmbEng(DMX_TSIF eTsIf, MS_U32* pu32EngId, MS_BOOL bSet); 1291*53ee8cc1Swenshuai.xi 1292*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1293*53ee8cc1Swenshuai.xi /// Configure TS output pad. 1294*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1295*53ee8cc1Swenshuai.xi /// @param eOutPad \b IN: Select output pad 1296*53ee8cc1Swenshuai.xi /// @param eInSrcPad \b IN: Select input source pad 1297*53ee8cc1Swenshuai.xi /// @param bInParallel \b IN: TRUE: input source is paralleled; FALSE: input source is serial in 1298*53ee8cc1Swenshuai.xi /// @param u32ResvNum \b IN: Reserved value of the number of reserved parameters for future using 1299*53ee8cc1Swenshuai.xi /// @param pu32vRes \b IN: Reserved pointer to store parameters for future using 1300*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1301*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1302*53ee8cc1Swenshuai.xi /// @note Only EXT_PAD1 and EXT_PAD3 has output mode 1303*53ee8cc1Swenshuai.xi /// @note If output from S2P mode, input source should be external input pad only 1304*53ee8cc1Swenshuai.xi /// @note If output from TSO mode, eInputPad should be E_DRVTSP_PAD_TSO 1305*53ee8cc1Swenshuai.xi /// @note If input source is internal demod, output mode can be demod out or TSO out 1306*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1307*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TsOutputPadCfg(DMX_FLOW_OUTPUT_PAD eOutPad, DMX_FLOW_INPUT eInSrcPad, MS_BOOL bInParallel, MS_U32 u32ResvNum, MS_U32 *pu32Resv); 1308*53ee8cc1Swenshuai.xi 1309*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------/// Configure output pad 1310*53ee8cc1Swenshuai.xi /// Set S2P output clock phase and invert. 1311*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1312*53ee8cc1Swenshuai.xi /// @param u16Val \b IN: Value of phase 1313*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable phase tuning 1314*53ee8cc1Swenshuai.xi /// @param u32Reserved \b IN: Reserved for future using 1315*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1316*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1317*53ee8cc1Swenshuai.xi /// @note Configure for S2P mode 1318*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1319*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TsS2POutputClkPhase(MS_U16 u16Val, MS_BOOL bEnable, MS_U32 u32S2pOpt); 1320*53ee8cc1Swenshuai.xi 1321*53ee8cc1Swenshuai.xi //----------------- 1322*53ee8cc1Swenshuai.xi // TSP_STC 1323*53ee8cc1Swenshuai.xi //----------------- 1324*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1325*53ee8cc1Swenshuai.xi /// Enable/Disable STC64 bit mode. 1326*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1327*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable STC64 mode 1328*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1329*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1330*53ee8cc1Swenshuai.xi /// @note This is also set by TSP init function. 1331*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1332*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_STC64_Mode_Enable(MS_BOOL bEnable); 1333*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1334*53ee8cc1Swenshuai.xi /// Get STC counter. 1335*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1336*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1337*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1338*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1339*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1340*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1341*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Get(MS_U32* pu32Stc32, MS_U32* pu32Stc); 1342*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1343*53ee8cc1Swenshuai.xi /// Set STC counter. 1344*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1345*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1346*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1347*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1348*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1349*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1350*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Set(MS_U32 u32Stc32, MS_U32 u32Stc); 1351*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1352*53ee8cc1Swenshuai.xi /// Get PCR value. 1353*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1354*53ee8cc1Swenshuai.xi /// @param pu32Pcr32 \b OUT: PCR counter (bit 32) 1355*53ee8cc1Swenshuai.xi /// @param pu32Pcr \b OUT: PCR counter (bit 31 to bit 0) 1356*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1357*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1358*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1359*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pcr_Get(MS_U32* pu32Pcr32, MS_U32* pu32Pcr); 1360*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1361*53ee8cc1Swenshuai.xi /// Select STC Engine. 1362*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1363*53ee8cc1Swenshuai.xi /// @param eFltSrc \b IN: Fliter Source type and Filter source ID 1364*53ee8cc1Swenshuai.xi /// @param u32StcEng \b IN: STC engine ID (0, 1) 1365*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1366*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1367*53ee8cc1Swenshuai.xi /// @note Only support in driver version 3.0. 1368*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1369*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Stc_Select(DMX_FILTER_TYPE eFltSrc, MS_U32 u32StcEng); 1370*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1371*53ee8cc1Swenshuai.xi /// Get STC counter. 1372*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1373*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1374*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1375*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1376*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1377*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1378*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1379*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Eng_Get(MS_U8 u8Eng, MS_U32* pu32Stc32, MS_U32* pu32Stc); 1380*53ee8cc1Swenshuai.xi 1381*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1382*53ee8cc1Swenshuai.xi /// Set STC counter. 1383*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1384*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1385*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1386*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1387*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1388*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1389*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1390*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Eng_Set(MS_U8 u8Eng, MS_U32 u32Stc32, MS_U32 u32Stc); 1391*53ee8cc1Swenshuai.xi 1392*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1393*53ee8cc1Swenshuai.xi /// Get PCR. 1394*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1395*53ee8cc1Swenshuai.xi /// @param u32PcrEng \b INPUT: PCR Eng 1396*53ee8cc1Swenshuai.xi /// @param pu32Pcr32 \b OUT: PCR counter (bit 32) 1397*53ee8cc1Swenshuai.xi /// @param pu32Pcr \b OUT: PCR counter (bit 31 to bit 0) 1398*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1399*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1400*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1401*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pcr_Eng_Get(MS_U8 u8PcrEng, MS_U32* pu32Pcr32, MS_U32* pu32Pcr); 1402*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1403*53ee8cc1Swenshuai.xi /// Set STC control. 1404*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1405*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1406*53ee8cc1Swenshuai.xi /// @param eMode \b IN: STC update control options 1407*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1408*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1409*53ee8cc1Swenshuai.xi /// @note eMode: 0x00 -> Update STC by TSP FW 1410*53ee8cc1Swenshuai.xi /// @note 0x01 -> Update STC by HK 1411*53ee8cc1Swenshuai.xi /// @note 0x02 -> Update STC Once when PCR reset 1412*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1413*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_STC_UpdateCtrl(MS_U8 u8Eng, eStcUpdateCtrlMode eMode); 1414*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1415*53ee8cc1Swenshuai.xi /// Add or subtract STC Offset. 1416*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1417*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1418*53ee8cc1Swenshuai.xi /// @param u32Offset \b IN: STC offset value 1419*53ee8cc1Swenshuai.xi /// @param bAdd \b IN: If TRUE, add the offset value; otherwise subtract the offset value 1420*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1421*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1422*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1423*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Stc_Eng_SetOffset(MS_U32 u32Eng, MS_U32 u32Offset, MS_BOOL bAdd); 1424*53ee8cc1Swenshuai.xi 1425*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1426*53ee8cc1Swenshuai.xi /// Adjust STC Clock. 1427*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1428*53ee8cc1Swenshuai.xi /// @param u32EngId \b IN: STC Engine ID 1429*53ee8cc1Swenshuai.xi /// @param bUpClk \b IN: If TRUE, Clk will be faster, and if FALSE, Clk will be slower 1430*53ee8cc1Swenshuai.xi /// @param u32Percentage \b IN: The percentage of STC clock ratio 1431*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1432*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1433*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1434*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Clk_Adjust(MS_U32 u32EngId, MS_BOOL bUpClk, MS_U32 u32Percentage); 1435*53ee8cc1Swenshuai.xi 1436*53ee8cc1Swenshuai.xi //----------------- 1437*53ee8cc1Swenshuai.xi // TSP_Filter 1438*53ee8cc1Swenshuai.xi //----------------- 1439*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1440*53ee8cc1Swenshuai.xi /// Open a demux filter. 1441*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1442*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: The filter information to allocate 1443*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The available demux filer index 1444*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1445*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1446*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1447*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Open(DMX_FILTER_TYPE DmxFltType, MS_U8* pu8DmxId); 1448*53ee8cc1Swenshuai.xi 1449*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1450*53ee8cc1Swenshuai.xi /// Close a demux filter. 1451*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1452*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index to free 1453*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1454*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1455*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1456*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Close(MS_U8 u8DmxId); 1457*53ee8cc1Swenshuai.xi 1458*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1459*53ee8cc1Swenshuai.xi /// Activate a demux filter. 1460*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1461*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index to activate 1462*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1463*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1464*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1465*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Start(MS_U8 u8DmxId); 1466*53ee8cc1Swenshuai.xi 1467*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1468*53ee8cc1Swenshuai.xi /// Deactivate a demux filter. 1469*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1470*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index to deactivate 1471*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1472*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1473*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1474*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stop(MS_U8 u8DmxId); 1475*53ee8cc1Swenshuai.xi 1476*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1477*53ee8cc1Swenshuai.xi /// Get a demux filter information. 1478*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1479*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index 1480*53ee8cc1Swenshuai.xi /// @param pDmxFltInfo \b IN/OUT: the demux filer info 1481*53ee8cc1Swenshuai.xi /// @param pDmxFltType \b IN/OUT: the demux filer type 1482*53ee8cc1Swenshuai.xi /// @param bSet \b IN: set/get 1483*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1484*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1485*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1486*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Info(MS_U8 u8DmxId, DMX_Flt_info* pDmxFltInfo, DMX_FILTER_TYPE* pDmxFltType, MS_BOOL bSet); 1487*53ee8cc1Swenshuai.xi 1488*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1489*53ee8cc1Swenshuai.xi /// Set a demux filter PID. 1490*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1491*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index 1492*53ee8cc1Swenshuai.xi /// @param pu16Pid \b IN/OUT: PID 1493*53ee8cc1Swenshuai.xi /// @param bSet \b IN: set/get 1494*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1495*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1496*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1497*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pid(MS_U8 u8DmxId, MS_U16* pu16Pid, MS_BOOL bSet); 1498*53ee8cc1Swenshuai.xi 1499*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1500*53ee8cc1Swenshuai.xi /// Get a demux filter status. 1501*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1502*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer index 1503*53ee8cc1Swenshuai.xi /// @param pbEnable \b OUT: the demux filer enable/disable 1504*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1505*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1506*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1507*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_IsStart(MS_U8 u8DmxId, MS_BOOL* pbEnable); 1508*53ee8cc1Swenshuai.xi 1509*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1510*53ee8cc1Swenshuai.xi /// Copy section data to assigned buffer 1511*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1512*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: demux ID 1513*53ee8cc1Swenshuai.xi /// @param pu8Buf \b OUT: section buffer address 1514*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: section buffer size 1515*53ee8cc1Swenshuai.xi /// @param pu32ActualSize \b IN: section data size 1516*53ee8cc1Swenshuai.xi /// @param pu32RmnSize \b OUT: section buffer remainning data size 1517*53ee8cc1Swenshuai.xi /// @param pfCheckCB \b IN: callback function to check data correct or not 1518*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1519*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1520*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1521*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_CopyData(MS_U8 u8DmxId, MS_U8* pu8Buf, MS_U32 u32BufSize, MS_U32* pu32ActualSize, MS_U32* pu32RmnSize, DMX_CheckCb pfCheckCB); 1522*53ee8cc1Swenshuai.xi 1523*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1524*53ee8cc1Swenshuai.xi /// Ask demuxer to process section/pvr data for Non-OS driver. 1525*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1526*53ee8cc1Swenshuai.xi /// @param u32FltId \b IN: Which filter id to process. 0xFFFFFFFF means process all filters 1527*53ee8cc1Swenshuai.xi /// @param u32Timeout \b IN: Max time for TSP to process 1528*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1529*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1530*53ee8cc1Swenshuai.xi /// @note Calling this function in OS environment causes nothing 1531*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1532*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Proc(MS_U8 u8DmxId, DMX_EVENT* pEvent); 1533*53ee8cc1Swenshuai.xi 1534*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1535*53ee8cc1Swenshuai.xi /// Change DMX filter source type. 1536*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1537*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: DMX filter ID 1538*53ee8cc1Swenshuai.xi /// @param DmxFltSrcType \b IN: DMX filter Source Type and filter source id 1539*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1540*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1541*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1542*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Change_FilterSource(MS_U8 u8DmxId, DMX_FILTER_TYPE DmxFltSrcType); 1543*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1544*53ee8cc1Swenshuai.xi ///MApi_DMX_FilterFlowSwitch : Switch filter source from one channel to another. 1545*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1546*53ee8cc1Swenshuai.xi /// @param TgtFlow \b IN: chagne to this path setting 1547*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1548*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1549*53ee8cc1Swenshuai.xi /// @note TSP 1.0: 1550*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_LIVE 1551*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS1 1552*53ee8cc1Swenshuai.xi /// @note TSP 2.0: 1553*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PLAYBACK 1554*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PVR0 1555*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PVR1 1556*53ee8cc1Swenshuai.xi /// @note TSP 4.0: 1557*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_LIVE 1558*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_FILE 1559*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS1 1560*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS2 1561*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS3 1562*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1563*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_LiveSrcSwitch(DMX_FILTER_TYPE TgtFlow); 1564*53ee8cc1Swenshuai.xi /// Get demux filter owner. 1565*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1566*53ee8cc1Swenshuai.xi /// @param u8DmxIdStart \b IN: Demux filter index 1567*53ee8cc1Swenshuai.xi /// @param bOwner \b OUT: Pointer to store return value of owner flag 1568*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1569*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1570*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1571*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_GetOwner(MS_U8 u8DmxId, MS_BOOL* pbOwner); //OBSOLETE 1572*53ee8cc1Swenshuai.xi //----------------- 1573*53ee8cc1Swenshuai.xi // TSP_SCMB 1574*53ee8cc1Swenshuai.xi //----------------- 1575*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1576*53ee8cc1Swenshuai.xi /// Get PID filter scramble status. 1577*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 1578*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN : Filter source 1579*53ee8cc1Swenshuai.xi /// @param u32FltGroupId \b IN : Pid filter group id, every 32 filter for 1 group. 0: filter 0~31, 1: 32~63, 2: 64~95, 3: 96~127 1580*53ee8cc1Swenshuai.xi /// @param PidFltId \b IN : Pid filter id for getting. If 0xFFFFFFFF, means getting the status of all filters of the same group 1581*53ee8cc1Swenshuai.xi /// @param pu32ScmbSts \b OUT : The scrmabling status of pid filter. 1582*53ee8cc1Swenshuai.xi /// @return TSP_Result 1583*53ee8cc1Swenshuai.xi /// @note pu32ScmbSts: If getting all group status, every bit means one status of every filter. 1584*53ee8cc1Swenshuai.xi /// @note If only checking one filter, 1 means scrambled status and 0 means non-scrambled status. 1585*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1586*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_FltScmbSts(DMX_FILTER_TYPE FltSrc, MS_U32 u32FltGroupId, MS_U32 PidFltId, MS_U32 *pu32ScmbSts); 1587*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1588*53ee8cc1Swenshuai.xi /// Get the PES scrambling control status. 1589*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 1590*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer Id 1591*53ee8cc1Swenshuai.xi /// @param pu8scmb \b OUT: the PES scrambling status. bit 0~ bit3, Every bit indicates one status of one packet. bit4 ~ bit7, packet count 1592*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1593*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1594*53ee8cc1Swenshuai.xi /// @note Must open and start filter with DMX_FILTER_TYPE_PACKET type and DMX_SECT_MODE_PESSCMCHK mode 1595*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1596*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_PesScmbSts(MS_U8 u8DmxId, MS_U8* pu8scmb); 1597*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1598*53ee8cc1Swenshuai.xi /// Get the TS scrambling control status. 1599*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 1600*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the demux filer Id 1601*53ee8cc1Swenshuai.xi /// @param pu8ScmSts \b OUT: TS scrambling status. bit 0~ bit3, Every bit indicates one status of one packet. bit4 ~ bit7, packet count 1602*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1603*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1604*53ee8cc1Swenshuai.xi /// @note Must open and start filter with DMX_FILTER_TYPE_PACKET type and DMX_SECT_MODE_PESSCMCHK mode 1605*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1606*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_TsScmbSts(MS_U8 u8DmxId, MS_U8* pu8ScmSts); 1607*53ee8cc1Swenshuai.xi 1608*53ee8cc1Swenshuai.xi //----------------- 1609*53ee8cc1Swenshuai.xi // TSP_STB 1610*53ee8cc1Swenshuai.xi //----------------- 1611*53ee8cc1Swenshuai.xi // ---------------- [NOTE] API for TSP Ver2.0 HW architecture.------------- 1612*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1613*53ee8cc1Swenshuai.xi /// Open a demux filter and attach to a existed filter and buffer 1614*53ee8cc1Swenshuai.xi /// @ingroup TSP_STB 1615*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: the filter information to allocate 1616*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: the available demux filer Id 1617*53ee8cc1Swenshuai.xi /// @param u8TargetDmxId \b IN: the target demux filer Id 1618*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1619*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1620*53ee8cc1Swenshuai.xi /// @note Only use on TSP 2.0 (STB) 1621*53ee8cc1Swenshuai.xi /// @note API for U4 TSP N filter to 1 Buffer HW architecture. 1622*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1623*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Open_MultiFlt( DMX_FILTER_TYPE DmxFltType , MS_U8* pu8DmxId, MS_U8 u8TargetDmxId); 1624*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1625*53ee8cc1Swenshuai.xi /// Enable drop section filter packet. 1626*53ee8cc1Swenshuai.xi /// @ingroup TSP_STB 1627*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable, FALSE: disable 1628*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1629*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1630*53ee8cc1Swenshuai.xi /// @note Only use on TSP 2.0 (STB) 1631*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1632*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Drop_Enable(MS_BOOL bSet); 1633*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------- 1634*53ee8cc1Swenshuai.xi 1635*53ee8cc1Swenshuai.xi //----------------- 1636*53ee8cc1Swenshuai.xi // TSP_SecFilter 1637*53ee8cc1Swenshuai.xi //----------------- 1638*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1639*53ee8cc1Swenshuai.xi /// Reset demux filer buffer. 1640*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1641*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1642*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1643*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1644*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1645*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReset(MS_U8 u8DmxId); 1646*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1647*53ee8cc1Swenshuai.xi /// Set the read pointer of demux filer buffer. 1648*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1649*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1650*53ee8cc1Swenshuai.xi /// @param Read \b IN: the read pointer to be set 1651*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1652*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1653*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1654*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReadSet(MS_U8 u8DmxId, MS_PHY Read); 1655*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1656*53ee8cc1Swenshuai.xi /// Get the read pointer of demux filer buffer. 1657*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1658*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1659*53ee8cc1Swenshuai.xi /// @param pRead \b OUT: the pointer to store the obtained read pointer 1660*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1661*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1662*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1663*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReadGet(MS_U8 u8DmxId, MS_PHY* pRead); 1664*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1665*53ee8cc1Swenshuai.xi /// Get the write pointer of demux filer buffer. 1666*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1667*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1668*53ee8cc1Swenshuai.xi /// @param pWrite \b OUT: the pointer to store the obtained write pointer 1669*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1670*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1671*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1672*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectWriteGet(MS_U8 u8DmxId, MS_PHY* pWrite); 1673*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1674*53ee8cc1Swenshuai.xi /// Get the start pointer of demux filer buffer. 1675*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1676*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1677*53ee8cc1Swenshuai.xi /// @param pStart \b OUT: the pointer to store the obtained start pointer 1678*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1679*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1680*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1681*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectStartGet(MS_U8 u8DmxId, MS_PHY* pStart); 1682*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1683*53ee8cc1Swenshuai.xi /// Get the end pointer of demux filer buffer. 1684*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1685*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1686*53ee8cc1Swenshuai.xi /// @param pEnd \b OUT: the pointer to store the obtained end pointer 1687*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1688*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1689*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1690*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectEndGet(MS_U8 u8DmxId, MS_PHY* pEnd); 1691*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1692*53ee8cc1Swenshuai.xi /// Set demux filer match patterns. 1693*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 1694*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1695*53ee8cc1Swenshuai.xi /// @param pPattern \b IN: the match patterns 1696*53ee8cc1Swenshuai.xi /// @param pMask \b IN: the bit mask for match patterns 1697*53ee8cc1Swenshuai.xi /// @param pu8NotMask \b IN: the bit mask for negative match patterns 1698*53ee8cc1Swenshuai.xi /// @param MatchSize \b IN: the size in bytes for match patterns. 1699*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1700*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1701*53ee8cc1Swenshuai.xi /// @note The match pattern size is 16 bytes 1702*53ee8cc1Swenshuai.xi /// @note match mask -- must set 1 to be compare (customer request) 1703*53ee8cc1Swenshuai.xi /// @note not match mask -- must set 1 to compare 1704*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1705*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectPatternSet(MS_U8 u8DmxId, MS_U8* pPattern, MS_U8* pMask, MS_U8 *pu8NotMask, MS_U32 MatchSize); 1706*53ee8cc1Swenshuai.xi 1707*53ee8cc1Swenshuai.xi //----------------- 1708*53ee8cc1Swenshuai.xi // TSP_TTX 1709*53ee8cc1Swenshuai.xi //----------------- 1710*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1711*53ee8cc1Swenshuai.xi /// Get Teltext section buffer write address. 1712*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 1713*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: the target demux filer index 1714*53ee8cc1Swenshuai.xi /// @param pWrite \b OUT: the pointer to store the obtained write pointer 1715*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1716*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1717*53ee8cc1Swenshuai.xi /// @note Special case for TTX due to it can't use HW lock to do indirect read/write. (co-processer) 1718*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1719*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_TTX_WriteGet(MS_U8 u8DmxId, MS_PHY* pWrite); 1720*53ee8cc1Swenshuai.xi 1721*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1722*53ee8cc1Swenshuai.xi /// Check can access TSP or not due to different CPU co-process. (HK and AEON) 1723*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 1724*53ee8cc1Swenshuai.xi /// @param u32Try \b IN: TRUE: check, FALSE: not check 1725*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1726*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1727*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1728*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_GetAccess(MS_U32 u32Try); //OBSOLETE 1729*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1730*53ee8cc1Swenshuai.xi /// Unlock HW semaphore. 1731*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 1732*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1733*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1734*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1735*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_ReleaseAccess(void); //OBSOLETE 1736*53ee8cc1Swenshuai.xi 1737*53ee8cc1Swenshuai.xi //----------------- 1738*53ee8cc1Swenshuai.xi // TSP_FIFO 1739*53ee8cc1Swenshuai.xi //----------------- 1740*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1741*53ee8cc1Swenshuai.xi /// Reset AVFIFO. 1742*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 1743*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 1744*53ee8cc1Swenshuai.xi /// @param bReset \b IN: section buffer size 1745*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1746*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1747*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1748*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AVFifo_Reset(DMX_FILTER_TYPE DmxFltType, MS_BOOL bFlush); 1749*53ee8cc1Swenshuai.xi 1750*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1751*53ee8cc1Swenshuai.xi /// Get AVFIFO status (Level). 1752*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 1753*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 1754*53ee8cc1Swenshuai.xi /// @param u32FifoLevel \b OUT: fifo level 1755*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1756*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1757*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1758*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AVFifo_Status(DMX_FILTER_TYPE DmxFltType, DMX_FIFO_STATUS* u32FifoLevel); 1759*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1760*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V packets. 1761*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1762*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 1763*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1764*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1765*53ee8cc1Swenshuai.xi /// @note It will apply to all FIFO. 1766*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1767*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_RemoveDupAVPkt(MS_BOOL bEnable); 1768*53ee8cc1Swenshuai.xi 1769*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1770*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V Fifo packets. 1771*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 1772*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 1773*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 1774*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1775*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1776*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1777*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_RemoveDupAVFifoPkt(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable); 1778*53ee8cc1Swenshuai.xi 1779*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1780*53ee8cc1Swenshuai.xi /// Enable/Disable Audio AB S 1781*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 1782*53ee8cc1Swenshuai.xi ///@param bEnable \b IN: Enable/Disable 1783*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1784*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1785*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1786*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_AU_BD_Mode_Enable(MS_BOOL bEnable); 1787*53ee8cc1Swenshuai.xi 1788*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1789*53ee8cc1Swenshuai.xi /// Enable/Disable AV FIFO block mechanism. 1790*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 1791*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 1792*53ee8cc1Swenshuai.xi /// @param bEnable \b OUT: TRUR: Enable block mechanism, FALSE: Disable block mechanism 1793*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1794*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1795*53ee8cc1Swenshuai.xi /// @note Not supprot for all chips 1796*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1797*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_AVFifo_BlockEnable(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable); 1798*53ee8cc1Swenshuai.xi 1799*53ee8cc1Swenshuai.xi // PVR Record API (Old) 1800*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1801*53ee8cc1Swenshuai.xi /// Set up the recording parameters. 1802*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1803*53ee8cc1Swenshuai.xi /// @param pInfo \b IN: the recording parameters 1804*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1805*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1806*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1807*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1808*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Open(DMX_Pvr_info* pPvrInfo); 1809*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1810*53ee8cc1Swenshuai.xi /// Clear the recording parameters. 1811*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1812*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1813*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1814*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1815*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1816*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Close(void); 1817*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1818*53ee8cc1Swenshuai.xi /// Pause/Resume PVR engine. 1819*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1820*53ee8cc1Swenshuai.xi /// @param bPause \b IN: TRUE: pause, FALSE: resume 1821*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1822*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1823*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1824*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1825*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Pause(MS_BOOL bPause); 1826*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1827*53ee8cc1Swenshuai.xi /// Set the PID to be recorded. 1828*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1829*53ee8cc1Swenshuai.xi /// @param Pid \b IN: The target PID to be recorded 1830*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this recorded PID 1831*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1832*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1833*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1834*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1835*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Pid_Open(MS_U32 Pid, MS_U8* pu8DmxId); 1836*53ee8cc1Swenshuai.xi 1837*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1838*53ee8cc1Swenshuai.xi /// Free the PID to be recorded. 1839*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1840*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 1841*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1842*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1843*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1844*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1845*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Pid_Close(MS_U8 u8DmxId); 1846*53ee8cc1Swenshuai.xi 1847*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1848*53ee8cc1Swenshuai.xi /// Start to record. 1849*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1850*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: TRUE to record original bit stream, FALSE to recording the PIDs of interests 1851*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1852*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1853*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1854*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1855*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Start(MS_BOOL bPvrAll); 1856*53ee8cc1Swenshuai.xi 1857*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1858*53ee8cc1Swenshuai.xi /// Stop recording. 1859*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1860*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1861*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1862*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1863*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1864*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Stop(void); 1865*53ee8cc1Swenshuai.xi 1866*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1867*53ee8cc1Swenshuai.xi /// Get write pointer of recording buffer. 1868*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1869*53ee8cc1Swenshuai.xi /// @param pphyWrite \b OUT: the pointer to store the obtained write pointer 1870*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1871*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1872*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1873*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1874*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_WriteGet(MS_PHY* pphyWrite); 1875*53ee8cc1Swenshuai.xi 1876*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1877*53ee8cc1Swenshuai.xi /// Set recording packet mode. 1878*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1879*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable 192 mode, FALSE: disable 192 mode 1880*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1881*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1882*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1883*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1884*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PVR_SetPacketMode(MS_BOOL bSet); 1885*53ee8cc1Swenshuai.xi 1886*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1887*53ee8cc1Swenshuai.xi /// Set recording starting time stamp. 1888*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1889*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: Record time-stamp (LPCR) 1890*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1891*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1892*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1893*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1894*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_SetRecordStamp(MS_U32 u32Stamp); 1895*53ee8cc1Swenshuai.xi 1896*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1897*53ee8cc1Swenshuai.xi /// Get current recording time stamp. 1898*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1899*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: the pointer to store the obtained record time-stamp (LPCR) 1900*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1901*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1902*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1903*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1904*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_GetRecordStamp(MS_U32* pu32Stamp); 1905*53ee8cc1Swenshuai.xi 1906*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1907*53ee8cc1Swenshuai.xi /// Enable MOBF encrypt. 1908*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1909*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: PVR MOBF Enable/Disable 1910*53ee8cc1Swenshuai.xi /// @param u32key0 \b IN: MOBF encrypt key0 1911*53ee8cc1Swenshuai.xi /// @param u32key1 \b IN: MOBF encrypt key1 1912*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1913*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1914*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 1915*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1916*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1); 1917*53ee8cc1Swenshuai.xi 1918*53ee8cc1Swenshuai.xi //PVR Playback API (Old) 1919*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1920*53ee8cc1Swenshuai.xi /// Set playback time stamp. 1921*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 1922*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: time stamp 1923*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1924*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1925*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1926*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_SetPlaybackStamp(MS_U32 u32Stamp); 1927*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1928*53ee8cc1Swenshuai.xi /// Get playback time stamp 1929*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 1930*53ee8cc1Swenshuai.xi /// @param u32Stamp \b OUT: time stamp 1931*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1932*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1933*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1934*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_GetPlaybackStamp(MS_U32* pu32Stamp); 1935*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1936*53ee8cc1Swenshuai.xi /// Enable filein time stamp. (filein use 192 mode) 1937*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 1938*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1939*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1940*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_Pvr_TimeStampDisable 1941*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1942*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_TimeStampEnable(void); 1943*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1944*53ee8cc1Swenshuai.xi /// Disable filein time stamp. (filein not use 192 mode) 1945*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 1946*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1947*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1948*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_Pvr_TimeStampEnable 1949*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1950*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_TimeStampDisable(void); 1951*53ee8cc1Swenshuai.xi 1952*53ee8cc1Swenshuai.xi 1953*53ee8cc1Swenshuai.xi //----------------- 1954*53ee8cc1Swenshuai.xi // TSP_PVR_General 1955*53ee8cc1Swenshuai.xi //----------------- 1956*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1957*53ee8cc1Swenshuai.xi /// Set up the recording parameters. 1958*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 1959*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 1960*53ee8cc1Swenshuai.xi /// @param pInfo \b IN: the recording parameters 1961*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1962*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1963*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1964*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Open(DMX_PVR_ENG Eng ,DMX_Pvr_info* pPvrInfo); 1965*53ee8cc1Swenshuai.xi 1966*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1967*53ee8cc1Swenshuai.xi /// Clear the recording parameters. 1968*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 1969*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 1970*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1971*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1972*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1973*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Close(DMX_PVR_ENG Eng ); 1974*53ee8cc1Swenshuai.xi 1975*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1976*53ee8cc1Swenshuai.xi /// Pause/Resume PVR engine. 1977*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 1978*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 1979*53ee8cc1Swenshuai.xi /// @param bPause \b IN: TRUE: pause, FALSE: resume 1980*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1981*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1982*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1983*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pause(DMX_PVR_ENG Eng ,MS_BOOL bPause); 1984*53ee8cc1Swenshuai.xi 1985*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1986*53ee8cc1Swenshuai.xi /// Set the PID to be recorded. 1987*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 1988*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 1989*53ee8cc1Swenshuai.xi /// @param Pid \b IN: The target PID to be recorded 1990*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this recorded PID 1991*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1992*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1993*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1994*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid_Open(DMX_PVR_ENG Eng ,MS_U32 Pid, MS_U8* pu8DmxId); 1995*53ee8cc1Swenshuai.xi 1996*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1997*53ee8cc1Swenshuai.xi /// Free the PID to be recorded. 1998*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 1999*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2000*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 2001*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2002*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2003*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2004*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng ,MS_U8 u8DmxId); 2005*53ee8cc1Swenshuai.xi 2006*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2007*53ee8cc1Swenshuai.xi /// Start to record. 2008*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2009*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2010*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: TRUE to record original bit stream, FALSE to recording the PIDs of interests 2011*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2012*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2013*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2014*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Start(DMX_PVR_ENG Eng ,MS_BOOL bPvrAll); 2015*53ee8cc1Swenshuai.xi 2016*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2017*53ee8cc1Swenshuai.xi /// Stop recording. 2018*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2019*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2020*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2021*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2022*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2023*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Stop(DMX_PVR_ENG Eng ); 2024*53ee8cc1Swenshuai.xi 2025*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2026*53ee8cc1Swenshuai.xi /// Get write pointer of recording buffer. 2027*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2028*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2029*53ee8cc1Swenshuai.xi /// @param pphyWrite \b OUT: the pointer to store the obtained write pointer 2030*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2031*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2032*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2033*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_WriteGet(DMX_PVR_ENG Eng ,MS_PHY* pphyWrite); 2034*53ee8cc1Swenshuai.xi 2035*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2036*53ee8cc1Swenshuai.xi /// Set recording packet mode. 2037*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2038*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2039*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable 192 mode, FALSE: disable 192 mode 2040*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2041*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2042*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2043*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetPacketMode(DMX_PVR_ENG Eng ,MS_BOOL bSet); 2044*53ee8cc1Swenshuai.xi 2045*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2046*53ee8cc1Swenshuai.xi /// Set recording starting time stamp. 2047*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2048*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2049*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: Record time-stamp (LPCR) 2050*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2051*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2052*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2053*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetRecordStamp(DMX_PVR_ENG Eng ,MS_U32 u32Stamp); 2054*53ee8cc1Swenshuai.xi 2055*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2056*53ee8cc1Swenshuai.xi /// Get current recording time stamp. 2057*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2058*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2059*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: the pointer to store the obtained record time-stamp (LPCR) 2060*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2061*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2062*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2063*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_GetRecordStamp(DMX_PVR_ENG Eng ,MS_U32* pu32Stamp); 2064*53ee8cc1Swenshuai.xi 2065*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2066*53ee8cc1Swenshuai.xi /// Enable MOBF encrypt. 2067*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2068*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2069*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: PVR MOBF Enable/Disable 2070*53ee8cc1Swenshuai.xi /// @param u32key0 \b IN: MOBF encrypt key0 2071*53ee8cc1Swenshuai.xi /// @param u32key1 \b IN: MOBF encrypt key1 2072*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2073*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2074*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2075*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_MOBF_Enable(MS_U8 u8Eng, MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1); 2076*53ee8cc1Swenshuai.xi 2077*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2078*53ee8cc1Swenshuai.xi /// Check if PVR engine is started. 2079*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2080*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2081*53ee8cc1Swenshuai.xi /// @param pbIsStart \b OUT: Pointer to store PVR engine starting status 2082*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2083*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2084*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2085*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_IsStart(DMX_PVR_ENG Eng, MS_BOOL *pbIsStart); 2086*53ee8cc1Swenshuai.xi //----------------- 2087*53ee8cc1Swenshuai.xi // TSP_PVR_STB 2088*53ee8cc1Swenshuai.xi //----------------- 2089*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2090*53ee8cc1Swenshuai.xi /// Set/Get PVR PID filter PID. 2091*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2092*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2093*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index 2094*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID value 2095*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: set, FALSE: get 2096*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2097*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2098*53ee8cc1Swenshuai.xi /// @note Only TSP 2.0/4.0 use this function now. 2099*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2100*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid(DMX_PVR_ENG Eng ,MS_U8 u8DmxId , MS_U32 *Pid, MS_BOOL bSet); 2101*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2102*53ee8cc1Swenshuai.xi /// Set PVR time-stamp clock. 2103*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2104*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2105*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 2106*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2107*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2108*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2109*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetRecordStampClk(DMX_PVR_ENG Eng, DMX_TimeStamp_Clk eClk); 2110*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2111*53ee8cc1Swenshuai.xi /// Set RASP callback engine size. 2112*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2113*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2114*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 2115*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2116*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2117*53ee8cc1Swenshuai.xi /// @note Only TSP 2.0 use this function now. 2118*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2119*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_CallbackSize(DMX_PVR_ENG Eng, MS_U32* pu32CallbackSize, MS_BOOL bSet); 2120*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2121*53ee8cc1Swenshuai.xi ///Set PVR CA SPS enable mode 2122*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2123*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR Engine ID 2124*53ee8cc1Swenshuai.xi /// @param eCaMode \b IN: CA PVR Selection, 0: from TSP, 1: from ca program0, 2: from ca program1 2125*53ee8cc1Swenshuai.xi /// @param bspsEnable \b IN: SPS mode enabled flag 2126*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2127*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2128*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2129*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetCaMode(DMX_PVR_ENG Eng, DMX_CA_PVRMODE eCaMode, MS_BOOL bspsEnable); 2130*53ee8cc1Swenshuai.xi 2131*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2132*53ee8cc1Swenshuai.xi /// Set playback time-stamp clock. 2133*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2134*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2135*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 2136*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2137*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2138*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2139*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetPlaybackStampClk(MS_U8 u8Eng, DMX_TimeStamp_Clk eClk); 2140*53ee8cc1Swenshuai.xi 2141*53ee8cc1Swenshuai.xi //PVR CA API (Old) 2142*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2143*53ee8cc1Swenshuai.xi /// Open PVR PID filter for recording scramble stream depended on Engine ID. 2144*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2145*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID to record 2146*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b IN: Pointer to store PVR PID filter index 2147*53ee8cc1Swenshuai.xi /// @param u8ShareKeyType \b IN: PID filter share key type. 0: Not use sharekey filters. 2148*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2149*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2150*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2151*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2152*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Pid_Open(MS_U32 Pid, MS_U8* pu8DmxId); 2153*53ee8cc1Swenshuai.xi 2154*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2155*53ee8cc1Swenshuai.xi /// Close PVR PID filter depended on Engine ID. 2156*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2157*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index to close 2158*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2159*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2160*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2161*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2162*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Pid_Close(MS_U8 u8DmxId); 2163*53ee8cc1Swenshuai.xi 2164*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2165*53ee8cc1Swenshuai.xi /// Start to record scramble stream depend on engine id. 2166*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2167*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: If true, record all stream data; if false, record data by PIDs 2168*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2169*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2170*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2171*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2172*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Start(MS_BOOL bPvrAll); 2173*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2174*53ee8cc1Swenshuai.xi /// Stop to record scramble stream. 2175*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2176*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2177*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2178*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2179*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2180*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Stop(void); 2181*53ee8cc1Swenshuai.xi 2182*53ee8cc1Swenshuai.xi //----------------- 2183*53ee8cc1Swenshuai.xi // TSP_PVR_CA 2184*53ee8cc1Swenshuai.xi //----------------- 2185*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2186*53ee8cc1Swenshuai.xi /// Open PVR PID filter for recording scramble stream depended on Engine ID. 2187*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2188*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2189*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID to record 2190*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b IN: Pointer to store PVR PID filter index 2191*53ee8cc1Swenshuai.xi /// @param u8ShareKeyType \b IN: PID filter share key type. 0: Not use sharekey filters. 2192*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2193*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2194*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2195*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Pid_Open(DMX_PVR_ENG Eng, MS_U32 Pid, MS_U8* pu8DmxId, MS_U8 u8ShareKeyType); 2196*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2197*53ee8cc1Swenshuai.xi /// Close PVR PID filter depended on Engine ID. 2198*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2199*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2200*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index to close 2201*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2202*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2203*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2204*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U8 u8DmxId); 2205*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2206*53ee8cc1Swenshuai.xi /// Start to record scramble stream depend on engine id. 2207*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2208*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2209*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: If true, record all stream data; if false, record data by PIDs 2210*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2211*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2212*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2213*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll); 2214*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2215*53ee8cc1Swenshuai.xi /// Stop to record scramble stream. 2216*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2217*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2218*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2219*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2220*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2221*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Stop(DMX_PVR_ENG Eng); 2222*53ee8cc1Swenshuai.xi //--------------------------------------------- 2223*53ee8cc1Swenshuai.xi 2224*53ee8cc1Swenshuai.xi //----------------- 2225*53ee8cc1Swenshuai.xi // TSP_FILEIN_PVR 2226*53ee8cc1Swenshuai.xi //----------------- 2227*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2228*53ee8cc1Swenshuai.xi /// Open & set pid filter for file-in PVR using. 2229*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2230*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2231*53ee8cc1Swenshuai.xi /// @param Pid \b IN : PVR PID to record 2232*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: Pointer to store PID filter index 2233*53ee8cc1Swenshuai.xi /// @param u8ShareKeyType \b IN : The flag of sharekey filter using. if 0, not use sharekey filters 2234*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2235*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2236*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2237*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Pid_Open(DMX_PVR_ENG Eng, MS_U32 Pid, MS_U8* pu8DmxId, MS_U8 u8ShareKeyType); 2238*53ee8cc1Swenshuai.xi 2239*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2240*53ee8cc1Swenshuai.xi /// Close pid filter of file-in PVR. 2241*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2242*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2243*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN : PID filter id 2244*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2245*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2246*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2247*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U8 u8DmxId); 2248*53ee8cc1Swenshuai.xi 2249*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2250*53ee8cc1Swenshuai.xi /// Start file-in PVR recording. 2251*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2252*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2253*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN : FALSE is record PID, TRUE is record All ts data 2254*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2255*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2256*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2257*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll); 2258*53ee8cc1Swenshuai.xi 2259*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2260*53ee8cc1Swenshuai.xi /// Stop file-in PVR recording. 2261*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2262*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2263*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2264*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2265*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2266*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Stop(DMX_PVR_ENG Eng); 2267*53ee8cc1Swenshuai.xi //--------------------------------------------- 2268*53ee8cc1Swenshuai.xi 2269*53ee8cc1Swenshuai.xi 2270*53ee8cc1Swenshuai.xi // File-in API (Old) 2271*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2272*53ee8cc1Swenshuai.xi /// Start to get bit stream from memory. 2273*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2274*53ee8cc1Swenshuai.xi /// @param Dst \b IN: file in destination type 2275*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2276*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2277*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2278*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2279*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2280*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2281*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Start(DMX_FILEIN_DST Dst, MS_PHY pBuf, MS_U32 u32BufSize); // msAPI_DMX_PESPlayback/msAPI_DMX_TSPlayback will integrate into it 2282*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2283*53ee8cc1Swenshuai.xi /// Stop to get bit stream from memeory. 2284*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2285*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2286*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2287*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2288*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2289*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Stop(void); 2290*53ee8cc1Swenshuai.xi 2291*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2292*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 2293*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2294*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2295*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2296*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2297*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2298*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2299*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Info(DMX_Filein_info *pFileinInfo); 2300*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2301*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2302*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2303*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2304*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2305*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2306*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2307*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Pause(void); 2308*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2309*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2310*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2311*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2312*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2313*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2314*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2315*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Resume(void); 2316*53ee8cc1Swenshuai.xi 2317*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2318*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going. 2319*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2320*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2321*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2322*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2323*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2324*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsIdle(void); 2325*53ee8cc1Swenshuai.xi 2326*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2327*53ee8cc1Swenshuai.xi /// Check if memory transfer is under going. 2328*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2329*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2330*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2331*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2332*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2333*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsBusy(void); 2334*53ee8cc1Swenshuai.xi 2335*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2336*53ee8cc1Swenshuai.xi /// Check if memory transfer is paused. 2337*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2338*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2339*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2340*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2341*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2342*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsPause(void); 2343*53ee8cc1Swenshuai.xi 2344*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2345*53ee8cc1Swenshuai.xi /// Reset CMDQ. 2346*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2347*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2348*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2349*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2350*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2351*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_Reset(void); 2352*53ee8cc1Swenshuai.xi 2353*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2354*53ee8cc1Swenshuai.xi /// Get the number of CMDQ empty slot. 2355*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2356*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: empty slot number 2357*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2358*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2359*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2360*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2361*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_GetEmptyNum(MS_U32 *pu32EmptySlot); 2362*53ee8cc1Swenshuai.xi 2363*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2364*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 2365*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2366*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2367*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2368*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2369*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2370*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2371*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_FIFOWriteLevel(MS_U8 *pu8CmdQStatus); 2372*53ee8cc1Swenshuai.xi 2373*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2374*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 2375*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2376*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: TRUE: bypass file-in timestamp, FALSE: not bypass 2377*53ee8cc1Swenshuai.xi /// @return None 2378*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2379*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2380*53ee8cc1Swenshuai.xi void MApi_DMX_BypassFileInTimeStamp(MS_BOOL bbypass); 2381*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2382*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 2383*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2384*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2385*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2386*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2387*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2388*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2389*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_FIFOWriteLevel(MS_U8 *pu8CmdQStatus); 2390*53ee8cc1Swenshuai.xi 2391*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2392*53ee8cc1Swenshuai.xi /// Get filein time stamp. (Current time stamp from TS packet). It is used on 192 packet mode. 2393*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2394*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer to store time-stamp value 2395*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2396*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2397*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2398*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2399*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetFileInTimeStamp(MS_U32 *pu32FileInTS); 2400*53ee8cc1Swenshuai.xi 2401*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2402*53ee8cc1Swenshuai.xi /// Get playback read address. 2403*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2404*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: pointer to store read address 2405*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2406*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2407*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2408*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2409*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_GetReadAddr(MS_PHY* pphyRead); 2410*53ee8cc1Swenshuai.xi 2411*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2412*53ee8cc1Swenshuai.xi /// Enable MOBF decrypt key. 2413*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2414*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: File-in MOBF Enable/Disable 2415*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF dyncrypt u32key 2416*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2417*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2418*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2419*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2420*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key); 2421*53ee8cc1Swenshuai.xi 2422*53ee8cc1Swenshuai.xi //----------------- 2423*53ee8cc1Swenshuai.xi // TSP_Playback 2424*53ee8cc1Swenshuai.xi //----------------- 2425*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2426*53ee8cc1Swenshuai.xi /// Start to get bit stream from memory. 2427*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2428*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2429*53ee8cc1Swenshuai.xi /// @param Dst \b IN: file in destination type 2430*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2431*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2432*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2433*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2434*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2435*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Start(DMX_FILEIN_PATH ePath, DMX_FILEIN_DST Dst, MS_PHY pBuf, MS_U32 u32BufSize); // msAPI_DMX_PESPlayback/msAPI_DMX_TSPlayback will integrate into it 2436*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2437*53ee8cc1Swenshuai.xi /// Stop to get bit stream from memeory. 2438*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2439*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2440*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2441*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2442*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2443*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Stop(DMX_FILEIN_PATH ePath); 2444*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2445*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 2446*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2447*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2448*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2449*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2450*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2451*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2452*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Info(DMX_FILEIN_PATH ePath, DMX_Filein_info *pFileinInfo); 2453*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2454*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2455*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2456*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2457*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2458*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2459*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2460*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Pause(DMX_FILEIN_PATH ePath); 2461*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2462*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2463*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2464*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2465*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2466*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2467*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2468*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Resume(DMX_FILEIN_PATH ePath); 2469*53ee8cc1Swenshuai.xi 2470*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2471*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going. 2472*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2473*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2474*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2475*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2476*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2477*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_Eng_IsIdle(DMX_FILEIN_PATH ePath); 2478*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2479*53ee8cc1Swenshuai.xi /// Check if memory transfer is under going. 2480*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2481*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2482*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2483*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2484*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2485*53ee8cc1Swenshuai.xi // MS_BOOL MApi_DMX_Filein_Eng_IsBusy(DMX_FILEIN_PATH ePath); 2486*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2487*53ee8cc1Swenshuai.xi /// Check if memory transfer is paused. 2488*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2489*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2490*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2491*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2492*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2493*53ee8cc1Swenshuai.xi // MS_BOOL MApi_DMX_Filein_Eng_IsPause(DMX_FILEIN_PATH ePath); 2494*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2495*53ee8cc1Swenshuai.xi /// Reset CMDQ. 2496*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2497*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2498*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2499*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2500*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2501*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_Reset(DMX_FILEIN_PATH ePath); 2502*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2503*53ee8cc1Swenshuai.xi /// Get the number of CMDQ empty slot. 2504*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2505*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2506*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: empty slot number 2507*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2508*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2509*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2510*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_GetEmptyNum(DMX_FILEIN_PATH ePath, MS_U32 *pu32EmptySlot); 2511*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2512*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 2513*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2514*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2515*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: TRUE: bypass file-in timestamp, FALSE: not bypass 2516*53ee8cc1Swenshuai.xi /// @return None 2517*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2518*53ee8cc1Swenshuai.xi void MApi_DMX_Filein_Eng_BypassFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_BOOL bbypass); 2519*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2520*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 2521*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2522*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2523*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2524*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2525*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2526*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2527*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_FIFOWriteLevel(DMX_FILEIN_PATH ePath, MS_U8 *pu8CmdQStatus); 2528*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2529*53ee8cc1Swenshuai.xi /// Get filein time stamp. (Current time stamp from TS packet). It is used on 192 packet mode. 2530*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2531*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2532*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer to store time-stamp value 2533*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2534*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2535*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2536*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_U32 *pu32FileInTS); 2537*53ee8cc1Swenshuai.xi 2538*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2539*53ee8cc1Swenshuai.xi /// Get playback read address. 2540*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2541*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2542*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: pointer to store read address 2543*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2544*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2545*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2546*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetReadAddr(DMX_FILEIN_PATH ePath, MS_PHY* pphyRead); 2547*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2548*53ee8cc1Swenshuai.xi /// Enable MOBF decrypt key. 2549*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2550*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2551*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: File-in MOBF Enable/Disable 2552*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF dyncrypt u32key 2553*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2554*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2555*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2556*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Filein_Eng_MOBF_Enable(DMX_FILEIN_PATH ePath, MS_BOOL bEnable, MS_U32 u32key); 2557*53ee8cc1Swenshuai.xi 2558*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2559*53ee8cc1Swenshuai.xi /// Enable FileEng Playback time stamp. 2560*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2561*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2562*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2563*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2564*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2565*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_PlaybackTimeStampEnable(DMX_FILEIN_PATH ePath); 2566*53ee8cc1Swenshuai.xi 2567*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2568*53ee8cc1Swenshuai.xi /// Disable fileEng Playback time stamp. 2569*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2570*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2571*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2572*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2573*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2574*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_PlaybackTimeStampDisable(DMX_FILEIN_PATH ePath); 2575*53ee8cc1Swenshuai.xi 2576*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2577*53ee8cc1Swenshuai.xi /// Set playback time stamp. (LPCR) 2578*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2579*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2580*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: time-stamp value 2581*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2582*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2583*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2584*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_SetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32 u32Stamp); 2585*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2586*53ee8cc1Swenshuai.xi /// Get playback time stamp. (LPCR) 2587*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2588*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2589*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store time-stamp value 2590*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2591*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2592*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2593*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32* pu32Stamp); 2594*53ee8cc1Swenshuai.xi 2595*53ee8cc1Swenshuai.xi 2596*53ee8cc1Swenshuai.xi //------------------------------------------------------------- 2597*53ee8cc1Swenshuai.xi //MMFI & MINITSP API 2598*53ee8cc1Swenshuai.xi //----------------- 2599*53ee8cc1Swenshuai.xi // TSP_MM 2600*53ee8cc1Swenshuai.xi //----------------- 2601*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2602*53ee8cc1Swenshuai.xi /// Check mmfi engine is ilde or not. 2603*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2604*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2605*53ee8cc1Swenshuai.xi /// @return TRUE - Idle 2606*53ee8cc1Swenshuai.xi /// @return FALSE - not idle 2607*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2608*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_MMFI_Filein_IsIdle(DMX_MMFI_PATH ePath); 2609*53ee8cc1Swenshuai.xi 2610*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2611*53ee8cc1Swenshuai.xi /// Check mmfi engine is busy or not. 2612*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2613*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2614*53ee8cc1Swenshuai.xi /// @return TRUE - Busy 2615*53ee8cc1Swenshuai.xi /// @return FALSE - not busy 2616*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2617*53ee8cc1Swenshuai.xi // MS_BOOL MApi_DMX_MMFI_Filein_IsBusy(DMX_MMFI_PATH ePath); 2618*53ee8cc1Swenshuai.xi 2619*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2620*53ee8cc1Swenshuai.xi /// Reset MMFilein Command queue 2621*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2622*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2623*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2624*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2625*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2626*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_Reset(DMX_MMFI_PATH ePath); 2627*53ee8cc1Swenshuai.xi 2628*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2629*53ee8cc1Swenshuai.xi /// Get the MMFilein CMDQ empty slot number. 2630*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2631*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2632*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: Empty slot 2633*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2634*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2635*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2636*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_GetEmptyNum(DMX_MMFI_PATH ePath, MS_U32 *pu32EmptySlot); 2637*53ee8cc1Swenshuai.xi 2638*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2639*53ee8cc1Swenshuai.xi /// Start to get bit stream by memeory. 2640*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2641*53ee8cc1Swenshuai.xi /// @param eDst \b IN: file in destination path 2642*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2643*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2644*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2645*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2646*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2647*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_Start(DMX_MMFI_DST eDst, MS_PHY pBuf, MS_U32 u32BufSize); 2648*53ee8cc1Swenshuai.xi 2649*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2650*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 2651*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2652*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2653*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2654*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2655*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2656*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2657*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_Info(DMX_MMFI_PATH ePath, DMX_Filein_info *pFileinInfo); 2658*53ee8cc1Swenshuai.xi 2659*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2660*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 2661*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2662*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2663*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: If true, bypass file-in timestamp. 2664*53ee8cc1Swenshuai.xi /// @return None 2665*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2666*53ee8cc1Swenshuai.xi // void MApi_DMX_MMFI_Filein_BypassTimeStamp(DMX_MMFI_PATH ePath, MS_BOOL bbypass); 2667*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2668*53ee8cc1Swenshuai.xi /// Free the PID of MM Filein. 2669*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2670*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2671*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer for timestamp value 2672*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2673*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2674*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2675*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_GetFileInTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32FileInTS); 2676*53ee8cc1Swenshuai.xi 2677*53ee8cc1Swenshuai.xi //MMFI (MMFI Only) API 2678*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2679*53ee8cc1Swenshuai.xi /// Set the PID to be MM File-in 2680*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2681*53ee8cc1Swenshuai.xi /// @param flttype \b IN: MMFI filter type 2682*53ee8cc1Swenshuai.xi /// @param u16Pid \b IN: The target PID for MM Filein 2683*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this MMFilein PID 2684*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2685*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2686*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2687*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Pid_Open(DMX_MMFI_FLTTYPE flttype, MS_U16 u16Pid, MS_U8* pu8DmxId); 2688*53ee8cc1Swenshuai.xi 2689*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2690*53ee8cc1Swenshuai.xi /// Free the PID of MM Filein. 2691*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2692*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 2693*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2694*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2695*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2696*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Pid_Close(MS_U8 u8DmxId); 2697*53ee8cc1Swenshuai.xi 2698*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2699*53ee8cc1Swenshuai.xi /// Get MMFilein Command queue fifo level. 2700*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2701*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2702*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2703*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2704*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2705*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2706*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_FIFOWriteLevel(DMX_MMFI_PATH ePath, MS_U8 *pu8CmdQStatus); 2707*53ee8cc1Swenshuai.xi 2708*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2709*53ee8cc1Swenshuai.xi /// Set MMFI playback timestamp. 2710*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2711*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2712*53ee8cc1Swenshuai.xi /// @param u32pcr2 \b IN: LPCR2 value 2713*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2714*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2715*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2716*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_SetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 u32pcr2); 2717*53ee8cc1Swenshuai.xi 2718*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2719*53ee8cc1Swenshuai.xi /// Get MMFI Playback timestamp. 2720*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2721*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2722*53ee8cc1Swenshuai.xi /// @param pu32pcr2 \b OUT: pointer to store LCPR2 value 2723*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2724*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2725*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2726*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_GetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32pcr2); 2727*53ee8cc1Swenshuai.xi 2728*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2729*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V packets. 2730*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2731*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 2732*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2733*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2734*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2735*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_RemoveDupAVPkt(MS_BOOL bEnable); 2736*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2737*53ee8cc1Swenshuai.xi /// Enable MMFI timestamp mode. 2738*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM 2739*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2740*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2741*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2742*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_MMFI_TimeStampDisable 2743*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2744*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampEnable(DMX_MMFI_PATH ePath); 2745*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2746*53ee8cc1Swenshuai.xi /// Disable MMFI timestamp mode. 2747*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM 2748*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2749*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2750*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2751*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_MMFI_TimeStampEnable 2752*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2753*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampDisable(DMX_MMFI_PATH ePath); 2754*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2755*53ee8cc1Swenshuai.xi /// Set MMFI playback timestamp. 2756*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2757*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2758*53ee8cc1Swenshuai.xi /// @param u32pcr2 \b IN: LPCR2 value 2759*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2760*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2761*53ee8cc1Swenshuai.xi /// @note Duplicate function. 2762*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2763*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_SetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 u32Stamp); 2764*53ee8cc1Swenshuai.xi 2765*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2766*53ee8cc1Swenshuai.xi /// Enable/Disable MMFI MOBF function and set MOBF key index. 2767*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2768*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2769*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 2770*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF key index 2771*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2772*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2773*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2774*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_MMFI_MOBF_Enable(DMX_MMFI_PATH ePath, MS_BOOL bEnable, MS_U32 u32key); 2775*53ee8cc1Swenshuai.xi 2776*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2777*53ee8cc1Swenshuai.xi /// Set MMFI MOBF level. 2778*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2779*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2780*53ee8cc1Swenshuai.xi /// @param u8level \b IN: the value of MOBF level 2781*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2782*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2783*53ee8cc1Swenshuai.xi /// @note only used on TSP 1.0 2784*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2785*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_MMFI_MOBF_SetLevel(DMX_MMFI_PATH epath, MS_U8 u8level); 2786*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2787*53ee8cc1Swenshuai.xi /// Set MMFI MOBF level. 2788*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 2789*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 2790*53ee8cc1Swenshuai.xi /// @param u8level \b IN: the value of MOBF level 2791*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2792*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2793*53ee8cc1Swenshuai.xi /// @note only used on TSP 1.0 2794*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2795*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampClk(DMX_MMFI_PATH ePath, DMX_TimeStamp_Clk eClk); 2796*53ee8cc1Swenshuai.xi 2797*53ee8cc1Swenshuai.xi //------------------------------------------------------------- 2798*53ee8cc1Swenshuai.xi 2799*53ee8cc1Swenshuai.xi 2800*53ee8cc1Swenshuai.xi //----------------- 2801*53ee8cc1Swenshuai.xi // TSO_General 2802*53ee8cc1Swenshuai.xi //----------------- 2803*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2804*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory of TSO path. 2805*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2806*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2807*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2808*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2809*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2810*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2811*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Info(MS_U8 u8Eng, DMX_Filein_info *pFileinInfo); 2812*53ee8cc1Swenshuai.xi 2813*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2814*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going of TSO path 2815*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2816*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2817*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2818*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2819*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2820*53ee8cc1Swenshuai.xi // MS_BOOL SYMBOL_WEAK MApi_DMX_TSO_Filein_IsIdle(MS_U8 u8Eng); 2821*53ee8cc1Swenshuai.xi 2822*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2823*53ee8cc1Swenshuai.xi /// Get TSO file-in CMDQ empty number. 2824*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2825*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2826*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: pointer to store CMDQ empty slot number 2827*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2828*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2829*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2830*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_CMDQ_GetEmptyNum(MS_U8 u8Eng, MS_U32 *pu32EmptySlot); 2831*53ee8cc1Swenshuai.xi 2832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2833*53ee8cc1Swenshuai.xi /// Get TSO file-in CMDQ reset. 2834*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2835*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2836*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2837*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2838*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2839*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_CMDQ_Reset(MS_U8 u8Eng); 2840*53ee8cc1Swenshuai.xi 2841*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2842*53ee8cc1Swenshuai.xi /// Start to get bit stream by memeory of TSO path. 2843*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2844*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2845*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2846*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2847*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2848*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2849*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2850*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Start(MS_U8 u8Eng, MS_PHY pBuf, MS_U32 u32BufSize); 2851*53ee8cc1Swenshuai.xi 2852*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2853*53ee8cc1Swenshuai.xi /// Stop to get bit stream by memeory of TSO path. 2854*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2855*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2856*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2857*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2858*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2859*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Stop(MS_U8 u8Eng); 2860*53ee8cc1Swenshuai.xi 2861*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2862*53ee8cc1Swenshuai.xi /// Set TSO playback time stamp. (LPCR) 2863*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2864*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2865*53ee8cc1Swenshuai.xi /// @param u32Stamp \b OUT: pointer to store timestamp value 2866*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2867*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2868*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2869*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_SetPlaybackTimeStamp(MS_U8 u8Eng, MS_U32 u32Stamp); 2870*53ee8cc1Swenshuai.xi 2871*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2872*53ee8cc1Swenshuai.xi /// Get TSO file-in time stamp. (LPCR) 2873*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2874*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2875*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store timestamp value 2876*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2877*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2878*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2879*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_GetPlaybackStamp(MS_U8 u8Eng, MS_U32* pu32Stamp); 2880*53ee8cc1Swenshuai.xi 2881*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2882*53ee8cc1Swenshuai.xi /// Get TSO file-in time stamp. 2883*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2884*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2885*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store timestamp value 2886*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2887*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2888*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2889*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_GetFileInTimeStamp(MS_U8 u8Eng, MS_U32 *pu32Stamp); 2890*53ee8cc1Swenshuai.xi 2891*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2892*53ee8cc1Swenshuai.xi /// Disable 192 mode block scheme to bypass fill-in timestamp. 2893*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2894*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 2895*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: If true, bypass file-in timestamp. 2896*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2897*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2898*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2899*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_BypassFileInTimeStamp(MS_U8 u8Eng, MS_BOOL bbypass); 2900*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2901*53ee8cc1Swenshuai.xi /// Enable TSO file in time stamp. 2902*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM_TSO 2903*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 2904*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2905*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2906*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2907*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_TimeStampEnable(MS_U8 u8Eng); 2908*53ee8cc1Swenshuai.xi 2909*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2910*53ee8cc1Swenshuai.xi /// Disable TSO file in time stamp 2911*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM_TSO 2912*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 2913*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2914*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2915*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2916*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_TimeStampDisable(MS_U8 u8Eng); 2917*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2918*53ee8cc1Swenshuai.xi /// Set TSO Out Clock. 2919*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2920*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2921*53ee8cc1Swenshuai.xi /// @param eTsOutClk \b IN: TSO out clock select 2922*53ee8cc1Swenshuai.xi /// @param eTsOutClkSrc \b IN: TSO out clock source select 2923*53ee8cc1Swenshuai.xi /// @param u16DivNum \b IN: If select DMPLLDIV source, setting Divide number 2924*53ee8cc1Swenshuai.xi /// @param bClkInv \b IN: If Out Clock invert 2925*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2926*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2927*53ee8cc1Swenshuai.xi /// @note If eTsOutClk is E_DMX_TSO_OUTCLK_DIV2N, eTsOutClkSrc could be E_DMX_TSO_OUTCLKSRC_172M_2N/E_DMX_TSO_OUTCLKSRC_288M_2N/E_DMX_TSO_OUTCLKSRC_432M_2N, 2928*53ee8cc1Swenshuai.xi /// @note and user should set u16DivNum to generate final output clock. 2929*53ee8cc1Swenshuai.xi /// @note If eTsOutClk is E_DMX_TSO_OUTCLK_DIVN, eTsOutClkSrc could be E_DMX_TSO_OUTCLKSRC_216M_N, and user should set u16DivNum to generate final output clock. 2930*53ee8cc1Swenshuai.xi /// @note If eTsOutClk is E_DMX_TSO_OUTCLK_PTSOOUT/E_DMX_TSO_OUTCLK_PTSOOUT_DIV8, eTsOutClkSrc could be E_DMX_TSO_OUTCLKSRC_P_TS0IN/E_DMX_TSO_OUTCLKSRC_P_TS1IN, etc, 2931*53ee8cc1Swenshuai.xi /// @note and this colck is from external pad 2932*53ee8cc1Swenshuai.xi /// @note E_DMX_TSO_OUTCLK_62M/E_DMX_TSO_OUTCLK_54M/E_DMX_TSO_OUTCLK_27M/E_DMX_TSO_OUTCLK_Dmd are const 2933*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_SetOutClk(MS_U8 u8Eng, DMX_TSO_OutClk eTsOutClk, DMX_TSO_OutClkSrc eTsOutClkSrc, MS_U16 u16DivNum, MS_BOOL bClkInv); 2934*53ee8cc1Swenshuai.xi 2935*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2936*53ee8cc1Swenshuai.xi /// Enable or disable TSO output. 2937*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2938*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2939*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE is enable, FALSE is disable 2940*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2941*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2942*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2943*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_OutputEnable(MS_U8 u8Eng, MS_BOOL bEnable); 2944*53ee8cc1Swenshuai.xi 2945*53ee8cc1Swenshuai.xi //TSO2 API 2946*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2947*53ee8cc1Swenshuai.xi /// Set or get local stream ID of TSO Out. 2948*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2949*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2950*53ee8cc1Swenshuai.xi /// @param eIf \b IN: TSO input TSIF 2951*53ee8cc1Swenshuai.xi /// @param pu8StrId \b IN or OUT: pointer to store local stream ID, default value is 0x47 2952*53ee8cc1Swenshuai.xi /// @param bSet \b IN: If TRUE, set local stream id, otherwise get local stream id 2953*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2954*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2955*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2956*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_LocalStreamId(MS_U8 u8Eng, DMX_TSIF eIf, MS_U8* pu8StrId, MS_BOOL bSet); 2957*53ee8cc1Swenshuai.xi 2958*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2959*53ee8cc1Swenshuai.xi /// Set TSO virtual queue buffer. 2960*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2961*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 2962*53ee8cc1Swenshuai.xi /// @param u32Addr \b IN: TSO VQ buffer address 2963*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: TSO VQ buffer size 2964*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2965*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2966*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2967*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_SVQBuf_Set(MS_U8 u8Eng, MS_PHY phyAddr, MS_U32 u32BufSize); 2968*53ee8cc1Swenshuai.xi 2969*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2970*53ee8cc1Swenshuai.xi ///TSO (TS output) Demux Flow input sources configure getting and setting. 2971*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2972*53ee8cc1Swenshuai.xi /// @param eFlow \b IN: DMX TSO playback flow, DMX_FLOW_TSO_PLAYBACK/DMX_FLOW_TSO_PLAYBACK1 2973*53ee8cc1Swenshuai.xi /// @param eTSOInIf \b IN: TSO input interface, DMX_TSIF_LIVE0/DMX_TSIF_LIVE1/DMX_TSIF_LIVE2/DMX_TSIF_FILE0/DMX_TSIF_FILE1 2974*53ee8cc1Swenshuai.xi /// @param stInputInfo.Input \b IN/OUT: TSO input interface source, enum item of DMX_FLOW_INPUT 2975*53ee8cc1Swenshuai.xi /// @param stInputInfo.bClkInv \b IN/OUT: If TSO input interface source is from demod, please set clock invert type 2976*53ee8cc1Swenshuai.xi /// @param stInputInfo.bExtSync \b IN/OUT: If TSO input interface source is from demod, please set external sync type 2977*53ee8cc1Swenshuai.xi /// @param stInputInfo.bParallel \b IN/OUT: If TSO input interface source is from demod, please set parallel or serial type 2978*53ee8cc1Swenshuai.xi /// @param u8LocalStrId \b IN/OUT: The local stream ID (TS output sync byte) value, default is 0x47 2979*53ee8cc1Swenshuai.xi /// @param bBypassAll \b IN/OUT: TRUE means bypass all ts data for TSO playback; FALSE means tso will output ts data by PIDs 2980*53ee8cc1Swenshuai.xi /// @param bEnable \b IN/OUT: TRUE means enable TSO input now; FALSE means disable this TSO input fource 2981*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2982*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2983*53ee8cc1Swenshuai.xi /// @note This API is for TSO 2.0 HW architecture. 2984*53ee8cc1Swenshuai.xi /// @note Serval TSO input will be merge to be one TSO output. This API is for configuring one of TSO input. 2985*53ee8cc1Swenshuai.xi /// @note If there are 3 TSO input source, you shold call this API 3 times for every TSO input path configure. 2986*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2987*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Flow_InputCfg(DMX_TSO_InputCfg* pstInputCfg); 2988*53ee8cc1Swenshuai.xi 2989*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2990*53ee8cc1Swenshuai.xi /// TSO (TS output) Demux Flow output path configure 2991*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 2992*53ee8cc1Swenshuai.xi /// @param eFlow \b IN: DMX TSO playback flow, DMX_FLOW_TSO_PLAYBACK/DMX_FLOW_TSO_PLAYBACK1 2993*53ee8cc1Swenshuai.xi /// @param eOutPad \b IN: TSO output pad select, DMX_FLOW_OUTPUT_EXT_PAD1/DMX_FLOW_OUTPUT_EXT_PAD3/// 2994*53ee8cc1Swenshuai.xi /// @param u16OutPktSize \b IN/OUT: TSO output packet size. default vale is 188 bytes 2995*53ee8cc1Swenshuai.xi /// @param bEnable \b IN/OUT: TRUE means enable TSO output now; FALSE means disable TSO output 2996*53ee8cc1Swenshuai.xi /// @param bDefOutClk \b IN: TURE means using default clock setting given by driver; FALSE means set output clock by user parameters 2997*53ee8cc1Swenshuai.xi /// @param bOutClkInv \b IN/OUT: Set inver type of TSO output clock 2998*53ee8cc1Swenshuai.xi /// @param eTsoOutClk \b IN/OUT: Select TSO output clock, enum item of DMX_TSO_OutClk 2999*53ee8cc1Swenshuai.xi /// @param eTsoOutClkSrc \b IN/OUT: Select TSO output clock source, enum item of DMX_TSO_OutClkSrc 3000*53ee8cc1Swenshuai.xi /// @param u16DivNum \b IN/OUT: If TSO output clock source is E_DMX_TSO_OUTCLK_DIV2N/E_DMX_TSO_OUTCLK_DIVN, set this value for clock generatng. 3001*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TURE: set, FALSE: get 3002*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3003*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3004*53ee8cc1Swenshuai.xi /// @note This API is for TSO 2.0 HW architecture. 3005*53ee8cc1Swenshuai.xi /// @note Serval TSO input will be merge to be one TSO output. This API is for configuring TSO output path. 3006*53ee8cc1Swenshuai.xi /// @note TSO output clock source selection, please also refer to MApi_DMX_TSO_SetOutClk API. 3007*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3008*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Flow_OutputCfg(DMX_TSO_OutputCfg* pstOutputCfg); 3009*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3010*53ee8cc1Swenshuai.xi /// TSO (TS output) input pid filter open. 3011*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3012*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3013*53ee8cc1Swenshuai.xi /// @param eTSOInSrc \b IN: TSO PID filter source 3014*53ee8cc1Swenshuai.xi /// @param u16Pid \b IN: PID value of TSO PID filter 3015*53ee8cc1Swenshuai.xi /// @param pu16DmxId \b IN: Pointer to store PID filter ID 3016*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3017*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3018*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3019*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Pid_Open(MS_U8 u8Eng, DMX_TSIF eTSOInSrc, MS_U16 u16Pid, MS_U16* pu16DmxId); 3020*53ee8cc1Swenshuai.xi 3021*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3022*53ee8cc1Swenshuai.xi /// TSO (TS output) input pid filter close. 3023*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3024*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3025*53ee8cc1Swenshuai.xi /// @param u16DmxId \b IN: TSO PID filter source 3026*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3027*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3028*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3029*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Pid_Close(MS_U8 u8Eng, MS_U16 u16DmxId); 3030*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3031*53ee8cc1Swenshuai.xi /// Get TSO file-in read address. 3032*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3033*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3034*53ee8cc1Swenshuai.xi /// @param pu32Read \b OUT: pointer to store read address 3035*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3036*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3037*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3038*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_GetReadAddr(MS_U8 u8Eng, MS_PHY* pphyRead); 3039*53ee8cc1Swenshuai.xi //---------------------------------------------------------- 3040*53ee8cc1Swenshuai.xi 3041*53ee8cc1Swenshuai.xi 3042*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3043*53ee8cc1Swenshuai.xi /// Get TSP firmware version. 3044*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3045*53ee8cc1Swenshuai.xi /// @param u32FWVer \b OUT: TSP firmware version infomation 3046*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3047*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3048*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3049*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_TSP_Get_FW_VER(MS_U32* u32FWVer); 3050*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3051*53ee8cc1Swenshuai.xi /// Set TSP Debug Level. 3052*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3053*53ee8cc1Swenshuai.xi /// @param u16DbgSwitch \b IN: debug level. 3054*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3055*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3056*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3057*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetDbgLevel(DMX_DBGMSG_LEVEL level); 3058*53ee8cc1Swenshuai.xi 3059*53ee8cc1Swenshuai.xi //----------------- 3060*53ee8cc1Swenshuai.xi // TSP_Debug 3061*53ee8cc1Swenshuai.xi //----------------- 3062*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3063*53ee8cc1Swenshuai.xi /// Get interrupt count. 3064*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3065*53ee8cc1Swenshuai.xi /// @param pu32Count \b OUT: interrupt count 3066*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3067*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3068*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3069*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Get_Intr_Count(MS_U32* pu32Count); 3070*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3071*53ee8cc1Swenshuai.xi /// Get TSP driver library information 3072*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3073*53ee8cc1Swenshuai.xi /// @param ppVersion \b OUT: TSP library version infomation 3074*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3075*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3076*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3077*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetLibVer(const MSIF_Version **ppVersion); 3078*53ee8cc1Swenshuai.xi 3079*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3080*53ee8cc1Swenshuai.xi /// Get the register value of HW debug port . 3081*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3082*53ee8cc1Swenshuai.xi /// @param u32DbgSel \b IN: Set which HW debug info you want to get. (ex: 0x4F, check TSIF0 data info) 3083*53ee8cc1Swenshuai.xi /// @param u32DbgInfo \b OUT: pointer to store the debug port value 3084*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3085*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3086*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3087*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetDbgPortInfo(MS_U32 u32DbgSel,MS_U32* u32DbgInfo); 3088*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3089*53ee8cc1Swenshuai.xi /// Set memory buffer information for TSP AEON to print debug message. 3090*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3091*53ee8cc1Swenshuai.xi /// @param phyAddr \b IN: physical address of buffer 3092*53ee8cc1Swenshuai.xi /// @param u32Size \b IN: size of buffer 3093*53ee8cc1Swenshuai.xi /// @param u32DbgWord \b IN: control word to filter debug message 3094*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3095*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3096*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3097*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_SetFwDbgParam(MS_PHY phyAddr, MS_U32 u32Size, MS_U32 u32DbgWord); 3098*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3099*53ee8cc1Swenshuai.xi /// Get dis-continue count by ts source and specific FIFO. 3100*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3101*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related tsif packet count. 3102*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: dis-continue packet count 3103*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3104*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3105*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3106*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_DisContiCnt(DMX_DisContiCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3107*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3108*53ee8cc1Swenshuai.xi /// Get drop packet count by ts source and specific FIFO. 3109*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3110*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related source packet count. 3111*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: drop packet count 3112*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3113*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3114*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3115*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_DropPktCnt(DMX_DropPktCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3116*53ee8cc1Swenshuai.xi 3117*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3118*53ee8cc1Swenshuai.xi ///Get locked packet count by ts source and specific FIFO. 3119*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3120*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related tsif packet count. 3121*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: Lock packet count 3122*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3123*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3124*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3125*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_LockPktCnt(DMX_LockPktCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3126*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3127*53ee8cc1Swenshuai.xi ///Get dis-continue count by ts source and specific FIFO. 3128*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3129*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related source packet count. 3130*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: AV packet count 3131*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3132*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3133*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3134*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_AVPktCnt(DMX_AVPktCnt_info* DmxInfo, MS_U32* pu32Cnt); 3135*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3136*53ee8cc1Swenshuai.xi /// Get section TEI packet count by ts source. 3137*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3138*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN: TS source 3139*53ee8cc1Swenshuai.xi /// @param pu32PktCnt \b OUT: TEI packet count 3140*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3141*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3142*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3143*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Get_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc, MS_U32* pu32PktCnt); 3144*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3145*53ee8cc1Swenshuai.xi /// Reset section TEI packet count by DMX filter index. 3146*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3147*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN: TS source 3148*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3149*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3150*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3151*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Reset_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc); 3152*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3153*53ee8cc1Swenshuai.xi /// Get section dis-continue packet count. 3154*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3155*53ee8cc1Swenshuai.xi /// @param u32DmxID \b IN: DMX filter index 3156*53ee8cc1Swenshuai.xi /// @param pu32PktCnt \b OUT: Dis-continue packet count 3157*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3158*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3159*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3160*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Get_SecDisCont_PktCount(MS_U32 u32DmxID, MS_U32* pu32PktCnt); 3161*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3162*53ee8cc1Swenshuai.xi /// Reset section dis-continue packet count. 3163*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3164*53ee8cc1Swenshuai.xi /// @param u32DmxID \b IN: DMX filter Id 3165*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3166*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3167*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3168*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS MApi_DMX_Reset_SecDisCont_PktCount(MS_U32 u32DmxID); 3169*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3170*53ee8cc1Swenshuai.xi 3171*53ee8cc1Swenshuai.xi //----------------- 3172*53ee8cc1Swenshuai.xi // TSP_FIQ 3173*53ee8cc1Swenshuai.xi //----------------- 3174*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3175*53ee8cc1Swenshuai.xi /// Enable/Disable section filter rush pass. 3176*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3177*53ee8cc1Swenshuai.xi /// @param u32DmxID \b IN: DMX filter Id 3178*53ee8cc1Swenshuai.xi /// @param u8Enable \b IN: TRUE: enable, FALSE: disable 3179*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3180*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3181*53ee8cc1Swenshuai.xi /// @note Now only TSP 2.0 & TSP 4.0 support it. 3182*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3183*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_SetFltRushPass(MS_U8 u8DmxId, MS_U8 u8Enable); 3184*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3185*53ee8cc1Swenshuai.xi /// Initialize Demux API for FIQ Enable. 3186*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3187*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3188*53ee8cc1Swenshuai.xi /// @param pFQInfo \b IN: Init FQ Setting 3189*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3190*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3191*53ee8cc1Swenshuai.xi /// @note if want to use FQ, please call this API after calling MApi_DMX_Init. (FQ does not support for all chip) 3192*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3193*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_Init(MS_U32 u32FQEng, DMX_FQ_Info* pFQInfo); 3194*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3195*53ee8cc1Swenshuai.xi /// Finalize Demux API for FIQ. 3196*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3197*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3198*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3199*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3200*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3201*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_Exit(MS_U32 u32FQEng); 3202*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3203*53ee8cc1Swenshuai.xi /// Enable FIQ rush function. 3204*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3205*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3206*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3207*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3208*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3209*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_RushEnable(MS_U32 u32FQEng); 3210*53ee8cc1Swenshuai.xi 3211*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3212*53ee8cc1Swenshuai.xi /// Select path to skip rush data. 3213*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3214*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3215*53ee8cc1Swenshuai.xi /// @param eSkipPath \b IN: Select path to skip rush data 3216*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3217*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3218*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3219*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_SkipRushData(MS_U32 u32FQEng, DMX_FQ_SkipPath eSkipPath); 3220*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3221*53ee8cc1Swenshuai.xi 3222*53ee8cc1Swenshuai.xi //----------------- 3223*53ee8cc1Swenshuai.xi // TSP_Merge 3224*53ee8cc1Swenshuai.xi //----------------- 3225*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3226*53ee8cc1Swenshuai.xi /// Set or Get merge stream source id and sync byte 3227*53ee8cc1Swenshuai.xi /// @ingroup TSP_Merge 3228*53ee8cc1Swenshuai.xi /// @param eIf \b IN: Eunm value of DMX TSIF selection 3229*53ee8cc1Swenshuai.xi /// @param u8StrId \b IN: Stream index 3230*53ee8cc1Swenshuai.xi /// @param pu8SyncByte \b IN: Pointer to sync bytearray of merege streams 3231*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE to setting data or FALSE to getting table 3232*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3233*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3234*53ee8cc1Swenshuai.xi /// @note: Currently, maxmum number is 8, and don't call this API when stream processing is started 3235*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3236*53ee8cc1Swenshuai.xi // DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_MStr_SyncByte(DMX_TSIF eIf, MS_U8 u8StrId, MS_U8* pu8SyncByte, MS_BOOL bSet); 3237*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3238*53ee8cc1Swenshuai.xi 3239*53ee8cc1Swenshuai.xi 3240*53ee8cc1Swenshuai.xi //--- Common Interface for TSP config and Api commands ------------// 3241*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3242*53ee8cc1Swenshuai.xi /// General function for set cmd or get infomation. 3243*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3244*53ee8cc1Swenshuai.xi /// @param u32Cmd \b IN: DMX filter Id 3245*53ee8cc1Swenshuai.xi /// @param u32Config \b IN: Config 0 (define by case) 3246*53ee8cc1Swenshuai.xi /// @param u32DataNum \b IN: Config 0 (define by case) 3247*53ee8cc1Swenshuai.xi /// @param pData \b OUT: Output data 3248*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3249*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3250*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3251*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config, MS_U32 u32DataNum, void *pData); 3252*53ee8cc1Swenshuai.xi 3253*53ee8cc1Swenshuai.xi #if 0 3254*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ResetFileinTimestamp(void) 3255*53ee8cc1Swenshuai.xi #endif 3256*53ee8cc1Swenshuai.xi 3257*53ee8cc1Swenshuai.xi 3258*53ee8cc1Swenshuai.xi #ifdef __cplusplus 3259*53ee8cc1Swenshuai.xi } 3260*53ee8cc1Swenshuai.xi #endif 3261*53ee8cc1Swenshuai.xi 3262*53ee8cc1Swenshuai.xi #endif // #ifndef __API_DMX_H__ 3263