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 #include "UFO.h" 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi #ifdef __cplusplus 231*53ee8cc1Swenshuai.xi extern "C" 232*53ee8cc1Swenshuai.xi { 233*53ee8cc1Swenshuai.xi #endif 234*53ee8cc1Swenshuai.xi 235*53ee8cc1Swenshuai.xi /// NULL PID definition 236*53ee8cc1Swenshuai.xi #define DMX_PID_NULL (0x1FFFUL) 237*53ee8cc1Swenshuai.xi 238*53ee8cc1Swenshuai.xi // Please don't change this value if you know exactly what you are doing 239*53ee8cc1Swenshuai.xi /// DMX Filter pattern depth 240*53ee8cc1Swenshuai.xi #define DMX_SECT_FLT_DEPTH (16UL) 241*53ee8cc1Swenshuai.xi 242*53ee8cc1Swenshuai.xi /// NULL DMX Id 243*53ee8cc1Swenshuai.xi #define DMX_DMXID_NULL ((MS_U8)0xFFUL) 244*53ee8cc1Swenshuai.xi #define MSIF_DMX_LIB_CODE {'D','M','X','_'} //Lib code 245*53ee8cc1Swenshuai.xi #define MSIF_DMX_LIBVER {'1','5'} //LIB version 246*53ee8cc1Swenshuai.xi #define MSIF_DMX_BUILDNUM {'0','3'} //Build Number 247*53ee8cc1Swenshuai.xi #define MSIF_DMX_CHANGELIST {'0','0','6','1','7','4','7','0'} //P4 ChangeList Number 248*53ee8cc1Swenshuai.xi 249*53ee8cc1Swenshuai.xi /// DMX Version 250*53ee8cc1Swenshuai.xi #define DMX_API_VERSION /* Character String for DRV/API version */ \ 251*53ee8cc1Swenshuai.xi MSIF_TAG, /* 'MSIF' */ \ 252*53ee8cc1Swenshuai.xi MSIF_CLASS, /* '00' */ \ 253*53ee8cc1Swenshuai.xi MSIF_CUS, /* 0x0000 */ \ 254*53ee8cc1Swenshuai.xi MSIF_MOD, /* 0x0000 */ \ 255*53ee8cc1Swenshuai.xi MSIF_CHIP, \ 256*53ee8cc1Swenshuai.xi MSIF_CPU, \ 257*53ee8cc1Swenshuai.xi MSIF_DMX_LIB_CODE, /* IP__ */ \ 258*53ee8cc1Swenshuai.xi MSIF_DMX_LIBVER, /* 0.0 ~ Z.Z */ \ 259*53ee8cc1Swenshuai.xi MSIF_DMX_BUILDNUM, /* 00 ~ 99 */ \ 260*53ee8cc1Swenshuai.xi MSIF_DMX_CHANGELIST, /* CL# */ \ 261*53ee8cc1Swenshuai.xi MSIF_OS 262*53ee8cc1Swenshuai.xi 263*53ee8cc1Swenshuai.xi /// DMX status indicator 264*53ee8cc1Swenshuai.xi typedef enum 265*53ee8cc1Swenshuai.xi { 266*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_OK, ///< DMX status OK 267*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_ERROR, ///< DMX status ERROR 268*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_NOT_SUPPORT, ///< DMX status NOT SUPPORT 269*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS_MULTIPRC_RUNNING ///< DMX status multiple process still sunning 270*53ee8cc1Swenshuai.xi } DMX_FILTER_STATUS; 271*53ee8cc1Swenshuai.xi 272*53ee8cc1Swenshuai.xi /// DMX debug levels 273*53ee8cc1Swenshuai.xi typedef enum 274*53ee8cc1Swenshuai.xi { 275*53ee8cc1Swenshuai.xi DMX_DBG_NONE, ///< None 276*53ee8cc1Swenshuai.xi DMX_DBG_ERR, ///< Errors 277*53ee8cc1Swenshuai.xi DMX_DBG_WARN, ///< Warnings 278*53ee8cc1Swenshuai.xi DMX_DBG_INFO, ///< Information 279*53ee8cc1Swenshuai.xi DMX_DBG_PVR, ///< PVR 280*53ee8cc1Swenshuai.xi DMX_DBG_FUNC ///< Function calls 281*53ee8cc1Swenshuai.xi } DMX_DBGMSG_LEVEL; 282*53ee8cc1Swenshuai.xi 283*53ee8cc1Swenshuai.xi /// DMX internal startup parameter 284*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 285*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) _DMX_FW_Param 286*53ee8cc1Swenshuai.xi #else 287*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED _DMX_FW_Param 288*53ee8cc1Swenshuai.xi #endif 289*53ee8cc1Swenshuai.xi { 290*53ee8cc1Swenshuai.xi MS_PHY phyFWAddr; ///< Firmware physical address 291*53ee8cc1Swenshuai.xi MS_U32 u32FWSize; ///< Firmware size 292*53ee8cc1Swenshuai.xi 293*53ee8cc1Swenshuai.xi MS_PHY phyVQAddr; ///< Virtual Queue physical address 294*53ee8cc1Swenshuai.xi MS_U32 u32VQSize; ///< Virtual Queue size 295*53ee8cc1Swenshuai.xi 296*53ee8cc1Swenshuai.xi MS_U32 u32IsHK; ///< Indicates whether this is the "house-keeping" (= main) CPU 297*53ee8cc1Swenshuai.xi MS_U32 u32Res; 298*53ee8cc1Swenshuai.xi 299*53ee8cc1Swenshuai.xi MS_U32 _zero_reserved[2]; ///< Reserved 300*53ee8cc1Swenshuai.xi 301*53ee8cc1Swenshuai.xi } DMX_TSPParam; 302*53ee8cc1Swenshuai.xi 303*53ee8cc1Swenshuai.xi 304*53ee8cc1Swenshuai.xi #if 0 305*53ee8cc1Swenshuai.xi /// DMX fitler type and source type 306*53ee8cc1Swenshuai.xi typedef enum 307*53ee8cc1Swenshuai.xi { 308*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_VIDEO, ///< DMX video filter type 309*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_AUDIO, ///< DMX audio filter type 310*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_AUDIO2, ///< DMX audio2 filter type 311*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_SECTION, ///< DMX section filter type 312*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PES, ///< DMX PES filter type 313*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PACKET, ///< DMX TS packet filter type 314*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_PCR, ///< DMX PCR filter type 315*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE_TELETEXT, ///< DMX teletext filter type 316*53ee8cc1Swenshuai.xi 317*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_MASK = 0xC0000000, ///< DMX filter source mask 318*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_LIVE = 0x80000000, ///< DMX live stream filter source 319*53ee8cc1Swenshuai.xi DMX_FILTER_SOURCE_TYPE_FILE = 0x40000000, ///< DMX file in filter type 320*53ee8cc1Swenshuai.xi } DMX_FILTER_TYPE; 321*53ee8cc1Swenshuai.xi #endif 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xi /// DMX fitler type and source type 324*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE MS_U32 ///< Filter types 325*53ee8cc1Swenshuai.xi 326*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO 0x00000000UL ///< DMX video filter type 327*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO 0x00000001UL ///< DMX audio filter type 328*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO2 0x00000002UL ///< DMX audio2 filter type 329*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION 0x00000003UL ///< DMX section filter type 330*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PES 0x00000004UL ///< DMX PES filter type 331*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PACKET 0x00000005UL ///< DMX TS packet filter type 332*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PCR 0x00000006UL ///< DMX PCR filter type 333*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_TELETEXT 0x00000007UL ///< DMX teletext filter type 334*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO3D 0x00000008UL ///< DMX V3D filter type 335*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO2 DMX_FILTER_TYPE_VIDEO3D ///< DMX video2 filter type 336*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO3 0x00000009UL ///< DMX audio3 filter type 337*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO4 0x0000000AUL ///< DMX audio4 filter type 338*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_REC 0x0000000BUL ///< DMX record filter type no destination needs to be set 339*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SCMBCHK 0x0000000CUL ///< DMX filter type for checking TS scrambling status 340*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION_VER 0x0000000DUL ///< DMX section filter type with version and CRC check 341*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_SECTION_NO_PUSI 0x0000000EUL ///< DMX section filter type which receive section without PUSI 342*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO3 0x0000000FUL ///< DMX video3 filter type 343*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO4 0x00000010UL ///< DMX video4 filter type 344*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 345*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR 0x00000010UL ///< DMX record filter (merge stream) type no destination needs to be set 346*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR1 0x00000011UL ///< DMX record filter (merge stream) type no destination needs to be set 347*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR2 0x00000012UL ///< DMX record filter (merge stream) type no destination needs to be set 348*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR3 0x00000013UL ///< DMX record filter (merge stream) type no destination needs to be set 349*53ee8cc1Swenshuai.xi #else 350*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR 0x00000011UL ///< DMX record filter (merge stream) type no destination needs to be set 351*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR1 0x00000012UL ///< DMX record filter (merge stream) type no destination needs to be set 352*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR2 0x00000013UL ///< DMX record filter (merge stream) type no destination needs to be set 353*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR3 0x00000014UL ///< DMX record filter (merge stream) type no destination needs to be set 354*53ee8cc1Swenshuai.xi #endif 355*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR4 0x00000015UL ///< DMX record filter (merge stream) type no destination needs to be set 356*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR5 0x00000016UL ///< DMX record filter (merge stream) type no destination needs to be set 357*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR6 0x00000017UL ///< DMX record filter (merge stream) type no destination needs to be set 358*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR7 0x00000018UL ///< DMX record filter (merge stream) type no destination needs to be set 359*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR8 0x00000019UL ///< DMX record filter (merge stream) type no destination needs to be set 360*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_PVR9 0x0000001AUL ///< DMX record filter (merge stream) type no destination needs to be set 361*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO5 0x0000001BUL ///< DMX audio5 filter type 362*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_AUDIO6 0x0000001CUL ///< DMX audio6 filter type 363*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO5 0x0000001DUL ///< DMX video5 filter type 364*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO6 0x0000001EUL ///< DMX video6 filter type 365*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO7 0x0000001FUL ///< DMX video7 filter type 366*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_VIDEO8 0x00000020UL ///< DMX video8 filter type 367*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_MASK 0xF3FF0F00UL 368*53ee8cc1Swenshuai.xi 369*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_MASK 0xF0FC0000UL ///< DMX filter source mask 370*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_LIVE 0x80000000UL ///< DMX live stream filter source 371*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE 0x40000000UL ///< DMX file in filter type 372*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_LIVEB DMX_FILTER_SOURCE_TYPE_FILE ///< Input from TS1 to File PID filter 373*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS1 0x00800000UL ///< DMX live stream filter source 1 374*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS2 0x00400000UL ///< DMX live stream filter source 2 375*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS3 0x00200000UL ///< DMX live stream filter source 3 376*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE1 0x00100000UL ///< DMX file-in stream, filter source from file1 377*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE2 0x00080000UL ///< DMX file-in stream, filter source from file2 378*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE3 0x00040000UL ///< DMX file-in stream, filter source from file3 379*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS4 0x00000000UL ///< DMX live stream filter source 4 380*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS5 0x000C0000UL ///< DMX live stream filter source 5 381*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_TS6 0x00140000UL ///< DMX live stream filter source 6 382*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE4 0x00180000UL ///< DMX file-in stream, filter source from file4 383*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE5 0x001C0000UL ///< DMX file-in stream, filter source from file5 384*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_FILE6 0x00240000UL ///< DMX file-in stream, filter source from file6 385*53ee8cc1Swenshuai.xi 386*53ee8cc1Swenshuai.xi 387*53ee8cc1Swenshuai.xi // Source ID define. For merge stream 388*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_MASK 0x00010F00UL 389*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_0 0x00000000UL 390*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_1 0x00000100UL 391*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_2 0x00000200UL 392*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_3 0x00000300UL 393*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_4 0x00000400UL 394*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_5 0x00000500UL 395*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_6 0x00000600UL 396*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_7 0x00000700UL 397*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_8 0x00000800UL 398*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_9 0x00000900UL 399*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_10 0x00000a00UL 400*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_11 0x00000b00UL 401*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_12 0x00000c00UL 402*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_13 0x00000d00UL 403*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_14 0x00000e00UL 404*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_15 0x00000f00UL 405*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_16 0x00010000UL 406*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_17 0x00010100UL 407*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_18 0x00010200UL 408*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_19 0x00010300UL 409*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_20 0x00010400UL 410*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_21 0x00010500UL 411*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_22 0x00010600UL 412*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_23 0x00010700UL 413*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_24 0x00010800UL 414*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_25 0x00010900UL 415*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_26 0x00010a00UL 416*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_27 0x00010b00UL 417*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_28 0x00010c00UL 418*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_29 0x00010d00UL 419*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_30 0x00010e00UL 420*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCEID_31 0x00010f00UL 421*53ee8cc1Swenshuai.xi 422*53ee8cc1Swenshuai.xi 423*53ee8cc1Swenshuai.xi // Only supported by TSP ver3.0 driver for section filter duplicate sw patch 424*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_DUPSEC 0x02000000UL 425*53ee8cc1Swenshuai.xi 426*53ee8cc1Swenshuai.xi // Only supported by TSP ver2.0 driver 427*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PLAYBACK DMX_FILTER_SOURCE_TYPE_LIVE ///< DMX playback filter source 428*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PVR0 0x20000000UL ///< DMX PVR0 stream filter source 429*53ee8cc1Swenshuai.xi #define DMX_FILTER_SOURCE_TYPE_PVR1 0x10000000UL ///< DMX PVR1 stream filter source 430*53ee8cc1Swenshuai.xi 431*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_SCMB_MASK 0x30000000UL ///< DMX descramble filter mask 432*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_SCMB 0x20000000UL ///< DMX descramble filter type 433*53ee8cc1Swenshuai.xi #define DMX_FILTER_FLT_TYPE_SCMB_SHAREKEY 0x10000000UL ///< DMX descramble filter type with sharekey 434*53ee8cc1Swenshuai.xi 435*53ee8cc1Swenshuai.xi // Support PVR I frame parser LUT. 436*53ee8cc1Swenshuai.xi // When open the filter type DMX_FILTER_TYPE_PVRx, video PID need to OR(|) this source type for PVR. EX: DMX_FILTER_TYPE_PVRx | DMX_FILTER_TYPE_EX_I_FRAME_PVR 437*53ee8cc1Swenshuai.xi #define DMX_FILTER_TYPE_EX_I_FRAME_PVR 0x01000000UL ///< DMX PVR I frame LUT PVR_TABLE enable 438*53ee8cc1Swenshuai.xi //-------------------------------------------------- 439*53ee8cc1Swenshuai.xi // Debug table 440*53ee8cc1Swenshuai.xi /// DMX debug commands 441*53ee8cc1Swenshuai.xi typedef enum 442*53ee8cc1Swenshuai.xi { 443*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_NONE, ///< None 444*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_CLEAR, ///< Clear debug command 445*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_ENABLE, ///< Enable debug command 446*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD_DISABLE, ///< Disable debug command 447*53ee8cc1Swenshuai.xi } DMX_DEBUG_CMD; 448*53ee8cc1Swenshuai.xi 449*53ee8cc1Swenshuai.xi /// DMX debug source 450*53ee8cc1Swenshuai.xi typedef enum 451*53ee8cc1Swenshuai.xi { 452*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS0 = 0, ///< Debug LIVE0 input 453*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS1 = 1, ///< Debug LIVE1 input 454*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS2 = 2, ///< Debug LIVE2 input 455*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE = 3, ///< Debug FILE0 input 456*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS3 = 4, ///< Debug LIVE3 input 457*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE0 = DMX_DEBUG_SRC_FILE, ///< Debug FILE0 input 458*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE1 = 5, ///< Debug FILE1 input 459*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE2 = 6, ///< Debug FILE2 input 460*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE3 = 7, ///< Debug FILE3 input 461*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_MMFI0 = 8, ///< Debug MMFI0 input 462*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_MMFI1 = 9, ///< Debug MMFI1 input 463*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS4 = 10, ///< Debug LIVE4 input 464*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS5 = 11, ///< Debug LIVE5 input 465*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_TS6 = 12, ///< Debug LIVE6 input 466*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE4 = 13, ///< Debug FILE4 input 467*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE5 = 14, ///< Debug FILE5 input 468*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC_FILE6 = 15, ///< Debug FILE6 input 469*53ee8cc1Swenshuai.xi } DMX_DEBUG_SRC; 470*53ee8cc1Swenshuai.xi 471*53ee8cc1Swenshuai.xi /// DMX debug TSIF type 472*53ee8cc1Swenshuai.xi typedef enum 473*53ee8cc1Swenshuai.xi { 474*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS0, ///< Debug LIVE0 input 475*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS1, ///< Debug LIVE1 input 476*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TSCB, ///< Debug LIVECB input 477*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS2, ///< Debug LIVE2 input 478*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS3, ///< Debug LIVE3 input 479*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS4, ///< Debug LIVE4 input 480*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS5, ///< Debug LIVE5 input 481*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF_TS6, ///< Debug LIVE6 input 482*53ee8cc1Swenshuai.xi 483*53ee8cc1Swenshuai.xi } DMX_DEBUG_TSIF; 484*53ee8cc1Swenshuai.xi 485*53ee8cc1Swenshuai.xi /// DMX debug FIFO type 486*53ee8cc1Swenshuai.xi typedef enum 487*53ee8cc1Swenshuai.xi { 488*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO, ///< Debug Video FIFO 489*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIO, ///< Debug Audio FIFO 490*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO3D, ///< Debug Video 3D FIFO 491*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO2 = DMX_DEBUG_FIFO_VIDEO3D, ///< Debug Video 2 FIFO 492*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOB, ///< Debug Audio B FIFO 493*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOC, ///< Debug Audio C FIFO 494*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOD, ///< Debug Audio D FIFO 495*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO3, ///< Debug Video 3 FIFO 496*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO4, ///< Debug Video 4 FIFO 497*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO5, ///< Debug Video 5 FIFO 498*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO6, ///< Debug Video 6 FIFO 499*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO7, ///< Debug Video 7 FIFO 500*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_VIDEO8, ///< Debug Video 8 FIFO 501*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOE, ///< Debug Audio E FIFO 502*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_AUDIOF ///< Debug Audio F FIFO 503*53ee8cc1Swenshuai.xi 504*53ee8cc1Swenshuai.xi } DMX_DEBUG_FIFO; 505*53ee8cc1Swenshuai.xi 506*53ee8cc1Swenshuai.xi /// DMX debug FIFO Source 507*53ee8cc1Swenshuai.xi typedef enum 508*53ee8cc1Swenshuai.xi { 509*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_0, ///< Debug LIVE0 input 510*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_0_FILE, ///< Debug FILE0 input 511*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_1, ///< Debug LIVE1 input 512*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_2, ///< Debug LIVE2 input 513*53ee8cc1Swenshuai.xi DMX_DEBUG_MMFI0, ///< Debug MMFI0 input 514*53ee8cc1Swenshuai.xi DMX_DEBUG_MMFI1, ///< Debug MMFI1 input 515*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_3, ///< Debug LIVE3 input 516*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_1_FILE, ///< Debug FILE1 input 517*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_2_FILE, ///< Debug FILE2 input 518*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_3_FILE, ///< Debug FILE3 input 519*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_4, ///< Debug LIVE4 input 520*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_5, ///< Debug LIVE5 input 521*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_6, ///< Debug LIVE6 input 522*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_4_FILE, ///< Debug FILE4 input 523*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_5_FILE, ///< Debug FILE5 input 524*53ee8cc1Swenshuai.xi DMX_DEBUG_PKT_DEMUX_6_FILE, ///< Debug FILE6 input 525*53ee8cc1Swenshuai.xi 526*53ee8cc1Swenshuai.xi } DMX_DEBUG_FIFO_SRC; 527*53ee8cc1Swenshuai.xi 528*53ee8cc1Swenshuai.xi // only one playback flow or PVR flow exist 529*53ee8cc1Swenshuai.xi // Playback flow and PVR flow can exist simultaneously 530*53ee8cc1Swenshuai.xi 531*53ee8cc1Swenshuai.xi /// DMX flow type 532*53ee8cc1Swenshuai.xi typedef enum 533*53ee8cc1Swenshuai.xi { 534*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK = 0, ///< DMX playback flow 535*53ee8cc1Swenshuai.xi DMX_FLOW_PVR = 1, ///< DMX recording flow 536*53ee8cc1Swenshuai.xi DMX_FLOW_PVR1 = 2, ///< DMX recording flow 1 note: Not support for all chip 537*53ee8cc1Swenshuai.xi 538*53ee8cc1Swenshuai.xi DMX_FLOW_PVRCA = 3, ///< CI+ PVR 539*53ee8cc1Swenshuai.xi 540*53ee8cc1Swenshuai.xi DMX_FLOW_FILEIN_MM = 4, ///< DMX Filein flow with Main path Vido and MMFI path Audio 541*53ee8cc1Swenshuai.xi DMX_FLOW_MMFI0 = DMX_FLOW_FILEIN_MM, ///< DMX Filein flow with MMFI 0 (MMFI version 2.0) 542*53ee8cc1Swenshuai.xi DMX_FLOW_FILEIN_MM3D = 5, ///< DMX Filein flow with Main path Video, MMFI path 3DVideo, and MMFI Audio 543*53ee8cc1Swenshuai.xi DMX_FLOW_MMFI1 = DMX_FLOW_FILEIN_MM3D, ///< DMX Filein flow with MMFI 1 (MMFI version 2.0) 544*53ee8cc1Swenshuai.xi 545*53ee8cc1Swenshuai.xi DMX_FLOW_CIPHSS_PLAYBACK = 6, ///< Playback flow for CI+ HSS 2 path input for CI+ 546*53ee8cc1Swenshuai.xi DMX_FLOW_CIPHSS_PVRCA = 7, ///< PVR flow for CI+ HSS 2 path input for CI+ 547*53ee8cc1Swenshuai.xi 548*53ee8cc1Swenshuai.xi DMX_FLOW_PVR2 = 8, ///< DMX recording flow 2, note: Not support for all chip, PVR2 549*53ee8cc1Swenshuai.xi DMX_FLOW_PVR3 = 9, ///< DMX recording flow 3, note: Not support for all chip 550*53ee8cc1Swenshuai.xi DMX_FLOW_PVR4 = 10, ///< DMX recording flow 4, note: Not support for all chip 551*53ee8cc1Swenshuai.xi DMX_FLOW_PVR5 = 11, ///< DMX recording flow 5, note: Not support for all chip 552*53ee8cc1Swenshuai.xi 553*53ee8cc1Swenshuai.xi DMX_FLOW_TSO_PLAYBACK = 12, ///< DMX TSO playback flow (live0 & file0) 554*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK1 = 13, ///< DMX playback flow from TS1 (version 3.0) 555*53ee8cc1Swenshuai.xi DMX_FLOW_PVRCA1 = 14, ///< CI+ PVR (version 3.0) 556*53ee8cc1Swenshuai.xi 557*53ee8cc1Swenshuai.xi DMX_FLOW_TSO_PLAYBACK1 = 15, ///< DMX TSO1 playback flow (live1 & file1) 558*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK2 = 16, ///< DMX playback flow from TS2 (version 3.0/4.0) 559*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK3 = 17, ///< DMX playback flow from TS3 (version 4.0) 560*53ee8cc1Swenshuai.xi 561*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_NOCA = 18, ///< DMX playback flow without pass through CA 562*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_SRC_TS1 = 19, ///< DMX playback, CA input from TS1 output to Live0 563*53ee8cc1Swenshuai.xi 564*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK_FI = 20, ///< DMX playback flow from TSFI (version 3.0) 565*53ee8cc1Swenshuai.xi 566*53ee8cc1Swenshuai.xi DMX_FLOW_TSO_MMT = 21, ///< TSO MMT Flow 567*53ee8cc1Swenshuai.xi 568*53ee8cc1Swenshuai.xi DMX_FLOW_TSIO_PLAYBACK = 22, ///< DMX TSIO playback flow 569*53ee8cc1Swenshuai.xi 570*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK4 = 23, ///< DMX playback flow from TS4 (version 4.0) 571*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK5 = 24, ///< DMX playback flow from TS5 (version 4.0) 572*53ee8cc1Swenshuai.xi DMX_FLOW_PLAYBACK6 = 25, ///< DMX playback flow from TS6 (version 4.0) 573*53ee8cc1Swenshuai.xi 574*53ee8cc1Swenshuai.xi DMX_FLOW_NUM, 575*53ee8cc1Swenshuai.xi } DMX_FLOW; 576*53ee8cc1Swenshuai.xi 577*53ee8cc1Swenshuai.xi /// DMX input type 578*53ee8cc1Swenshuai.xi typedef enum 579*53ee8cc1Swenshuai.xi { 580*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DEMOD, ///< DMX input from internal demodulator 0 581*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM, ///< DMX input from memory 582*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT0, ///< DMX input from external input 0 583*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT1, ///< DMX input from external input 1 584*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT2, ///< DMX input from external input 2. note: Not support for all chip 585*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT3, ///< DMX input from external input 3. note: Not support for all chip 586*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM_NOPASSCA, ///< DMX input from memory, but not pass through CA 587*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DEMOD1, ///< DMX input from internal demodulator 1 588*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_TSO, ///< DMX input from TS Output 0 589*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_TSO1, ///< DMX input from TS Output 1 590*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM_PASSCA1, ///< DMX input from memory, but pass through CA1, not CA0 591*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_MEM1, ///< DMX input from memory path 2 592*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT4, ///< DMX input from external input 4. note: Not support for all chip 593*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT5, ///< DMX input from external input 5. note: Not support for all chip 594*53ee8cc1Swenshuai.xi 595*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT0_3WIRE, ///< DMX input from external 3-wire input 0. note: Not support for all chip 596*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT1_3WIRE, ///< DMX input from external 3-wire input 1. note: Not support for all chip 597*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT2_3WIRE, ///< DMX input from external 3-wire input 2. note: Not support for all chip 598*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT3_3WIRE, ///< DMX input from external 3-wire input 3. note: Not support for all chip 599*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT4_3WIRE, ///< DMX input from external 3-wire input 4. note: Not support for all chip 600*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT5_3WIRE, ///< DMX input from external 3-wire input 5. note: Not support for all chip 601*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT6_3WIRE, ///< DMX input from external 3-wire input 6. note: Not support for all chip 602*53ee8cc1Swenshuai.xi 603*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_TSIO, ///< DMX input from TSIO output 604*53ee8cc1Swenshuai.xi 605*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT6, ///< DMX input from external input 6. note: Not support for all chip 606*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT7, ///< DMX input from external input 7. note: Not support for all chip 607*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_EXT_INPUT7_3WIRE, ///< DMX input from external 3-wire input 7. note: Not support for all chip 608*53ee8cc1Swenshuai.xi 609*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT_DISABLE, ///< DMX input disable 610*53ee8cc1Swenshuai.xi 611*53ee8cc1Swenshuai.xi } DMX_FLOW_INPUT; 612*53ee8cc1Swenshuai.xi 613*53ee8cc1Swenshuai.xi /// DMX output pad 614*53ee8cc1Swenshuai.xi typedef enum 615*53ee8cc1Swenshuai.xi { 616*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_NONE = 0, 617*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_EXT_PAD1 = 1, ///< DMX output to external pad 1 618*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_EXT_PAD3 = 3, ///< DMX output to external pad 3 619*53ee8cc1Swenshuai.xi }DMX_FLOW_OUTPUT_PAD; 620*53ee8cc1Swenshuai.xi 621*53ee8cc1Swenshuai.xi /// DMX Transport Stream interface 622*53ee8cc1Swenshuai.xi typedef enum 623*53ee8cc1Swenshuai.xi { 624*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE0, ///< TS interface for live streams number 0 625*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE1, ///< TS interface for live streams number 1 626*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE2, ///< TS interface for live streams number 2 627*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE3, ///< TS interface for live streams number 3 628*53ee8cc1Swenshuai.xi 629*53ee8cc1Swenshuai.xi DMX_TSIF_FILE0, ///< TS interface for file input number 0 630*53ee8cc1Swenshuai.xi DMX_TSIF_FILE1, ///< TS interface for file input number 1 631*53ee8cc1Swenshuai.xi DMX_TSIF_FILE2, ///< TS interface for file input number 2 632*53ee8cc1Swenshuai.xi DMX_TSIF_FILE3, ///< TS interface for file input number 3 633*53ee8cc1Swenshuai.xi 634*53ee8cc1Swenshuai.xi DMX_TSIF_MMT, 635*53ee8cc1Swenshuai.xi 636*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE4, ///< TS interface for live streams number 4 637*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE5, ///< TS interface for live streams number 5 638*53ee8cc1Swenshuai.xi DMX_TSIF_LIVE6, ///< TS interface for live streams number 6 639*53ee8cc1Swenshuai.xi 640*53ee8cc1Swenshuai.xi DMX_TSIF_FILE4, ///< TS interface for file input number 4 641*53ee8cc1Swenshuai.xi DMX_TSIF_FILE5, ///< TS interface for file input number 5 642*53ee8cc1Swenshuai.xi DMX_TSIF_FILE6, ///< TS interface for file input number 6 643*53ee8cc1Swenshuai.xi 644*53ee8cc1Swenshuai.xi DMX_TSIF_MAX, 645*53ee8cc1Swenshuai.xi } DMX_TSIF; 646*53ee8cc1Swenshuai.xi 647*53ee8cc1Swenshuai.xi /// PVR recording engines - allow up to 6 simultaneous recordings 648*53ee8cc1Swenshuai.xi typedef enum 649*53ee8cc1Swenshuai.xi { 650*53ee8cc1Swenshuai.xi DMX_PVR_EGN0, ///< Engine 0 651*53ee8cc1Swenshuai.xi DMX_PVR_EGN1, ///< Engine 1 652*53ee8cc1Swenshuai.xi DMX_PVR_EGN2, ///< Engine 2 653*53ee8cc1Swenshuai.xi DMX_PVR_EGN3, ///< Engine 3 654*53ee8cc1Swenshuai.xi DMX_PVR_EGN4, ///< Engine 4 655*53ee8cc1Swenshuai.xi DMX_PVR_EGN5, ///< Engine 5 656*53ee8cc1Swenshuai.xi 657*53ee8cc1Swenshuai.xi DMX_PVR_TSO0, 658*53ee8cc1Swenshuai.xi 659*53ee8cc1Swenshuai.xi DMX_PVR_EGN6, ///< Engine 6 660*53ee8cc1Swenshuai.xi DMX_PVR_EGN7, ///< Engine 7 661*53ee8cc1Swenshuai.xi DMX_PVR_EGN8, ///< Engine 8 662*53ee8cc1Swenshuai.xi DMX_PVR_EGN9, ///< Engine 9 663*53ee8cc1Swenshuai.xi 664*53ee8cc1Swenshuai.xi DMX_PVR_ENG_NUM, 665*53ee8cc1Swenshuai.xi } DMX_PVR_ENG; 666*53ee8cc1Swenshuai.xi 667*53ee8cc1Swenshuai.xi #if 0 668*53ee8cc1Swenshuai.xi // make sure what you are doing before changing the value 669*53ee8cc1Swenshuai.xi /// DMX callback types 670*53ee8cc1Swenshuai.xi typedef enum 671*53ee8cc1Swenshuai.xi { 672*53ee8cc1Swenshuai.xi DMX_EVENT_DATA_READY = 0x00000001, ///< DMX event ready 673*53ee8cc1Swenshuai.xi DMX_EVENT_BUF_OVERFLOW = 0x00000002, ///< DMX event overflow 674*53ee8cc1Swenshuai.xi DMX_EVENT_PVRBUF_FULL = 0x00000010, ///< DMX event PVR buffer overflow 675*53ee8cc1Swenshuai.xi 676*53ee8cc1Swenshuai.xi /// TSP self task callback // optional --> default is CB by poll 677*53ee8cc1Swenshuai.xi DMX_EVENT_CB_MASK = 0x80000000, ///< DMX callback mask 678*53ee8cc1Swenshuai.xi DMX_EVENT_CB_POLL = 0x00000000, ///< DMX callback by polling // OBSOLETE 679*53ee8cc1Swenshuai.xi DMX_EVENT_CB_SELF = 0x80000000, ///< DMX callback by demux module 680*53ee8cc1Swenshuai.xi DMX_EVENT_CB_SELF_TYPE2 = 0xC0000000, ///< DMX callback by demux module , type 2 681*53ee8cc1Swenshuai.xi } DMX_EVENT; 682*53ee8cc1Swenshuai.xi #endif 683*53ee8cc1Swenshuai.xi 684*53ee8cc1Swenshuai.xi #define DMX_EVENT MS_U32 ///< DMX event type 685*53ee8cc1Swenshuai.xi #define DMX_EVENT_DATA_READY 0x00000001UL ///< DMX event ready 686*53ee8cc1Swenshuai.xi #define DMX_EVENT_BUF_OVERFLOW 0x00000002UL ///< DMX event overflow 687*53ee8cc1Swenshuai.xi #define DMX_EVENT_SEC_CRCERROR 0x00000004UL ///< DMX event CRC error 688*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVRBUF_FULL 0x00000010UL ///< DMX event PVR buffer overflow 689*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVR1BUF_FULL 0x00000020UL ///< DMX event Channel Browser buffer overflow 690*53ee8cc1Swenshuai.xi #define DMX_EVENT_PVRBUF_SIZE_MET 0x00000040UL ///< DMX event PVR buffer callback size meet. note: Not support for all chips 691*53ee8cc1Swenshuai.xi 692*53ee8cc1Swenshuai.xi /// TSP self task callback ///< optional --> default is CB by poll 693*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_MASK 0x80000000UL ///< DMX callback mask 694*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_POLL 0x00000000UL ///< DMX callback by polling // OBSOLETE 695*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_SELF 0x80000000UL ///< DMX callback by demux module 696*53ee8cc1Swenshuai.xi #define DMX_EVENT_CB_SELF_TYPE2 0xC0000000UL ///< DMX callback by demux module 697*53ee8cc1Swenshuai.xi 698*53ee8cc1Swenshuai.xi /// DMX burst type 699*53ee8cc1Swenshuai.xi typedef enum 700*53ee8cc1Swenshuai.xi { 701*53ee8cc1Swenshuai.xi DMX_BURSTSINGLE = 0x00, ///< Single byte 702*53ee8cc1Swenshuai.xi DMX_BURST2BYTE = 0x01, ///< 2 bytes 703*53ee8cc1Swenshuai.xi DMX_BURST4BYTE = 0x02, ///< 4 bytes 704*53ee8cc1Swenshuai.xi DMX_BURST8BYTE = 0x03, ///< 8 bytes 705*53ee8cc1Swenshuai.xi } DMX_BURSTTYPE; 706*53ee8cc1Swenshuai.xi 707*53ee8cc1Swenshuai.xi #if 0 708*53ee8cc1Swenshuai.xi // make sure what you are doing before changing the value 709*53ee8cc1Swenshuai.xi /// DMX section mode setting 710*53ee8cc1Swenshuai.xi typedef enum 711*53ee8cc1Swenshuai.xi { 712*53ee8cc1Swenshuai.xi DMX_SECT_MODE_CONTI = 0x00000000, ///< DMX receive section contiguously 713*53ee8cc1Swenshuai.xi DMX_SECT_MODE_ONESHOT = 0x00000001, ///< DMX only receive one section 714*53ee8cc1Swenshuai.xi 715*53ee8cc1Swenshuai.xi // optional 716*53ee8cc1Swenshuai.xi DMX_SECT_MODE_CRCCHK = 0x00000002, ///< DMX enables CRC check 717*53ee8cc1Swenshuai.xi DMX_SECT_MODE_AUTO_ADDR = 0x00000004, ///< DMX align read pointer to write pointer when get write pointer // OBSOLETE 718*53ee8cc1Swenshuai.xi } DMX_SECT_MODE; 719*53ee8cc1Swenshuai.xi #endif 720*53ee8cc1Swenshuai.xi 721*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE MS_U32 ///< DMX section mode type 722*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_CONTI 0x00000000UL ///< DMX receive section contiguously 723*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_ONESHOT 0x00000001UL ///< DMX only receive one section 724*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_PESSCMCHK 0x00000003UL ///< DMX checking PES SCMB status 725*53ee8cc1Swenshuai.xi 726*53ee8cc1Swenshuai.xi // optional 727*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_CRCCHK 0x00000002UL ///< DMX enables CRC check 728*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_AUTO_ADDR 0x00000004UL ///< DMX align read pointer to write pointer when get write pointer // OBSOLETE 729*53ee8cc1Swenshuai.xi #define DMX_SECT_MODE_AUTO_CRCCHK 0x00000008UL ///< DMX enables Auto CRC check, should not be set with DMX_SECT_MODE_CRCCHK together 730*53ee8cc1Swenshuai.xi 731*53ee8cc1Swenshuai.xi /// for MApi_DMX_AVFifo_Status return value u32FifoStatus 732*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS MS_U32 ///< DMX fifo status type 733*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 734*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_USAGE_MASK 0x0000000CUL ///< use this mask to get fifo level usage 735*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_USAGE_SHIFT 2UL 736*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_LV_EMPTY 0x00000001UL ///< if fifo level status equal to this macro means fifo is empty 737*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_RST_MASK 0x80000000UL ///< use this mask to get fifo reset status 738*53ee8cc1Swenshuai.xi #define DMX_FIFO_STATUS_RST_EN 0x80000000UL ///< if fifo reset status equal to this macro means fifo reset is enabled. 739*53ee8cc1Swenshuai.xi 740*53ee8cc1Swenshuai.xi /// DMX filein Engine by path 741*53ee8cc1Swenshuai.xi typedef enum 742*53ee8cc1Swenshuai.xi { 743*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF0, ///< File input path 0 744*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF1, ///< File input path 1 745*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF2, ///< File input path 2 746*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF3, ///< File input path 3 747*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF4, ///< File input path 4 748*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF5, ///< File input path 5 749*53ee8cc1Swenshuai.xi DMX_FILEIN_TSIF6, ///< File input path 6 750*53ee8cc1Swenshuai.xi DMX_FILEIN_INVALID, ///< Invalid file input path 751*53ee8cc1Swenshuai.xi } DMX_FILEIN_PATH; 752*53ee8cc1Swenshuai.xi 753*53ee8cc1Swenshuai.xi 754*53ee8cc1Swenshuai.xi /// DMX filein destination types 755*53ee8cc1Swenshuai.xi typedef enum 756*53ee8cc1Swenshuai.xi { 757*53ee8cc1Swenshuai.xi DMX_PES_AUDIO2_FIFO = 0, ///< DMX destination is audio2 fifo 758*53ee8cc1Swenshuai.xi DMX_PES_AUDIO_FIFO = 1, ///< DMX destination is audio fifo 759*53ee8cc1Swenshuai.xi DMX_PES_VIDEO_FIFO = 2, ///< DMX destination is video fifo 760*53ee8cc1Swenshuai.xi DMX_PES_NO_BYPASS_FIFO = 3, ///< DMX destination with no bypass 761*53ee8cc1Swenshuai.xi DMX_PES_VIDEO3D_FIFO = 4, ///< DMX destination is video3D fifo 762*53ee8cc1Swenshuai.xi DMX_PES_VIDEO2_FIFO = DMX_PES_VIDEO3D_FIFO, ///< DMX destination is video2 fifo 763*53ee8cc1Swenshuai.xi DMX_PES_AUDIO3_FIFO = 5, ///< DMX destination is audio3 fifo 764*53ee8cc1Swenshuai.xi DMX_PES_AUDIO4_FIFO = 6, ///< DMX destination is audio4 fifo 765*53ee8cc1Swenshuai.xi DMX_PES_VIDEO3_FIFO = 7, ///< DMX destination is video3 fifo 766*53ee8cc1Swenshuai.xi DMX_PES_VIDEO4_FIFO = 8, ///< DMX destination is video4 fifo 767*53ee8cc1Swenshuai.xi DMX_PES_AUDIO5_FIFO = 9, ///< DMX destination is audio5 fifo 768*53ee8cc1Swenshuai.xi DMX_PES_AUDIO6_FIFO = 10, ///< DMX destination is audio6 fifo 769*53ee8cc1Swenshuai.xi DMX_PES_VIDEO5_FIFO = 11, ///< DMX destination is video5 fifo 770*53ee8cc1Swenshuai.xi DMX_PES_VIDEO6_FIFO = 12, ///< DMX destination is video6 fifo 771*53ee8cc1Swenshuai.xi DMX_PES_VIDEO7_FIFO = 13, ///< DMX destination is video7 fifo 772*53ee8cc1Swenshuai.xi DMX_PES_VIDEO8_FIFO = 14, ///< DMX destination is video8 fifo 773*53ee8cc1Swenshuai.xi 774*53ee8cc1Swenshuai.xi } DMX_FILEIN_DST; ///< DMXPESDATAFIFO; 775*53ee8cc1Swenshuai.xi 776*53ee8cc1Swenshuai.xi /// DMX callback prototype 777*53ee8cc1Swenshuai.xi typedef void (*DMX_NotifyCb)(MS_U8 u8DmxId, DMX_EVENT enEvent); ///< Callback type 778*53ee8cc1Swenshuai.xi /// DMX type 2 callback prototype 779*53ee8cc1Swenshuai.xi typedef void (*DMX_Type2NotifyCb)(MS_U8 u8DmxId, DMX_EVENT enEvent, MS_U32 NotifyParam1); ///< Callback type 2 780*53ee8cc1Swenshuai.xi /// DMX type 2 callback prototype for filter number > 256 781*53ee8cc1Swenshuai.xi typedef void (*DMX_Type2NotifyCb_Ex)(MS_U32 u32DmxId, DMX_EVENT enEvent, void* NotifyParamEx); ///< Callback_Ex type 2 782*53ee8cc1Swenshuai.xi /// DMX callback used in copy data \ref MApi_DMX_CopyData 783*53ee8cc1Swenshuai.xi typedef MS_BOOL (*DMX_CheckCb)(MS_U8 u8DmxId, MS_U8* start, MS_U8* end, MS_U8* read, MS_U8* write); 784*53ee8cc1Swenshuai.xi 785*53ee8cc1Swenshuai.xi // dummy data structure 786*53ee8cc1Swenshuai.xi typedef struct 787*53ee8cc1Swenshuai.xi { 788*53ee8cc1Swenshuai.xi MS_U32 streaminfo; 789*53ee8cc1Swenshuai.xi } DMX_Stream_info; 790*53ee8cc1Swenshuai.xi 791*53ee8cc1Swenshuai.xi /// DMX open information structure for filter number > 256 792*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 793*53ee8cc1Swenshuai.xi { 794*53ee8cc1Swenshuai.xi MS_U32 u32DmxInfoSize; // total size of DMX_Info_EX data structure 795*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE DmxFltType; 796*53ee8cc1Swenshuai.xi } DMX_Info_EX; 797*53ee8cc1Swenshuai.xi 798*53ee8cc1Swenshuai.xi /// DMX section filter information structure 799*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 800*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 801*53ee8cc1Swenshuai.xi #else 802*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 803*53ee8cc1Swenshuai.xi #endif 804*53ee8cc1Swenshuai.xi { 805*53ee8cc1Swenshuai.xi MS_PHY SectBufAddr; ///< DMX section buffer in physical address 806*53ee8cc1Swenshuai.xi MS_U32 SectBufSize; ///< DMX section buffer size 807*53ee8cc1Swenshuai.xi DMX_SECT_MODE SectMode; ///< DMX section mode 808*53ee8cc1Swenshuai.xi DMX_EVENT Event; ///< DMX section event 809*53ee8cc1Swenshuai.xi DMX_NotifyCb pNotify; ///< DMX section callback 810*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) || defined(UFO_PUBLIC_HEADER_700) 811*53ee8cc1Swenshuai.xi #if !defined (__aarch64__) 812*53ee8cc1Swenshuai.xi MS_U32 u32AlignDummy0; //align size for MI init share mem size check fail 813*53ee8cc1Swenshuai.xi #endif 814*53ee8cc1Swenshuai.xi #endif 815*53ee8cc1Swenshuai.xi DMX_Type2NotifyCb pType2Notify; ///< DMX section callback type 2 816*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) || defined(UFO_PUBLIC_HEADER_700) 817*53ee8cc1Swenshuai.xi #if !defined (__aarch64__) 818*53ee8cc1Swenshuai.xi MS_U32 u32AlignDummy1; //align size for MI init share mem size check fail 819*53ee8cc1Swenshuai.xi #endif 820*53ee8cc1Swenshuai.xi #endif 821*53ee8cc1Swenshuai.xi MS_U32 Type2NotifyParam1; ///< DMX section callback type 2 user's data 822*53ee8cc1Swenshuai.xi } DMX_Sect_info; 823*53ee8cc1Swenshuai.xi 824*53ee8cc1Swenshuai.xi /// DMX section filter information structure for filter number > 256 825*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 826*53ee8cc1Swenshuai.xi { 827*53ee8cc1Swenshuai.xi MS_U32 u32SectInfoSize; // sizeof(DMX_Sect_info_Ex) 828*53ee8cc1Swenshuai.xi MS_PHY SectBufAddr; ///< DMX section buffer in physical address 829*53ee8cc1Swenshuai.xi MS_U32 SectBufSize; ///< DMX section buffer size 830*53ee8cc1Swenshuai.xi DMX_SECT_MODE SectMode; ///< DMX section mode 831*53ee8cc1Swenshuai.xi DMX_EVENT Event; ///< DMX section event 832*53ee8cc1Swenshuai.xi DMX_Type2NotifyCb_Ex pType2Notify_Ex; ///< DMX section callback type 2 833*53ee8cc1Swenshuai.xi void* pType2NotifyParamEx;///< DMX section callback type 2 user's data 834*53ee8cc1Swenshuai.xi } DMX_Sect_info_Ex; 835*53ee8cc1Swenshuai.xi 836*53ee8cc1Swenshuai.xi 837*53ee8cc1Swenshuai.xi /// DMX filter information structure 838*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 839*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 840*53ee8cc1Swenshuai.xi #else 841*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 842*53ee8cc1Swenshuai.xi #endif 843*53ee8cc1Swenshuai.xi { 844*53ee8cc1Swenshuai.xi union { 845*53ee8cc1Swenshuai.xi DMX_Stream_info StreamInfo; ///< DMX stream information for future use 846*53ee8cc1Swenshuai.xi DMX_Sect_info SectInfo; ///< DMX section information 847*53ee8cc1Swenshuai.xi } Info; 848*53ee8cc1Swenshuai.xi } DMX_Flt_info; 849*53ee8cc1Swenshuai.xi 850*53ee8cc1Swenshuai.xi /// DMX filter information structure for filter number > 256 851*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 852*53ee8cc1Swenshuai.xi { 853*53ee8cc1Swenshuai.xi MS_U32 u32FltInfoSize; // sizeof(DMX_Flt_info_Ex) 854*53ee8cc1Swenshuai.xi MS_BOOL bSet; 855*53ee8cc1Swenshuai.xi DMX_Sect_info_Ex SectInfoEx; 856*53ee8cc1Swenshuai.xi DMX_FILTER_TYPE DmxFltType; 857*53ee8cc1Swenshuai.xi } DMX_Flt_info_Ex; 858*53ee8cc1Swenshuai.xi 859*53ee8cc1Swenshuai.xi /// DMX PVR information structure 860*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 861*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 862*53ee8cc1Swenshuai.xi #else 863*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 864*53ee8cc1Swenshuai.xi #endif 865*53ee8cc1Swenshuai.xi { 866*53ee8cc1Swenshuai.xi MS_PHY pPvrBuf0; ///< DMX PVR buffer 0 starting address 867*53ee8cc1Swenshuai.xi MS_PHY pPvrBuf1; ///< DMX PVR buffer 1 starting address 868*53ee8cc1Swenshuai.xi MS_U32 PvrBufSize0; ///< DMX PVR buffer 0 size 869*53ee8cc1Swenshuai.xi MS_U32 PvrBufSize1; ///< DMX PVR buffer 1 size 870*53ee8cc1Swenshuai.xi DMX_EVENT Event; ///< DMX PVR event 871*53ee8cc1Swenshuai.xi DMX_NotifyCb pNotify; ///< DMX PVR callback 872*53ee8cc1Swenshuai.xi 873*53ee8cc1Swenshuai.xi MS_U16 u16CaPvrModel; ///< DMX PVR CA mode 874*53ee8cc1Swenshuai.xi MS_BOOL bSpsEnable; ///< DMX PVR CA mode 875*53ee8cc1Swenshuai.xi 876*53ee8cc1Swenshuai.xi } DMX_Pvr_info; 877*53ee8cc1Swenshuai.xi 878*53ee8cc1Swenshuai.xi /// DMX CAPVR mode 879*53ee8cc1Swenshuai.xi typedef enum 880*53ee8cc1Swenshuai.xi { 881*53ee8cc1Swenshuai.xi DMX_CA_PVR_TSP = 0x00000000UL, 882*53ee8cc1Swenshuai.xi DMX_CA_PVR_PROG0 = 0x00000001UL, 883*53ee8cc1Swenshuai.xi DMX_CA_PVR_PROG1 = 0x00000002UL, 884*53ee8cc1Swenshuai.xi }DMX_CA_PVRMODE; 885*53ee8cc1Swenshuai.xi 886*53ee8cc1Swenshuai.xi //---------------------------------- 887*53ee8cc1Swenshuai.xi /// DMX debug table information structure 888*53ee8cc1Swenshuai.xi //---------------------------------- 889*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 890*53ee8cc1Swenshuai.xi { 891*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 892*53ee8cc1Swenshuai.xi DMX_DEBUG_SRC TspSrc; 893*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO TspFifo; 894*53ee8cc1Swenshuai.xi } DMX_DisContiCnt_info, DMX_DropPktCnt_info; 895*53ee8cc1Swenshuai.xi 896*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 897*53ee8cc1Swenshuai.xi { 898*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 899*53ee8cc1Swenshuai.xi DMX_DEBUG_TSIF TspTsif; 900*53ee8cc1Swenshuai.xi } DMX_LockPktCnt_info; 901*53ee8cc1Swenshuai.xi 902*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 903*53ee8cc1Swenshuai.xi { 904*53ee8cc1Swenshuai.xi DMX_DEBUG_CMD TspCmd; 905*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO TspFifo; 906*53ee8cc1Swenshuai.xi DMX_DEBUG_FIFO_SRC TspFifoSrc; 907*53ee8cc1Swenshuai.xi } DMX_AVPktCnt_info; 908*53ee8cc1Swenshuai.xi 909*53ee8cc1Swenshuai.xi /// DMX capability query type, all the capabilities' info are returned by MS_U32* except DMX_CAP_*_RANGE, 910*53ee8cc1Swenshuai.xi /// and return MS_U32* data0 & data1(array) for DMX_CAP_*_RANGE 911*53ee8cc1Swenshuai.xi typedef enum 912*53ee8cc1Swenshuai.xi { 913*53ee8cc1Swenshuai.xi DMX_CAP_PID_FILTER_NUM = 0, ///< Get PID filter number 914*53ee8cc1Swenshuai.xi DMX_CAP_SEC_FILTER_NUM = 1, ///< Get section filter number 915*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_NUM = 2, ///< Get section buffer number 916*53ee8cc1Swenshuai.xi 917*53ee8cc1Swenshuai.xi DMX_CAP_PVR_ENG_NUM = 3, ///< Get pvr engine number 918*53ee8cc1Swenshuai.xi DMX_CAP_PVR_FILTER_NUM = 4, ///< Get pvr filter number 919*53ee8cc1Swenshuai.xi DMX_CAP_PVR1_FILTER_NUM = 5, ///< Get pvr1 filter number 920*53ee8cc1Swenshuai.xi 921*53ee8cc1Swenshuai.xi DMX_CAP_MMFI_AUDIO_FILTER_NUM = 6, ///< Get MM file in audio path filter number 922*53ee8cc1Swenshuai.xi DMX_CAP_MMFI_V3D_FILTER_NUM = 7, ///< Get MM file in video 3D path filter number 923*53ee8cc1Swenshuai.xi 924*53ee8cc1Swenshuai.xi DMX_CAP_MMFI0_FILTER_NUM = 6, ///< Get MM file in 0 path filter number 925*53ee8cc1Swenshuai.xi DMX_CAP_MMFI1_FILTER_NUM = 7, ///< Get MM file in 1 path filter number 926*53ee8cc1Swenshuai.xi 927*53ee8cc1Swenshuai.xi DMX_CAP_TSIF_NUM = 8, ///< Get ts interface number 928*53ee8cc1Swenshuai.xi DMX_CAP_DEMOD_NUM = 9, ///< Get demod support number 929*53ee8cc1Swenshuai.xi DMX_CAP_TS_PAD_NUM = 10, ///< Get TS pad support number 930*53ee8cc1Swenshuai.xi DMX_CAP_VQ_NUM = 11, ///< Get virtual queue support number 931*53ee8cc1Swenshuai.xi 932*53ee8cc1Swenshuai.xi DMX_CAP_CA_FLT_NUM = 12, ///< Get descramble filter number 933*53ee8cc1Swenshuai.xi DMX_CAP_CA_KEY_NUM = 13, ///< Get total descramble key number 934*53ee8cc1Swenshuai.xi 935*53ee8cc1Swenshuai.xi DMX_CAP_FW_ALIGN = 14, ///< Get MIU alignment in bytes of DMX FW 936*53ee8cc1Swenshuai.xi DMX_CAP_VQ_ALIGN = 15, ///< Get MIU alignment in bytes of Virtual queue 937*53ee8cc1Swenshuai.xi DMX_CAP_VQ_PITCH = 16, ///< Get length in bytes in bytes of one VQ unit 938*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_ALIGN = 17, ///< Get MIU alignment in bytes of section buffer 939*53ee8cc1Swenshuai.xi DMX_CAP_PVR_ALIGN = 18, ///< Get miu alignment in bytes of record buffer 940*53ee8cc1Swenshuai.xi 941*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA_PATH_NUM = 19, ///< Get the numbers of descramble record path 942*53ee8cc1Swenshuai.xi 943*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 944*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA0_FLT_RANGE = 21, ///< Get the range of PVRCA0 filter id. data0 is start ID, data 1 is end ID 945*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA1_FLT_RANGE = 22, ///< Get the range of PVRCA1 filter id. data0 is start ID, data 1 is end ID 946*53ee8cc1Swenshuai.xi DMX_CAP_PVRCA2_FLT_RANGE = 23, ///< Get the range of PVRCA2 filter id. data0 is start ID, data 1 is end ID 947*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 948*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 949*53ee8cc1Swenshuai.xi 950*53ee8cc1Swenshuai.xi DMX_CAP_HW_TYPE = 26, ///< Get the HW architecture type. 0xXXX0: No PVR, 0x100X: TV series, 0x200X: STB series 951*53ee8cc1Swenshuai.xi 952*53ee8cc1Swenshuai.xi DMX_CAP_RESOURCE_SIZE = 27, ///< Get DMX Private Resource data struct size (Share resource) 953*53ee8cc1Swenshuai.xi 954*53ee8cc1Swenshuai.xi DMX_CAP_VFIFO_NUM = 28, ///< Get VFIFO support number 955*53ee8cc1Swenshuai.xi DMX_CAP_AFIFO_NUM = 29, ///< Get AFIFO support number 956*53ee8cc1Swenshuai.xi 957*53ee8cc1Swenshuai.xi DMX_CAP_HWPCR_SUPPORT = 30, ///< Get HWPCR support status 958*53ee8cc1Swenshuai.xi DMX_CAP_PCRFLT_START_IDX = 31, ///< Get PCR start index 959*53ee8cc1Swenshuai.xi DMX_CAP_TSP_HWWP_SET_NUM = 32, ///< Get TSP write protect set numbers 960*53ee8cc1Swenshuai.xi 961*53ee8cc1Swenshuai.xi DMX_CAP_DSCMB_ENG_NUM = 33, ///< Get DSCMB engine numbers 962*53ee8cc1Swenshuai.xi 963*53ee8cc1Swenshuai.xi DMX_CAP_MAX_MERGESTR_NUM = 34, ///< Get Maxumum merge stream number 964*53ee8cc1Swenshuai.xi 965*53ee8cc1Swenshuai.xi DMX_CAP_MAX_SEC_FLT_DEPTH = 35, 966*53ee8cc1Swenshuai.xi DMX_CAP_FW_BUF_SIZE = 36, 967*53ee8cc1Swenshuai.xi DMX_CAP_FW_BUF_RANGE = 37, 968*53ee8cc1Swenshuai.xi DMX_CAP_VQ_BUF_RANGE = 38, 969*53ee8cc1Swenshuai.xi DMX_CAP_SEC_BUF_RANGE = 39, 970*53ee8cc1Swenshuai.xi DMX_CAP_FIQ_NUM = 40, 971*53ee8cc1Swenshuai.xi 972*53ee8cc1Swenshuai.xi DMX_CAP_NULL, 973*53ee8cc1Swenshuai.xi } DMX_QUERY_TYPE; 974*53ee8cc1Swenshuai.xi 975*53ee8cc1Swenshuai.xi /// HW architecture type 976*53ee8cc1Swenshuai.xi typedef enum 977*53ee8cc1Swenshuai.xi { 978*53ee8cc1Swenshuai.xi DMX_HW_TYPE_NONE = 0UL, 979*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_SERIES = 0x00001000UL, ///< The HW architecture is TV series without PVR cunfction 980*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_TYPE1 = 0x00001001UL, ///< The HW architecture is TV series with Seperate PVR filters 981*53ee8cc1Swenshuai.xi DMX_HW_TYPE_TV_TYPE2 = 0x00001002UL, ///< The HW architecture is TV series with general PVR filters 982*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 983*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_SERIES = 0x00002000UL, ///< The HW architecture is BOX series without PVR cunfction 984*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE1 = 0x00002001UL, ///< The HW architecture is BOX series 1 985*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE2 = 0x00002002UL, ///< The HW architecture is BOX series 2 986*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE3 = 0x00002003UL, ///< The HW architecture is BOX series 3 987*53ee8cc1Swenshuai.xi DMX_HW_TYPE_STB_TYPE3_CASPS = 0x80002003UL, ///< The HW architecture is BOX series 3 with PVR CA SPS enable mode 988*53ee8cc1Swenshuai.xi } DMX_HW_TYPE; 989*53ee8cc1Swenshuai.xi 990*53ee8cc1Swenshuai.xi /// Time-stamping clock type 991*53ee8cc1Swenshuai.xi typedef enum 992*53ee8cc1Swenshuai.xi { 993*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_90K = 0x00000000UL, ///< Original timestamp clock 90K 994*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_27M = 0x00000001UL, ///< Original timestamp clock 27M 995*53ee8cc1Swenshuai.xi 996*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC0_90K = 0x00000100UL, ///< Select STC0 90K clock for timestamp clock source 997*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC0_27M = 0x00000101UL, ///< Select STC0 27M clock for timestamp clock source 998*53ee8cc1Swenshuai.xi 999*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC1_90K = 0x00000200UL, ///< Select STC1 90K clock for timestamp clock source 1000*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC1_27M = 0x00000201UL, ///< Select STC1 27M clock for timestamp clock source 1001*53ee8cc1Swenshuai.xi 1002*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC2_90K = 0x00000300UL, ///< Select STC2 90K clock for timestamp clock source 1003*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC2_27M = 0x00000301UL, ///< Select STC2 27M clock for timestamp clock source 1004*53ee8cc1Swenshuai.xi 1005*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC3_90K = 0x00000400UL, ///< Select STC3 90K clock for timestamp clock source 1006*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC3_27M = 0x00000401UL, ///< Select STC3 27M clock for timestamp clock source 1007*53ee8cc1Swenshuai.xi 1008*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC4_90K = 0x00000500UL, ///< Select STC4 90K clock for timestamp clock source 1009*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC4_27M = 0x00000501UL, ///< Select STC4 27M clock for timestamp clock source 1010*53ee8cc1Swenshuai.xi 1011*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC5_90K = 0x00000600UL, ///< Select STC5 90K clock for timestamp clock source 1012*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC5_27M = 0x00000601UL, ///< Select STC5 27M clock for timestamp clock source 1013*53ee8cc1Swenshuai.xi 1014*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC6_90K = 0x00000700UL, ///< Select STC6 90K clock for timestamp clock source 1015*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC6_27M = 0x00000701UL, ///< Select STC6 27M clock for timestamp clock source 1016*53ee8cc1Swenshuai.xi 1017*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC7_90K = 0x00000800UL, ///< Select STC7 90K clock for timestamp clock source 1018*53ee8cc1Swenshuai.xi DMX_TIMESTAMP_CLK_STC7_27M = 0x00000801UL ///< Select STC7 27M clock for timestamp clock source 1019*53ee8cc1Swenshuai.xi 1020*53ee8cc1Swenshuai.xi } DMX_TimeStamp_Clk; 1021*53ee8cc1Swenshuai.xi 1022*53ee8cc1Swenshuai.xi /// TSP file in Packet mode 1023*53ee8cc1Swenshuai.xi typedef enum //_DMX_Filein_Packmode 1024*53ee8cc1Swenshuai.xi { 1025*53ee8cc1Swenshuai.xi DMX_PKTMODE_188 = 0x00000000UL, ///< DMX live/file in packet size with 188 (Single stream) 1026*53ee8cc1Swenshuai.xi DMX_PKTMODE_192 = 0x00000001UL, ///< DMX file in packet size with 192 (Single stream) 1027*53ee8cc1Swenshuai.xi DMX_PKTMODE_204 = 0x00000002UL, ///< DMX file in packet size with 204 (Single stream) 1028*53ee8cc1Swenshuai.xi DMX_PKTMODE_130 = 0x00000003UL, ///< DMX live/file in packet size with 130 (RVU/DSS) 1029*53ee8cc1Swenshuai.xi DMX_PKTMODE_134 = 0x00000004UL, ///< DMX file in packet size with 134 (RVU with timestamp) 1030*53ee8cc1Swenshuai.xi DMX_PKTMODE_200 = 0x00000005UL, ///< DMX live/file in packet size with 200 (Open cable Single stream) 1031*53ee8cc1Swenshuai.xi 1032*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG188 = 0x00000006UL, ///< DMX live/file in packet size with 188 (Merge stream) 1033*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG192 = 0x00000007UL, ///< DMX live/file in packet size with 192 (Merge stream) 1034*53ee8cc1Swenshuai.xi DMX_PKTMODE_MERG200 = 0x00000008UL, ///< DMX live/file in packet size with 200 (Open cable Merge stream) 1035*53ee8cc1Swenshuai.xi 1036*53ee8cc1Swenshuai.xi DMX_PKTMODE_MXL192 = 0x00000009UL, ///< DMX live/file in packet size with 192 (MxL 192 mode) 1037*53ee8cc1Swenshuai.xi DMX_PKTMODE_MXL196 = 0x0000000AUL, ///< DMX live/file in packet size with 196 (MxL 196 mode) 1038*53ee8cc1Swenshuai.xi DMX_PKTMODE_MXL200 = 0x0000000BUL, ///< DMX live/file in packet size with 196 (MxL 196 mode) 1039*53ee8cc1Swenshuai.xi 1040*53ee8cc1Swenshuai.xi DMX_PKTMODE_PES = 0x00000100UL ///< DMX pvr PES packet size 1041*53ee8cc1Swenshuai.xi } DMX_Filein_PacketMode; 1042*53ee8cc1Swenshuai.xi 1043*53ee8cc1Swenshuai.xi #define DMX_PacketMode DMX_Filein_PacketMode 1044*53ee8cc1Swenshuai.xi 1045*53ee8cc1Swenshuai.xi /// TSP file in information structure 1046*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1047*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1048*53ee8cc1Swenshuai.xi #else 1049*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1050*53ee8cc1Swenshuai.xi #endif 1051*53ee8cc1Swenshuai.xi { 1052*53ee8cc1Swenshuai.xi MS_U32 Rate; ///< DMX file in rate 1053*53ee8cc1Swenshuai.xi DMX_Filein_PacketMode PKT_Mode; ///< DMX file in packet size mode 1054*53ee8cc1Swenshuai.xi } DMX_Filein_info; 1055*53ee8cc1Swenshuai.xi 1056*53ee8cc1Swenshuai.xi /// TSP PVR record Packet mode 1057*53ee8cc1Swenshuai.xi #define DMX_Pvr_PacketMode DMX_Filein_PacketMode 1058*53ee8cc1Swenshuai.xi 1059*53ee8cc1Swenshuai.xi 1060*53ee8cc1Swenshuai.xi /// TSP Flow Input information structure 1061*53ee8cc1Swenshuai.xi /// For TSO_20 structure DMX_TSO_InputCfg 1062*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1063*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1064*53ee8cc1Swenshuai.xi #else 1065*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1066*53ee8cc1Swenshuai.xi #endif 1067*53ee8cc1Swenshuai.xi { 1068*53ee8cc1Swenshuai.xi DMX_FLOW_INPUT Input; 1069*53ee8cc1Swenshuai.xi MS_BOOL bClkInv; 1070*53ee8cc1Swenshuai.xi MS_BOOL bExtSync; 1071*53ee8cc1Swenshuai.xi MS_BOOL bParallel; 1072*53ee8cc1Swenshuai.xi }DMX_FlowInput_Info; 1073*53ee8cc1Swenshuai.xi 1074*53ee8cc1Swenshuai.xi //MMFI Path 1075*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH MS_U32 ///< DMX multimedia file input path type. 1076*53ee8cc1Swenshuai.xi #define DMX_MMFI_AUDIO 0UL ///< DMX destination with no bypass to MM Audio path 1077*53ee8cc1Swenshuai.xi #define DMX_MMFI_VIDEO 1UL ///< DMX destination with no bypass to MM Video path 1078*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH0 DMX_MMFI_AUDIO ///< DMX MMFI path 0 to MM Audio path 1079*53ee8cc1Swenshuai.xi #define DMX_MMFI_PATH1 DMX_MMFI_VIDEO ///< DMX MMFI path 1 to MM Video path 1080*53ee8cc1Swenshuai.xi 1081*53ee8cc1Swenshuai.xi /// Multimedia file input filter type 1082*53ee8cc1Swenshuai.xi /// must alignment with TSP_FIFO_XXX in halTSP.h 1083*53ee8cc1Swenshuai.xi typedef enum 1084*53ee8cc1Swenshuai.xi { 1085*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUD = 0x00, ///< Pid filter whose output is sent to Audio decoder FIFO 1086*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDB = 0x01, ///< Pid filter whose output is sent to Audio-B decoder FIFO 1087*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD3D = 0x02, ///< Pid filter whose output is sent to Video 3D decoder FIFO 1088*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD2 = DMX_MMFI_FLTTYPE_VD3D, ///< Pid filter whose output is sent to Video-2 decoder FIFO 1089*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD = 0x03, ///< Pid filter whose output is sent to Video decoder FIFO 1090*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDC = 0x04, ///< Pid filter whose output is sent to Audio-C decoder FIFO 1091*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDD = 0x05, ///< Pid filter whose output is sent to Audio-D decoder FIFO 1092*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD3 = 0x06, ///< Pid filter whose output is sent to Video-3 decoder FIFO 1093*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD4 = 0x07, ///< Pid filter whose output is sent to Video-4 decoder FIFO 1094*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDE = 0x08, ///< Pid filter whose output is sent to Audio-E decoder FIFO 1095*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_AUDF = 0x09, ///< Pid filter whose output is sent to Audio-F decoder FIFO 1096*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD5 = 0x0A, ///< Pid filter whose output is sent to Video-5 decoder FIFO 1097*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD6 = 0x0B, ///< Pid filter whose output is sent to Video-6 decoder FIFO 1098*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD7 = 0x0C, ///< Pid filter whose output is sent to Video-7 decoder FIFO 1099*53ee8cc1Swenshuai.xi DMX_MMFI_FLTTYPE_VD8 = 0x0D, ///< Pid filter whose output is sent to Video-8 decoder FIFO 1100*53ee8cc1Swenshuai.xi 1101*53ee8cc1Swenshuai.xi DMX_MMFI1_FLTTYPE_MASK = 0x80, 1102*53ee8cc1Swenshuai.xi }DMX_MMFI_FLTTYPE; 1103*53ee8cc1Swenshuai.xi 1104*53ee8cc1Swenshuai.xi /// Multimedia file input destination 1105*53ee8cc1Swenshuai.xi typedef enum 1106*53ee8cc1Swenshuai.xi { 1107*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_AU = 0x0000, ///< No audio bypass 1108*53ee8cc1Swenshuai.xi 1109*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AU = 0x0001, ///< Directly bypass file-in data to audio fifo without any check or transformation. Since there is a PES parser between audio fifo and audio decoder, the data format should be PES formated such that the file can be decoded correctly 1110*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUB = 0x0002, ///< Directly bypass file-in data to audio-B fifo without any check or transformation. Since there is a PES parser between audio-B fifo and audio decoder, the data format should be PES formated such that the data can be decoded correctly 1111*53ee8cc1Swenshuai.xi 1112*53ee8cc1Swenshuai.xi DMX_MMFI_PES_APID_BYPASS = 0x0004, ///< Audio PES data with bypass of audio PID to audio FIFO 1113*53ee8cc1Swenshuai.xi DMX_MMFI_PES_APIDB_BYPASS = 0x0008, ///< Audio-B PES data with bypass audio-B PID to audio-2 FIFO 1114*53ee8cc1Swenshuai.xi 1115*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_V3D = 0x0010, ///< Extract PES data from input Transport Stream to video 3D FIFO 1116*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_VD2 = DMX_MMFI_PES_NO_BYPASS_V3D, 1117*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_V3D = 0x0020, ///< Extract PES data from input Program Stream to video 3D FIFO 1118*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD2 = DMX_MMFI_PES_PS_V3D, 1119*53ee8cc1Swenshuai.xi DMX_MMFI_PES_V3DPID_BYPASS = 0x0040, ///< Video 3D PES data with bypass of video 3D PID to video 3D FIFO 1120*53ee8cc1Swenshuai.xi DMX_MMFI_PES_V2PID_BYPASS = DMX_MMFI_PES_V3DPID_BYPASS, 1121*53ee8cc1Swenshuai.xi 1122*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_VD = 0x0080, ///< No video bypass 1123*53ee8cc1Swenshuai.xi DMX_MMFI_PES_VPID_BYPASS = 0x0100, ///< Directly bypass file-in data to video fifo without any check or transformation. Since there is a PES parser between video fifo and video decoder, the data format should be PES formated such that the file can be decoded correctly 1124*53ee8cc1Swenshuai.xi 1125*53ee8cc1Swenshuai.xi DMX_MMFI_PES_NO_BYPASS_TS = 0x0200, ///< The file-in data need to be TS format. Only pid-hit packets will be sent to audio/audioB fifo. User can use MApi_DMX_MMFI_Pid_Open() to set the pid filter to audio or audioB 1126*53ee8cc1Swenshuai.xi 1127*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD = 0x0400, ///< Program stream audio PES data bypass to video FIFO 1128*53ee8cc1Swenshuai.xi 1129*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUC = 0x0800, ///< Program stream audio PES data bypass to audio-C FIFO 1130*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUD = 0x1000, ///< Program stream audio PES data bypass to audio-D FIFO 1131*53ee8cc1Swenshuai.xi 1132*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD3 = 0x2000, ///< Program stream audio PES data bypass to video-3 FIFO 1133*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD4 = 0x4000, ///< Program stream audio PES data bypass to video-4 FIFO 1134*53ee8cc1Swenshuai.xi 1135*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUE = 0x0003, ///< Program stream audio PES data bypass to audio-E FIFO 1136*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_AUF = 0x0005, ///< Program stream audio PES data bypass to audio-F FIFO 1137*53ee8cc1Swenshuai.xi 1138*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD5 = 0x0006, ///< Program stream audio PES data bypass to video-5 FIFO 1139*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD6 = 0x0007, ///< Program stream audio PES data bypass to video-6 FIFO 1140*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD7 = 0x0009, ///< Program stream audio PES data bypass to video-7 FIFO 1141*53ee8cc1Swenshuai.xi DMX_MMFI_PES_PS_VD8 = 0x000A, ///< Program stream audio PES data bypass to video-8 FIFO 1142*53ee8cc1Swenshuai.xi 1143*53ee8cc1Swenshuai.xi DMX_MMFI1_PES_TYPE_MASK = 0x8000, ///< Must set, when using MMFI1 path 1144*53ee8cc1Swenshuai.xi }DMX_MMFI_DST; 1145*53ee8cc1Swenshuai.xi 1146*53ee8cc1Swenshuai.xi /// DMX TSO Clk 1147*53ee8cc1Swenshuai.xi typedef enum 1148*53ee8cc1Swenshuai.xi { 1149*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_DIV2N, 1150*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_DIVN, 1151*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_62M, 1152*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_54M, 1153*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_PTSOOUT, 1154*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_PTSOOUT_DIV8, 1155*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_Dmd, 1156*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_27M, 1157*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_108M, 1158*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLK_123M, 1159*53ee8cc1Swenshuai.xi }DMX_TSO_OutClk; 1160*53ee8cc1Swenshuai.xi 1161*53ee8cc1Swenshuai.xi /// DMX TSO Clk Source 1162*53ee8cc1Swenshuai.xi typedef enum 1163*53ee8cc1Swenshuai.xi { 1164*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_172M_2N, ///< E_DMX_TSO_OUTCLK_DIV2N 1165*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_288M_2N, ///< E_DMX_TSO_OUTCLK_DIV2N 1166*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_432M_2N, ///< E_DMX_TSO_OUTCLK_DIV2N 1167*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_216M_N, ///< E_DMX_TSO_OUTCLK_DIVN 1168*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS0IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1169*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS1IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1170*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS2IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1171*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS3IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1172*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS4IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1173*53ee8cc1Swenshuai.xi E_DMX_TSO_OUTCLKSRC_P_TS5IN, ///< E_DMX_TSO_OUTCLK_PTSOOUT or E_DMX_TSO_OUTCLK_PTSOOUT_DIV8 1174*53ee8cc1Swenshuai.xi }DMX_TSO_OutClkSrc; 1175*53ee8cc1Swenshuai.xi 1176*53ee8cc1Swenshuai.xi /// DMX TSO output packet size config. For TSO_20 1177*53ee8cc1Swenshuai.xi typedef enum 1178*53ee8cc1Swenshuai.xi { 1179*53ee8cc1Swenshuai.xi E_DMX_TSO_CFG_NONE = 0x00000000UL, 1180*53ee8cc1Swenshuai.xi E_DMX_TSO_CFG_OPIF = 0x00000001UL, 1181*53ee8cc1Swenshuai.xi }DMX_TSO_CfgCmd; 1182*53ee8cc1Swenshuai.xi 1183*53ee8cc1Swenshuai.xi /// DMX TSO Input Config. For TSO_20 1184*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1185*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1186*53ee8cc1Swenshuai.xi #else 1187*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1188*53ee8cc1Swenshuai.xi #endif 1189*53ee8cc1Swenshuai.xi { 1190*53ee8cc1Swenshuai.xi MS_U32 u32Res; 1191*53ee8cc1Swenshuai.xi DMX_FLOW eFlow; 1192*53ee8cc1Swenshuai.xi DMX_TSIF eTSOInIf; 1193*53ee8cc1Swenshuai.xi DMX_FlowInput_Info stInputInfo; 1194*53ee8cc1Swenshuai.xi MS_U8 u8LocalStrId; 1195*53ee8cc1Swenshuai.xi MS_BOOL bBypassAll; 1196*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 1197*53ee8cc1Swenshuai.xi MS_BOOL bSet; 1198*53ee8cc1Swenshuai.xi }DMX_TSO_InputCfg; 1199*53ee8cc1Swenshuai.xi 1200*53ee8cc1Swenshuai.xi /// DMX TSO Output Config. For TSO_20 1201*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1202*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1203*53ee8cc1Swenshuai.xi #else 1204*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1205*53ee8cc1Swenshuai.xi #endif 1206*53ee8cc1Swenshuai.xi { 1207*53ee8cc1Swenshuai.xi MS_U32 u32Res; 1208*53ee8cc1Swenshuai.xi DMX_FLOW eFlow; 1209*53ee8cc1Swenshuai.xi DMX_FLOW_OUTPUT_PAD eOutPad; 1210*53ee8cc1Swenshuai.xi MS_U16 u16OutPktSize; 1211*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 1212*53ee8cc1Swenshuai.xi 1213*53ee8cc1Swenshuai.xi MS_BOOL bDefOutClk; 1214*53ee8cc1Swenshuai.xi MS_BOOL bOutClkInv; 1215*53ee8cc1Swenshuai.xi DMX_TSO_OutClk eTsoOutClk; 1216*53ee8cc1Swenshuai.xi DMX_TSO_OutClkSrc eTsoOutClkSrc; 1217*53ee8cc1Swenshuai.xi MS_U16 u16DivNum; 1218*53ee8cc1Swenshuai.xi MS_BOOL bSet; 1219*53ee8cc1Swenshuai.xi }DMX_TSO_OutputCfg; 1220*53ee8cc1Swenshuai.xi 1221*53ee8cc1Swenshuai.xi /// DMX TSO Config. For TSO_20 1222*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1223*53ee8cc1Swenshuai.xi { 1224*53ee8cc1Swenshuai.xi MS_U32 u32Res; 1225*53ee8cc1Swenshuai.xi MS_U32 u32TsoEng; 1226*53ee8cc1Swenshuai.xi MS_U32 u32TsoCfgDataSize; // total size of DMX_TSO_Cfg data structure 1227*53ee8cc1Swenshuai.xi MS_BOOL bSet; 1228*53ee8cc1Swenshuai.xi 1229*53ee8cc1Swenshuai.xi DMX_TSO_CfgCmd eCfgCmd; 1230*53ee8cc1Swenshuai.xi MS_U32 u32CmdData0; 1231*53ee8cc1Swenshuai.xi }DMX_TSO_Cfg; 1232*53ee8cc1Swenshuai.xi 1233*53ee8cc1Swenshuai.xi /// DMX FQ init infomation 1234*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1235*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1236*53ee8cc1Swenshuai.xi #else 1237*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1238*53ee8cc1Swenshuai.xi #endif 1239*53ee8cc1Swenshuai.xi { 1240*53ee8cc1Swenshuai.xi MS_U8 u8AddrMode; 1241*53ee8cc1Swenshuai.xi MS_PHY u32BufStart; 1242*53ee8cc1Swenshuai.xi MS_U32 u32BufSize; 1243*53ee8cc1Swenshuai.xi } DMX_FQ_Info; 1244*53ee8cc1Swenshuai.xi 1245*53ee8cc1Swenshuai.xi /// File-in Queue data path skipping options 1246*53ee8cc1Swenshuai.xi typedef enum 1247*53ee8cc1Swenshuai.xi { 1248*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_RUSH_DATA_PATH_NON = 0x00000000UL, ///< None 1249*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_RUSH_DATA = 0x00000008UL, ///< Audio-A data are filtered out 1250*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_B_RUSH_DATA = 0x00000010UL, ///< Audio-B data are filtered out 1251*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_VPES_RUSH_DATA = 0x00000020UL, ///< Video data are filtered out 1252*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_SEC_RUSH_DATA = 0x00000040UL, ///< Sections data are filtered out 1253*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_ADP_RUSH_DATA = 0x00000080UL, ///< Reserved 1254*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PCR_RUSH_DATA = 0x00000100UL, ///< PCR data is filtered out 1255*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_RASP_RUSH_DATA = 0x00000200UL, ///< RASP data are filtered out 1256*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR1_RUSH_DATA = E_DMX_FQ_SKIP_RASP_RUSH_DATA, 1257*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PCR1_RUSH_DATA = 0x00001000UL, 1258*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR3_RUSH_DATA = E_DMX_FQ_SKIP_PCR1_RUSH_DATA, 1259*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_CFG1_MASK = 0x80000000UL, 1260*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_C_RUSH_DATA = 0x80000008UL, ///< Audio-C data are filtered out 1261*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_APES_D_RUSH_DATA = 0x80000010UL, ///< Audio-D data are filtered out 1262*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_V3DPES_RUSH_DATA = 0x80000020UL, ///< Video3D data are filtered out 1263*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_V2PES_RUSH_DATA = E_DMX_FQ_SKIP_V3DPES_RUSH_DATA, 1264*53ee8cc1Swenshuai.xi E_DMX_FQ_SKIP_PVR2_RUSH_DATA = 0x80000200UL, 1265*53ee8cc1Swenshuai.xi }DMX_FQ_SkipPath; 1266*53ee8cc1Swenshuai.xi 1267*53ee8cc1Swenshuai.xi /// File-in Queue configuration options 1268*53ee8cc1Swenshuai.xi typedef enum 1269*53ee8cc1Swenshuai.xi { 1270*53ee8cc1Swenshuai.xi E_DMX_FQ_CFG_NONE = 0x00000000UL, ///< None 1271*53ee8cc1Swenshuai.xi E_DMX_FQ_CFG_SEL_SRCMUX = 0x000000001L, ///< File-in queue source selection 1272*53ee8cc1Swenshuai.xi E_DMX_FQ_CFG_FLT_NULL_PKT = 0x000000002L 1273*53ee8cc1Swenshuai.xi 1274*53ee8cc1Swenshuai.xi }DMX_FQ_CfgCmd; 1275*53ee8cc1Swenshuai.xi 1276*53ee8cc1Swenshuai.xi /// File-in Queue configuration information 1277*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_500_3) 1278*53ee8cc1Swenshuai.xi typedef struct __attribute__((__packed__)) 1279*53ee8cc1Swenshuai.xi #else 1280*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED 1281*53ee8cc1Swenshuai.xi #endif 1282*53ee8cc1Swenshuai.xi { 1283*53ee8cc1Swenshuai.xi MS_U32 u32Res; ///< result field 1284*53ee8cc1Swenshuai.xi MS_U32 u32FQEng; ///< File-in queue engine Id 1285*53ee8cc1Swenshuai.xi MS_U32 u32CfgDataSize; ///< total size of DMX_FQ_Cfg data structure 1286*53ee8cc1Swenshuai.xi MS_BOOL bSet; ///< set (TRUE) or get (FALSE) 1287*53ee8cc1Swenshuai.xi DMX_FQ_CfgCmd eCfgCmd; ///< command field 1288*53ee8cc1Swenshuai.xi DMX_TSIF eFqSrcSel; ///< File-in queue source selection (transport stream input interface Id) 1289*53ee8cc1Swenshuai.xi }DMX_FQ_Cfg; 1290*53ee8cc1Swenshuai.xi 1291*53ee8cc1Swenshuai.xi /// DMX TEI Remove Error Packet Infomation 1292*53ee8cc1Swenshuai.xi typedef enum 1293*53ee8cc1Swenshuai.xi { 1294*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_AUDIO_PKT, ///< DMX TEI Remove Audio Packet 1295*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_VIDEO_PKT, ///< DMX TEI Remove Video Packet 1296*53ee8cc1Swenshuai.xi 1297*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT0_LIVE, 1298*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT0_FILE, 1299*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT1, 1300*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_PKT2, 1301*53ee8cc1Swenshuai.xi 1302*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_AUDIO2_PKT, ///< DMX TEI Remove AudioB Packet 1303*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_AUDIO3_PKT, ///< DMX TEI Remove Audio3 Packet 1304*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_AUDIO4_PKT, ///< DMX TEI Remove Audio4 Packet 1305*53ee8cc1Swenshuai.xi 1306*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_VIDEO2_PKT, ///< DMX TEI Remove Video2 Packet 1307*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_VIDEO3_PKT , ///< DMX TEI Remove Video3 Packet 1308*53ee8cc1Swenshuai.xi E_DMX_TEI_REMOVE_VIDEO4_PKT , ///< DMX TEI Remove Video4 Packet 1309*53ee8cc1Swenshuai.xi 1310*53ee8cc1Swenshuai.xi }DMX_TEI_RmPktType; 1311*53ee8cc1Swenshuai.xi 1312*53ee8cc1Swenshuai.xi // DMX_RES_ALLOC_EN 1313*53ee8cc1Swenshuai.xi typedef enum 1314*53ee8cc1Swenshuai.xi { 1315*53ee8cc1Swenshuai.xi DMX_RES_NONE, 1316*53ee8cc1Swenshuai.xi DMX_RES_STC_ENG, ///< STC engine: return data type (MS_U32) 1317*53ee8cc1Swenshuai.xi DMX_RES_FLOW_PB_LIVE, ///< Live-in playback path: return data type (DMX_FLOW) , DMX_FLOW_PLAYBACK ~ DMX_FLOW_PLAYBACK3 1318*53ee8cc1Swenshuai.xi DMX_RES_FLOW_PB_FILE, ///< File-in playback path: return data type (DMX_FLOW) , DMX_FLOW_PLAYBACK ~ DMX_FLOW_PLAYBACK3 1319*53ee8cc1Swenshuai.xi DMX_RES_FLOW_MMFI ///< MMFI path: return data type (DMX_FLOW) , DMX_FLOW_MMFI0 ~ DMX_FLOW_MMFI1 1320*53ee8cc1Swenshuai.xi }DMX_RES_TYPE; 1321*53ee8cc1Swenshuai.xi 1322*53ee8cc1Swenshuai.xi //STC update Control Parameters define 1323*53ee8cc1Swenshuai.xi #define eStcUpdateCtrlMode MS_U8 ///< STC update control options 1324*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_FW 0x00 ///< Update STC by TSP FW (STC is updated by TSP FW running at AEON processor) 1325*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_HK 0x01 ///< Update STC by HK (STC is updated by TSP utopia driver running at ARM/MIPS processor) 1326*53ee8cc1Swenshuai.xi #define DMX_STC_UPDATE_UPDATEONCE 0x02 ///< Update STC Once when PCR reset 1327*53ee8cc1Swenshuai.xi 1328*53ee8cc1Swenshuai.xi //S2P Clock Option 1329*53ee8cc1Swenshuai.xi #define eS2PClkOpt MS_U32 1330*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_NONE 0x00000000 1331*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_INVERT 0x00000001 1332*53ee8cc1Swenshuai.xi #define S2P_CLK_OPT_NON_INVERT 0x00000002 1333*53ee8cc1Swenshuai.xi 1334*53ee8cc1Swenshuai.xi // Policy Manager 1335*53ee8cc1Swenshuai.xi typedef enum 1336*53ee8cc1Swenshuai.xi { 1337*53ee8cc1Swenshuai.xi DMX_PIPEID_GRP_NONE, 1338*53ee8cc1Swenshuai.xi DMX_PIPEID_GRP_PVR, 1339*53ee8cc1Swenshuai.xi DMX_PIPEID_GRP_FILE, 1340*53ee8cc1Swenshuai.xi DMX_PIPEID_GRP_MMFI, 1341*53ee8cc1Swenshuai.xi DMX_PIPEID_GRP_MAX_NUM, 1342*53ee8cc1Swenshuai.xi }DMX_PIPEID_GROUP; 1343*53ee8cc1Swenshuai.xi 1344*53ee8cc1Swenshuai.xi typedef union GENERAL_ENGID{ 1345*53ee8cc1Swenshuai.xi DMX_PVR_ENG PvrEng; ///< PVR engine 1346*53ee8cc1Swenshuai.xi DMX_FILEIN_PATH FileinPath; ///< Filein Path 1347*53ee8cc1Swenshuai.xi DMX_MMFI_PATH MmfiPath; 1348*53ee8cc1Swenshuai.xi } DMX_GENERAL_ENGID; 1349*53ee8cc1Swenshuai.xi 1350*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 1351*53ee8cc1Swenshuai.xi // include utopia v2 header files here 1352*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 1353*53ee8cc1Swenshuai.xi #ifdef DMX_UTOPIA_20 1354*53ee8cc1Swenshuai.xi #include "apiDMX_v2.h" 1355*53ee8cc1Swenshuai.xi #endif 1356*53ee8cc1Swenshuai.xi 1357*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1358*53ee8cc1Swenshuai.xi /// Initialize lib resource API 1359*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1360*53ee8cc1Swenshuai.xi /// @param pu32ResMemAddr \b IN: Pointer to store resource memory addresses 1361*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1362*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1363*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1364*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_InitLibResource(void *pResMemAddr); 1365*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1366*53ee8cc1Swenshuai.xi /// Set TSP firmware address and size. 1367*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1368*53ee8cc1Swenshuai.xi /// @param pFwAddr \b IN: TSP firmware address in DRAM physical address 1369*53ee8cc1Swenshuai.xi /// @param u32FwSize \b IN: TSP firmware size 1370*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1371*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1372*53ee8cc1Swenshuai.xi /// @note It should be called before calling any other Demux API functions. 1373*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1374*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetFW(MS_PHY pFwAddr, MS_U32 u32FwSize); // In DRAM physical address 1375*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1376*53ee8cc1Swenshuai.xi /// Set the MIU address for TSP aeon (firmware) used. 1377*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1378*53ee8cc1Swenshuai.xi /// @param phyDataAddr \b IN: MIU phsyical address 1379*53ee8cc1Swenshuai.xi /// @param u32size \b IN: MIU buffer size 1380*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1381*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1382*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1383*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetFwDataAddr(MS_PHY phyDataAddr, MS_U32 u32size); 1384*53ee8cc1Swenshuai.xi /// Set TSP is work on HK or AEON. 1385*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1386*53ee8cc1Swenshuai.xi /// @param bIsHK \b IN: TRUE: HK, FALSE: AEON 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_SetHK(MS_BOOL bIsHK); // OBSOLETE 1391*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1392*53ee8cc1Swenshuai.xi /// Initialize Demux module. 1393*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1394*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1395*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1396*53ee8cc1Swenshuai.xi /// @note It should be called before calling any other Demux API functions. 1397*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1398*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Init(void); 1399*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1400*53ee8cc1Swenshuai.xi /// Get init parameters of MApi_DMX_TSPInit 1401*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1402*53ee8cc1Swenshuai.xi /// @param pstParam \b OUT: init parameters 1403*53ee8cc1Swenshuai.xi /// @return UTOPIA_STATUS_ERR_NOT_AVAIL: DMX not system init 1404*53ee8cc1Swenshuai.xi /// @return UTOPIA_STATUS_ERR_NOT_AVAIL: DMX system init ready 1405*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1406*53ee8cc1Swenshuai.xi MS_U32 SYMBOL_WEAK MApi_DMX_TSPInit_GetConfig(DMX_TSPParam *pstParam); 1407*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1408*53ee8cc1Swenshuai.xi /// Initialize Demux API for Virtual Quere Enable 1409*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1410*53ee8cc1Swenshuai.xi /// @param param \b IN: Init Virtual Quere Setting 1411*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1412*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1413*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) 1414*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1415*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_TSPInit(DMX_TSPParam *param); 1416*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1417*53ee8cc1Swenshuai.xi /// Exit Demux API 1418*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1419*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1420*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1421*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1422*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Exit(void); 1423*53ee8cc1Swenshuai.xi 1424*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1425*53ee8cc1Swenshuai.xi /// Force exit Demux API 1426*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1427*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1428*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1429*53ee8cc1Swenshuai.xi /// @note It is special case for MM 1430*53ee8cc1Swenshuai.xi ///------------------------------------------------------------------------------------------------- 1431*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ForceExit(void); 1432*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1433*53ee8cc1Swenshuai.xi /// Save DMX driver states to DRAM. 1434*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1435*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1436*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1437*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1438*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Suspend(void); 1439*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1440*53ee8cc1Swenshuai.xi /// Restore DMX driver states from DRAM. And TSP need input the firmware info. to reload TSP FW. 1441*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1442*53ee8cc1Swenshuai.xi /// @param phyFWAddr \b IN: TSP firmware load address 1443*53ee8cc1Swenshuai.xi /// @param u32FWSize \b IN: TSP firmware size 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_Resume(MS_PHY phyFWAddr, MS_U32 u32FWSize); 1448*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1449*53ee8cc1Swenshuai.xi /// Check TSP is alive or not. (Firmware) 1450*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1451*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1452*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1453*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1454*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ChkAlive(void); 1455*53ee8cc1Swenshuai.xi 1456*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1457*53ee8cc1Swenshuai.xi /// Reset TSP and MM. It will reset all filter and do HW reset. 1458*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1459*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1460*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1461*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1462*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Reset(void); 1463*53ee8cc1Swenshuai.xi 1464*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1465*53ee8cc1Swenshuai.xi /// Release TSP driver HW lock semaphone 1466*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1467*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1468*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1469*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1470*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ReleaseSemaphone(void); 1471*53ee8cc1Swenshuai.xi 1472*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1473*53ee8cc1Swenshuai.xi /// Enable/Disable TSP MIU internal write protect. Include PVR record buffer and section buffer. 1474*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1475*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable protect 1476*53ee8cc1Swenshuai.xi /// @param pphyStartAddr \b IN: Protect start address. Array[0-3]: [0]: PVR, [1-2]: Section, [3]: PVR1 1477*53ee8cc1Swenshuai.xi /// @param pphyEndAddr \b IN: Protect end address. Array[0-3]: [0]: PVR, [1-2]: Section, [3]: PVR1 1478*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1479*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1480*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1481*53ee8cc1Swenshuai.xi void MApi_DMX_WriteProtect_Enable(MS_BOOL bEnable, MS_PHY* pphyStartAddr, MS_PHY* pphyEndAddr); 1482*53ee8cc1Swenshuai.xi 1483*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1484*53ee8cc1Swenshuai.xi /// Enable/Disable Demux MIU internal Firmware write protect. 1485*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1486*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable protect 1487*53ee8cc1Swenshuai.xi /// @param phyStartAddr \b IN: Protect start address. 1488*53ee8cc1Swenshuai.xi /// @param phyEndAddr \b IN: Protect end address. 1489*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1490*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1491*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1492*53ee8cc1Swenshuai.xi void MApi_DMX_OrzWriteProtect_Enable(MS_BOOL bEnable, MS_PHY phyStartAddr, MS_PHY phyEndAddr); 1493*53ee8cc1Swenshuai.xi 1494*53ee8cc1Swenshuai.xi //----------------- 1495*53ee8cc1Swenshuai.xi // DMX_ToBeRemove 1496*53ee8cc1Swenshuai.xi //----------------- 1497*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1498*53ee8cc1Swenshuai.xi /// Read drop packet count of AV due to duplicate. (Use new debug function to get this information) 1499*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1500*53ee8cc1Swenshuai.xi /// @param eDmxPktType \b IN: The packet type wihch want to remove 1501*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 1502*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1503*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1504*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1505*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Read_DropPktCnt(MS_U16* pu16ADropCnt, MS_U16* pu16VDropCnt); 1506*53ee8cc1Swenshuai.xi 1507*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1508*53ee8cc1Swenshuai.xi /// Control DMX STR functions. 1509*53ee8cc1Swenshuai.xi /// @ingroup DMX_STR 1510*53ee8cc1Swenshuai.xi /// @param u16PowerState \b IN: STR power mode. (to control STR suspend & resume case.) 1511*53ee8cc1Swenshuai.xi /// @param phyFWAddr \b IN: TSP firmware load address 1512*53ee8cc1Swenshuai.xi /// @param u32FWSize \b IN: TSP firmware size 1513*53ee8cc1Swenshuai.xi /// @return : Utopia status - UTOPIA_STATUS_SUCCESS (Succeed) or UTOPIA_STATUS_FAIL (Fail) 1514*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1515*53ee8cc1Swenshuai.xi MS_U32 MApi_DMX_SetPowerState(EN_POWER_MODE u16PowerState, MS_PHY phyFWAddr, MS_U32 u32FWSize); 1516*53ee8cc1Swenshuai.xi 1517*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1518*53ee8cc1Swenshuai.xi /// @brief Remove TEI error packet 1519*53ee8cc1Swenshuai.xi /// @param eDmxPktType \b IN: DMX remove packet type 1520*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE: enable the feature, FALSE: disable it 1521*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK Success 1522*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR Failure 1523*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1524*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_TEI_RemoveErrorPkt(DMX_TEI_RmPktType eDmxPktType, MS_BOOL bEnable); 1525*53ee8cc1Swenshuai.xi 1526*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1527*53ee8cc1Swenshuai.xi /// Set Demux Flow packet mode 1528*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1529*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1530*53ee8cc1Swenshuai.xi /// @param ePktMode \b IN: Packet mode of flow path. 1531*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1532*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1533*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1534*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetPacketMode(DMX_FLOW DmxFlow, DMX_PacketMode ePktMode); 1535*53ee8cc1Swenshuai.xi 1536*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1537*53ee8cc1Swenshuai.xi /// Set Sync Byte value to Stream source ID or TS source ID. 1538*53ee8cc1Swenshuai.xi /// @ingroup TSP_Merge 1539*53ee8cc1Swenshuai.xi /// @param u32SrcID \b IN: Index of stream source id or TS source id 1540*53ee8cc1Swenshuai.xi /// @param u8SyncByte \b IN: Sync byte, defalut value is 0x47 1541*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1542*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1543*53ee8cc1Swenshuai.xi /// @note: u32SrcID - Stream source ID is from 0 ~7 1544*53ee8cc1Swenshuai.xi /// TS source ID is mapping TSIF index 1545*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1546*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetMergeStrSyncByte(MS_U32 u32SrcID, MS_U8 u8SyncByte); 1547*53ee8cc1Swenshuai.xi 1548*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1549*53ee8cc1Swenshuai.xi /// Set enable/disable drop scramble packet of FIFO/PVR. If enable, scramble packet can't pass through FIFO/PVR. 1550*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1551*53ee8cc1Swenshuai.xi /// @param pDmxFltType \b IN: Type select: FIFO or PVR 1552*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable 1553*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1554*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1555*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1556*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_DropScmbPkt(DMX_FILTER_TYPE pDmxFltType, MS_BOOL bEnable); 1557*53ee8cc1Swenshuai.xi 1558*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1559*53ee8cc1Swenshuai.xi /// Allocate DMX resource 1560*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1561*53ee8cc1Swenshuai.xi /// @param eResType \b IN: Resource type to allocate 1562*53ee8cc1Swenshuai.xi /// @param pRes \b OUT: Pointer to store resource content 1563*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1564*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1565*53ee8cc1Swenshuai.xi /// @note 1566*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1567*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_ResAllocate(DMX_RES_TYPE eResType, void *pRes); 1568*53ee8cc1Swenshuai.xi 1569*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1570*53ee8cc1Swenshuai.xi /// Free DMX resource 1571*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1572*53ee8cc1Swenshuai.xi /// @param eResType \b IN: Resource type to free 1573*53ee8cc1Swenshuai.xi /// @param pRes \b IN: Pointer to store resource content 1574*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1575*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1576*53ee8cc1Swenshuai.xi /// @note 1577*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1578*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_ResFree(DMX_RES_TYPE eResType, void *pRes); 1579*53ee8cc1Swenshuai.xi 1580*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1581*53ee8cc1Swenshuai.xi /// Get STC engine which PCR PID index mapping to 1582*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1583*53ee8cc1Swenshuai.xi /// @param u32PcrFltId \b IN: PCR PID index 1584*53ee8cc1Swenshuai.xi /// @param pu32StcEng \b OUT: STC engine id 1585*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1586*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1587*53ee8cc1Swenshuai.xi /// @note 1588*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1589*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Pcr_Get_MapSTC(MS_U32 u32PcrFltId, MS_U32 *pu32StcEng); 1590*53ee8cc1Swenshuai.xi 1591*53ee8cc1Swenshuai.xi // owner ship set/checking 1592*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1593*53ee8cc1Swenshuai.xi /// Set demux filter owner. 1594*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1595*53ee8cc1Swenshuai.xi /// @param u32DmxIdStart \b IN: Demux filter start index 1596*53ee8cc1Swenshuai.xi /// @param u32DmxIdEnd \b IN: Demux filter end index 1597*53ee8cc1Swenshuai.xi /// @param bOwner \b IN: TRUE for owner, FALSE for not owner 1598*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1599*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1600*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1601*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetOwner(MS_U32 u32DmxIdStart, MS_U32 u32DmxIdEnd, MS_BOOL bOwner); //OBSOLETE 1602*53ee8cc1Swenshuai.xi 1603*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1604*53ee8cc1Swenshuai.xi /// Query DMX specific hardware capability. 1605*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1606*53ee8cc1Swenshuai.xi /// @param DmxQueryType \b IN: query type 1607*53ee8cc1Swenshuai.xi /// @param pOutput \b OUT: answer of query type 1608*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1609*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1610*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1611*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetCap(DMX_QUERY_TYPE DmxQueryType, void* pOutput); 1612*53ee8cc1Swenshuai.xi 1613*53ee8cc1Swenshuai.xi //----------------- 1614*53ee8cc1Swenshuai.xi // DMX_ToBeModified 1615*53ee8cc1Swenshuai.xi //----------------- 1616*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1617*53ee8cc1Swenshuai.xi /// Query DMX specific hardware capability by string type. 1618*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 1619*53ee8cc1Swenshuai.xi /// @param pstrQueryType \b IN: String of capability item 1620*53ee8cc1Swenshuai.xi /// @param s32Strlen \b IN: String size of capability item 1621*53ee8cc1Swenshuai.xi /// @param pOutput \b OUT: answer of query type 1622*53ee8cc1Swenshuai.xi /// @param ps32OutSize \b OUT: Output data length 1623*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1624*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1625*53ee8cc1Swenshuai.xi /// @note: Keep MApi_DMX_GetCap function and refine interface for parameter 1626*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1627*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_GetCap_Ex(char* pstrQueryType, MS_S32 s32Strlen, void* pOutput, MS_S32* ps32OutSize); 1628*53ee8cc1Swenshuai.xi 1629*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1630*53ee8cc1Swenshuai.xi /// Invert Demux parallel input bit order 1631*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1632*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1633*53ee8cc1Swenshuai.xi /// @param bInvert \b IN: Invert bit order of TS parallel in. (TRUE: Invert, FALSE: Not invert) 1634*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1635*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1636*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------ 1637*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Parl_Invert(DMX_FLOW DmxFlow, MS_BOOL bInvert); 1638*53ee8cc1Swenshuai.xi 1639*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1640*53ee8cc1Swenshuai.xi /// Set Demux DMA burst length. 1641*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1642*53ee8cc1Swenshuai.xi /// @param BurstType \b IN: Burst length 1643*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1644*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1645*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------ 1646*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetBurstLen(DMX_BURSTTYPE BurstType); 1647*53ee8cc1Swenshuai.xi 1648*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1649*53ee8cc1Swenshuai.xi /// Enable/Disable TSP VQ. 1650*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 1651*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable 1652*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1653*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1654*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1655*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_VQ_Enable(MS_BOOL bEnable); 1656*53ee8cc1Swenshuai.xi 1657*53ee8cc1Swenshuai.xi //----------------- 1658*53ee8cc1Swenshuai.xi // TSP_Flow 1659*53ee8cc1Swenshuai.xi //----------------- 1660*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1661*53ee8cc1Swenshuai.xi /// Set Demux Flow config. 1662*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1663*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1664*53ee8cc1Swenshuai.xi /// @param DmxFlowInput \b IN: Input port. (ex: external pad0, internal demod...etc) 1665*53ee8cc1Swenshuai.xi /// @param bClkInv \b IN: TS-in options: clock phase inversion 1666*53ee8cc1Swenshuai.xi /// @param bExtSync \b IN: TS-in options: sync by external signal 1667*53ee8cc1Swenshuai.xi /// @param bParallel \b IN: TS-in is parallel interface or serial interface 1668*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1669*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1670*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1671*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_FlowSet(DMX_FLOW DmxFlow, DMX_FLOW_INPUT DmxFlowInput, MS_BOOL bClkInv, MS_BOOL bExtSync, MS_BOOL bParallel); 1672*53ee8cc1Swenshuai.xi 1673*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1674*53ee8cc1Swenshuai.xi /// Setting PVR flow. 1675*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1676*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR Engine ID 1677*53ee8cc1Swenshuai.xi /// @param ePvrSrcTSIf \b IN: Select the record source 1678*53ee8cc1Swenshuai.xi /// @param bDscmbRec \b IN: TRUE for recording dscmbled stream; FALSE for recording orignal stream 1679*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1680*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1681*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1682*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PVR_FlowSet(DMX_PVR_ENG Eng, DMX_TSIF ePvrSrcTSIf, MS_BOOL bDscmbRec); 1683*53ee8cc1Swenshuai.xi 1684*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1685*53ee8cc1Swenshuai.xi /// Get Demux Flow setting. 1686*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1687*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1688*53ee8cc1Swenshuai.xi /// @param pDmxFlowInput \b OUT: pointer to store DMX input flow value. 1689*53ee8cc1Swenshuai.xi /// @param pbClkInv \b OUT: pointer to store clock phase inversion 1690*53ee8cc1Swenshuai.xi /// @param pbExtSync \b OUT: pointer to store sync by external signal 1691*53ee8cc1Swenshuai.xi /// @param pbParallel \b OUT: pointer to store parallel interface or serial interface 1692*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1693*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1694*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1695*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); 1696*53ee8cc1Swenshuai.xi 1697*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1698*53ee8cc1Swenshuai.xi /// Enable Demux flow path. 1699*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1700*53ee8cc1Swenshuai.xi /// @param DmxFlow \b IN: TSP flow path 1701*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE: enable, FALSE: disable 1702*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1703*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1704*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1705*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_FlowEnable(DMX_FLOW DmxFlow, MS_BOOL bEnable); 1706*53ee8cc1Swenshuai.xi 1707*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1708*53ee8cc1Swenshuai.xi /// Enable liveAB config: TSIF1 path can use as live through TSIF0_FILE path. (Old arichtecture TSIF1 can't goto section) 1709*53ee8cc1Swenshuai.xi /// Only support on TSP 1.0 1710*53ee8cc1Swenshuai.xi /// @param bPF_EN \b IN: Enable/Disable liveAB bit. 1711*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1712*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1713*53ee8cc1Swenshuai.xi /// @note 1714*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1715*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_LiveAB_En(MS_BOOL bPF_EN); 1716*53ee8cc1Swenshuai.xi 1717*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1718*53ee8cc1Swenshuai.xi /// Check liveAB config is enable or not 1719*53ee8cc1Swenshuai.xi /// Only support on TSP 1.0 1720*53ee8cc1Swenshuai.xi /// @return TRUE - LiveAB is enable 1721*53ee8cc1Swenshuai.xi /// @return FALSE - LiveAB is disable 1722*53ee8cc1Swenshuai.xi /// @note 1723*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1724*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_IsLiveAB_Enable(void); 1725*53ee8cc1Swenshuai.xi 1726*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1727*53ee8cc1Swenshuai.xi /// Set/Get DScmbler engine id depend on TSIF path 1728*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1729*53ee8cc1Swenshuai.xi /// @param eTsIf \b IN: TSP flow path (interface) 1730*53ee8cc1Swenshuai.xi /// @param pu32EngId \b IN/OUT: pointer to store dscmb engine id 1731*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE:Set dscmb engine id ; FALSE: Get dscmb engine id 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 SYMBOL_WEAK MApi_DMX_Flow_DscmbEng(DMX_TSIF eTsIf, MS_U32* pu32EngId, MS_BOOL bSet); 1736*53ee8cc1Swenshuai.xi 1737*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1738*53ee8cc1Swenshuai.xi /// Configure TS output pad. 1739*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1740*53ee8cc1Swenshuai.xi /// @param eOutPad \b IN: Select output pad 1741*53ee8cc1Swenshuai.xi /// @param eInSrcPad \b IN: Select input source pad 1742*53ee8cc1Swenshuai.xi /// @param bInParallel \b IN: TRUE: input source is paralleled; FALSE: input source is serial in 1743*53ee8cc1Swenshuai.xi /// @param u32ResvNum \b IN: Reserved value of the number of reserved parameters for future using 1744*53ee8cc1Swenshuai.xi /// @param pu32Resv \b IN: Reserved pointer to store parameters for future using 1745*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1746*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1747*53ee8cc1Swenshuai.xi /// @note Only EXT_PAD1 and EXT_PAD3 has output mode 1748*53ee8cc1Swenshuai.xi /// @note If output from S2P mode, input source should be external input pad only 1749*53ee8cc1Swenshuai.xi /// @note If output from TSO mode, eInputPad should be E_DRVTSP_PAD_TSO 1750*53ee8cc1Swenshuai.xi /// @note If input source is internal demod, output mode can be demod out or TSO out 1751*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1752*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); 1753*53ee8cc1Swenshuai.xi 1754*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1755*53ee8cc1Swenshuai.xi /// Configure output pad 1756*53ee8cc1Swenshuai.xi /// Set S2P output clock phase and invert. 1757*53ee8cc1Swenshuai.xi /// @ingroup TSP_Flow 1758*53ee8cc1Swenshuai.xi /// @param u16Val \b IN: Value of phase 1759*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable phase tuning 1760*53ee8cc1Swenshuai.xi /// @param u32Reserved \b IN: Reserved for future using 1761*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1762*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1763*53ee8cc1Swenshuai.xi /// @note Configure for S2P mode 1764*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1765*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TsS2POutputClkPhase(MS_U16 u16Val, MS_BOOL bEnable, MS_U32 u32S2pOpt); 1766*53ee8cc1Swenshuai.xi 1767*53ee8cc1Swenshuai.xi //----------------- 1768*53ee8cc1Swenshuai.xi // TSP_STC 1769*53ee8cc1Swenshuai.xi //----------------- 1770*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1771*53ee8cc1Swenshuai.xi /// Enable/Disable STC64 bit mode. 1772*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1773*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable STC64 mode 1774*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1775*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1776*53ee8cc1Swenshuai.xi /// @note This is also set by TSP init function. 1777*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 1778*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_STC64_Mode_Enable(MS_BOOL bEnable); 1779*53ee8cc1Swenshuai.xi 1780*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1781*53ee8cc1Swenshuai.xi /// Get STC counter. 1782*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1783*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1784*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1785*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1786*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1787*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1788*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Get(MS_U32* pu32Stc32, MS_U32* pu32Stc); 1789*53ee8cc1Swenshuai.xi 1790*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1791*53ee8cc1Swenshuai.xi /// Set STC counter. 1792*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1793*53ee8cc1Swenshuai.xi /// @param u32Stc32 \b OUT: STC counter (bit 32) 1794*53ee8cc1Swenshuai.xi /// @param u32Stc \b OUT: STC counter (bit 31 to bit 0) 1795*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1796*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1797*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1798*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Set(MS_U32 u32Stc32, MS_U32 u32Stc); 1799*53ee8cc1Swenshuai.xi 1800*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1801*53ee8cc1Swenshuai.xi /// Get PCR value. 1802*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 1803*53ee8cc1Swenshuai.xi /// @param pu32Pcr32 \b OUT: PCR counter (bit 32) 1804*53ee8cc1Swenshuai.xi /// @param pu32Pcr \b OUT: PCR counter (bit 31 to bit 0) 1805*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1806*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1807*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1808*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pcr_Get(MS_U32* pu32Pcr32, MS_U32* pu32Pcr); 1809*53ee8cc1Swenshuai.xi 1810*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1811*53ee8cc1Swenshuai.xi /// Select STC Engine. 1812*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1813*53ee8cc1Swenshuai.xi /// @param eFltSrc \b IN: Fliter Source type and Filter source ID 1814*53ee8cc1Swenshuai.xi /// @param u32StcEng \b IN: STC engine ID (0, 1) 1815*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1816*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1817*53ee8cc1Swenshuai.xi /// @note Only support in driver version 3.0. 1818*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1819*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Stc_Select(DMX_FILTER_TYPE eFltSrc, MS_U32 u32StcEng); 1820*53ee8cc1Swenshuai.xi 1821*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1822*53ee8cc1Swenshuai.xi /// Get STC counter. 1823*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1824*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1825*53ee8cc1Swenshuai.xi /// @param pu32Stc32 \b OUT: STC counter (bit 32) 1826*53ee8cc1Swenshuai.xi /// @param pu32Stc \b OUT: STC counter (bit 31 to bit 0) 1827*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1828*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1829*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1830*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Eng_Get(MS_U8 u8Eng, MS_U32* pu32Stc32, MS_U32* pu32Stc); 1831*53ee8cc1Swenshuai.xi 1832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1833*53ee8cc1Swenshuai.xi /// Set STC counter. 1834*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1835*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1836*53ee8cc1Swenshuai.xi /// @param u32Stc32 \b OUT: STC counter (bit 32) 1837*53ee8cc1Swenshuai.xi /// @param u32Stc \b OUT: STC counter (bit 31 to bit 0) 1838*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1839*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1840*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1841*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Eng_Set(MS_U8 u8Eng, MS_U32 u32Stc32, MS_U32 u32Stc); 1842*53ee8cc1Swenshuai.xi 1843*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1844*53ee8cc1Swenshuai.xi /// Get PCR. 1845*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1846*53ee8cc1Swenshuai.xi /// @param u8PcrEng \b INPUT: PCR Eng 1847*53ee8cc1Swenshuai.xi /// @param pu32Pcr32 \b OUT: PCR counter (bit 32) 1848*53ee8cc1Swenshuai.xi /// @param pu32Pcr \b OUT: PCR counter (bit 31 to bit 0) 1849*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1850*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1851*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1852*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pcr_Eng_Get(MS_U8 u8PcrEng, MS_U32* pu32Pcr32, MS_U32* pu32Pcr); 1853*53ee8cc1Swenshuai.xi 1854*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1855*53ee8cc1Swenshuai.xi /// Set STC control. 1856*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1857*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: STC Engine ID 1858*53ee8cc1Swenshuai.xi /// @param eMode \b IN: STC update control options 1859*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1860*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1861*53ee8cc1Swenshuai.xi /// @note eMode: 0x00 -> Update STC by TSP FW 1862*53ee8cc1Swenshuai.xi /// @note 0x01 -> Update STC by HK 1863*53ee8cc1Swenshuai.xi /// @note 0x02 -> Update STC Once when PCR reset 1864*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1865*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_STC_UpdateCtrl(MS_U8 u8Eng, eStcUpdateCtrlMode eMode); 1866*53ee8cc1Swenshuai.xi 1867*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1868*53ee8cc1Swenshuai.xi /// Add or subtract STC Offset. 1869*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1870*53ee8cc1Swenshuai.xi /// @param u32Eng \b IN: STC Engine ID 1871*53ee8cc1Swenshuai.xi /// @param u32Offset \b IN: STC offset value 1872*53ee8cc1Swenshuai.xi /// @param bAdd \b IN: If TRUE, add the offset value; otherwise subtract the offset value 1873*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1874*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1875*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1876*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Eng_SetOffset(MS_U32 u32Eng, MS_U32 u32Offset, MS_BOOL bAdd); 1877*53ee8cc1Swenshuai.xi 1878*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1879*53ee8cc1Swenshuai.xi /// Adjust STC Clock. 1880*53ee8cc1Swenshuai.xi /// @ingroup TSP_STC 1881*53ee8cc1Swenshuai.xi /// @param u32EngId \b IN: STC Engine ID 1882*53ee8cc1Swenshuai.xi /// @param bUpClk \b IN: If TRUE, Clk will be faster, and if FALSE, Clk will be slower 1883*53ee8cc1Swenshuai.xi /// @param u32Percentage \b IN: The percentage of STC clock ratio 1884*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1885*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1886*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1887*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stc_Clk_Adjust(MS_U32 u32EngId, MS_BOOL bUpClk, MS_U32 u32Percentage); 1888*53ee8cc1Swenshuai.xi 1889*53ee8cc1Swenshuai.xi //----------------- 1890*53ee8cc1Swenshuai.xi // TSP_Filter 1891*53ee8cc1Swenshuai.xi //----------------- 1892*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1893*53ee8cc1Swenshuai.xi /// Open a demux filter. 1894*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1895*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: The filter information to allocate 1896*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The available demux filer index 1897*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1898*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1899*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1900*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Open(DMX_FILTER_TYPE DmxFltType, MS_U8* pu8DmxId); 1901*53ee8cc1Swenshuai.xi 1902*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1903*53ee8cc1Swenshuai.xi /// Open a demux filter. 1904*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1905*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: The filter information to allocate 1906*53ee8cc1Swenshuai.xi /// @param pu32DmxId \b OUT: The available demux filer index 1907*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1908*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1909*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1910*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Open_Ex(DMX_Info_EX *pDmxInfo, MS_U32* pu32DmxId); 1911*53ee8cc1Swenshuai.xi 1912*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1913*53ee8cc1Swenshuai.xi /// Close a demux filter. 1914*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1915*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer index to free 1916*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1917*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1918*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1919*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Close(MS_U32 u32DmxId); 1920*53ee8cc1Swenshuai.xi 1921*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1922*53ee8cc1Swenshuai.xi /// Activate a demux filter. 1923*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1924*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer index to activate 1925*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1926*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1927*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1928*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Start(MS_U32 u32DmxId); 1929*53ee8cc1Swenshuai.xi 1930*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1931*53ee8cc1Swenshuai.xi /// Deactivate a demux filter. 1932*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1933*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer index to deactivate 1934*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 1935*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 1936*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1937*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Stop(MS_U32 u32DmxId); 1938*53ee8cc1Swenshuai.xi 1939*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1940*53ee8cc1Swenshuai.xi /// Get/set a demultiplexer filter information 1941*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: The ID of the demultiplexer filter 1942*53ee8cc1Swenshuai.xi /// @param pDmxFltInfo \b IN/OUT: The demultiplexer filter information 1943*53ee8cc1Swenshuai.xi /// @param pDmxFltType \b IN/OUT: The demultiplexer filter type 1944*53ee8cc1Swenshuai.xi /// @param bSet \b IN: set (TRUE) or get (FALSE) 1945*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK Success 1946*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR Failure 1947*53ee8cc1Swenshuai.xi /// @note If \b pDmxFltType is equal to \ref DMX_FILTER_TYPE_VIDEO, \ref DMX_FILTER_TYPE_AUDIO or \ref DMX_FILTER_TYPE_AUDIO2 : 1948*53ee8cc1Swenshuai.xi /// - If \b bSet is equal to TRUE, pDmxFltInfo->StreamInfo shall be filled-in (for future usage) 1949*53ee8cc1Swenshuai.xi /// - If \b bSet is equal to FALSE, then the previously set stream information will be returned in pDmxFltInfo->StreamInfo 1950*53ee8cc1Swenshuai.xi /// @note If \b pDmxFltType is equal to \ref DMX_FILTER_TYPE_SECTION, \ref DMX_FILTER_TYPE_TELETEXT, \ref DMX_FILTER_TYPE_PES, \ref DMX_FILTER_TYPE_PACKET or \ref DMX_FILTER_TYPE_PCR : 1951*53ee8cc1Swenshuai.xi /// - If \b bSet is equal to TRUE, pDmxFltInfo->SectInfo shall be filled-in 1952*53ee8cc1Swenshuai.xi /// - If \b bSet is equal to FALSE, then the previously set information will be returned in pDmxFltInfo->SectInfo 1953*53ee8cc1Swenshuai.xi /// - The members in pDmxFltInfo->SectInfo structure shall be set as follows: \n 1954*53ee8cc1Swenshuai.xi /// SectBufAddr : the section buffer physical address \n 1955*53ee8cc1Swenshuai.xi /// SectBufSize : the section buffer size \n 1956*53ee8cc1Swenshuai.xi /// SectMode : OR combination of the following: (DMX_SECT_MODE_CONTI and DMX_SECT_MODE_ONESHOT are exclusive) \n 1957*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_CONTI : Receive section data continuously \n 1958*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_ONESHOT : Receive one section only \n 1959*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_CRCCHK : Ask DMX hardware to check CRC32 value of section data and to drop incorrect sections \n 1960*53ee8cc1Swenshuai.xi /// Event : OR combination of the following ( \ref DMX_EVENT_CB_POLL, \ref DMX_EVENT_CB_SELF and \ref DMX_EVENT_CB_SELF_TYPE2 are exclusive) \n 1961*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_POLL : use polling mode \n 1962*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_SELF : User set events will be notified to the user using the callback set in the \b pNotify field \n 1963*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_SELF_TYPE2 : User set events will be notified to the user using the callback set in the \b pType2Notify field. The caller may specify specific user data using the \b Type2NotifyParam1 field \n 1964*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_DATA_READY : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) when one or more complete section data has been captured in the section buffer \n 1965*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_BUF_OVERFLOW : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) if the section buffer overflows \n 1966*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_DATA_READY : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) if CRC32 check fails (assuming \ref DMX_SECT_MODE_CRCCHK has been set in \b SectMode) \n 1967*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1968*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Info(MS_U32 u32DmxId, DMX_Flt_info* pDmxFltInfo, DMX_FILTER_TYPE* pDmxFltType, MS_BOOL bSet); 1969*53ee8cc1Swenshuai.xi 1970*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1971*53ee8cc1Swenshuai.xi /// Get/set a demultiplexer filter information for filter number > 256 1972*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: The ID of the demultiplexer filter 1973*53ee8cc1Swenshuai.xi /// @param pDmxFltInfo \b IN/OUT: The demultiplexer filter information 1974*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK Success 1975*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR Failure 1976*53ee8cc1Swenshuai.xi /// - The members in pDmxFltInfo->SectInfoEx structure shall be set as follows: \n 1977*53ee8cc1Swenshuai.xi /// SectBufAddr : the section buffer physical address \n 1978*53ee8cc1Swenshuai.xi /// SectBufSize : the section buffer size \n 1979*53ee8cc1Swenshuai.xi /// SectMode : OR combination of the following: (DMX_SECT_MODE_CONTI and DMX_SECT_MODE_ONESHOT are exclusive) \n 1980*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_CONTI : Receive section data continuously \n 1981*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_ONESHOT : Receive one section only \n 1982*53ee8cc1Swenshuai.xi /// \ref DMX_SECT_MODE_CRCCHK : Ask DMX hardware to check CRC32 value of section data and to drop incorrect sections \n 1983*53ee8cc1Swenshuai.xi /// Event : OR combination of the following ( \ref DMX_EVENT_CB_POLL, \ref DMX_EVENT_CB_SELF and \ref DMX_EVENT_CB_SELF_TYPE2 are exclusive) \n 1984*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_POLL : use polling mode \n 1985*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_SELF : User set events will be notified to the user using the callback set in the \b pNotify field \n 1986*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_CB_SELF_TYPE2 : User set events will be notified to the user using the callback set in the \b pType2Notify field. The caller may specify specific user data using the \b Type2NotifyParam1 field \n 1987*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_DATA_READY : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) when one or more complete section data has been captured in the section buffer \n 1988*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_BUF_OVERFLOW : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) if the section buffer overflows \n 1989*53ee8cc1Swenshuai.xi /// \ref DMX_EVENT_DATA_READY : If set, an event will be raised (and notified through callback if \ref DMX_EVENT_CB_SELF or \ref DMX_EVENT_CB_SELF_TYPE2 are set) if CRC32 check fails (assuming \ref DMX_SECT_MODE_CRCCHK has been set in \b SectMode) \n 1990*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1991*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Info_Ex(MS_U32 u32DmxId, DMX_Flt_info_Ex* pDmxFltInfo); 1992*53ee8cc1Swenshuai.xi 1993*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 1994*53ee8cc1Swenshuai.xi /// Set a demux filter PID. 1995*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 1996*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer index 1997*53ee8cc1Swenshuai.xi /// @param pu16Pid \b IN/OUT: PID 1998*53ee8cc1Swenshuai.xi /// @param bSet \b IN: set/get 1999*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2000*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2001*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2002*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pid(MS_U32 u32DmxId, MS_U16* pu16Pid, MS_BOOL bSet); 2003*53ee8cc1Swenshuai.xi 2004*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2005*53ee8cc1Swenshuai.xi /// Get a demux filter status. 2006*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 2007*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer index 2008*53ee8cc1Swenshuai.xi /// @param pbEnable \b OUT: the demux filer enable/disable 2009*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2010*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2011*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2012*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_IsStart(MS_U32 u32DmxId, MS_BOOL* pbEnable); 2013*53ee8cc1Swenshuai.xi 2014*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2015*53ee8cc1Swenshuai.xi /// @brief Copy section data from section buffer to user-assigned buffer 2016*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: demultiplexer filter ID 2017*53ee8cc1Swenshuai.xi /// @param pu8Buf \b OUT: address of the user-assigned destination buffer 2018*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: size of the user-assigned destination buffer 2019*53ee8cc1Swenshuai.xi /// @param pu32ActualSize \b OUT: actual copied data size 2020*53ee8cc1Swenshuai.xi /// @param pu32RmnSize \b OUT: section buffer remainning data size 2021*53ee8cc1Swenshuai.xi /// @param pfCheckCB \b IN: callback function to check data correctness (NOTE: callback function must return to avoid blocking) 2022*53ee8cc1Swenshuai.xi /// @pre The filter type of the filter corresponding to \b u32DmxId shall be one of \ref DMX_FILTER_TYPE_SECTION, \ref DMX_FILTER_TYPE_PES, \ref DMX_FILTER_TYPE_TELETEXT or \ref DMX_FILTER_TYPE_PACKET 2023*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2024*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2025*53ee8cc1Swenshuai.xi /// @note If the filter type of the filter corresponding to \b u32DmxId is equal to \ref DMX_FILTER_TYPE_SECTION : 2026*53ee8cc1Swenshuai.xi /// - If the data size in the section buffer is smaller than a complete section data length, then this function will return \ref DMX_FILTER_STATUS_ERROR. \n 2027*53ee8cc1Swenshuai.xi /// - If \b u32BufSize is smaller than a complete section data length, then this function will print error message and remove a complete section data from the section buffer, without any copy operation.\n 2028*53ee8cc1Swenshuai.xi /// - If the data size in the section buffer and \b u32BufSize are both larger than a complete section data length, then this function will copy a complete section data from the section buffer to \b pu8Buf. \n 2029*53ee8cc1Swenshuai.xi /// @note If the filter type is equal to \ref DMX_FILTER_TYPE_SECTION, \ref DMX_FILTER_TYPE_PES, \ref DMX_FILTER_TYPE_TELETEXT or \ref DMX_FILTER_TYPE_PACKET : 2030*53ee8cc1Swenshuai.xi /// - If \b u32BufSize is larger than all data in the section buffer, the function will copy all data in the section buffer to \b pu8Buf.\n 2031*53ee8cc1Swenshuai.xi /// - If \b u32BufSize is smaller than all data in section buffer, the function will copy \b u32BufSize bytes to \b pu8Buf. 2032*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2033*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_CopyData(MS_U32 u32DmxId, MS_U8* pu8Buf, MS_U32 u32BufSize, MS_U32* pu32ActualSize, MS_U32* pu32RmnSize, DMX_CheckCb pfCheckCB); 2034*53ee8cc1Swenshuai.xi 2035*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2036*53ee8cc1Swenshuai.xi /// Ask demuxer to process section/pvr data for Non-OS driver. 2037*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 2038*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: ID of the filter to be processed, or 0xFFFFFFFF for all filters 2039*53ee8cc1Swenshuai.xi /// @param pEvent \b IN: Pointer to DMX event. 2040*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2041*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2042*53ee8cc1Swenshuai.xi /// @note Calling this function in OS environment causes nothing 2043*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2044*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Proc(MS_U32 u32DmxId, DMX_EVENT* pEvent); 2045*53ee8cc1Swenshuai.xi 2046*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2047*53ee8cc1Swenshuai.xi /// Change DMX filter source type. 2048*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 2049*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: DMX filter ID 2050*53ee8cc1Swenshuai.xi /// @param DmxFltSrcType \b IN: DMX filter Source Type and filter source id 2051*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2052*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2053*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2054*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Change_FilterSource(MS_U32 u32DmxId, DMX_FILTER_TYPE DmxFltSrcType); 2055*53ee8cc1Swenshuai.xi 2056*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2057*53ee8cc1Swenshuai.xi ///MApi_DMX_FilterFlowSwitch : Switch filter source from one channel to another. 2058*53ee8cc1Swenshuai.xi /// @ingroup TSP_Filter 2059*53ee8cc1Swenshuai.xi /// @param TgtFlow \b IN: chagne to this path setting 2060*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2061*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2062*53ee8cc1Swenshuai.xi /// @note TSP 1.0: 2063*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_LIVE 2064*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS1 2065*53ee8cc1Swenshuai.xi /// @note TSP 2.0: 2066*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PLAYBACK 2067*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PVR0 2068*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_PVR1 2069*53ee8cc1Swenshuai.xi /// @note TSP 4.0: 2070*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_LIVE 2071*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_FILE 2072*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS1 2073*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS2 2074*53ee8cc1Swenshuai.xi /// @note DMX_FILTER_SOURCE_TYPE_TS3 2075*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2076*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_LiveSrcSwitch(DMX_FILTER_TYPE TgtFlow); 2077*53ee8cc1Swenshuai.xi 2078*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2079*53ee8cc1Swenshuai.xi /// @brief Get demux filter owner 2080*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: demux ID 2081*53ee8cc1Swenshuai.xi /// @param pbOwner \b IN: pointer to store return value of owner flag 2082*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS 2083*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2084*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetOwner(MS_U32 u32DmxId, MS_BOOL* pbOwner); //OBSOLETE 2085*53ee8cc1Swenshuai.xi 2086*53ee8cc1Swenshuai.xi //----------------- 2087*53ee8cc1Swenshuai.xi // TSP_SCMB 2088*53ee8cc1Swenshuai.xi //----------------- 2089*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2090*53ee8cc1Swenshuai.xi /// Get PID filter scramble status. 2091*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 2092*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN : Filter source 2093*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 2094*53ee8cc1Swenshuai.xi /// @param PidFltId \b IN : Pid filter id for getting. If 0xFFFFFFFF, means getting the status of all filters of the same group 2095*53ee8cc1Swenshuai.xi /// @param pu32ScmbSts \b OUT : The scrmabling status of pid filter. 2096*53ee8cc1Swenshuai.xi /// @return TSP_Result 2097*53ee8cc1Swenshuai.xi /// @note pu32ScmbSts: If getting all group status, every bit means one status of every filter. 2098*53ee8cc1Swenshuai.xi /// @note If only checking one filter, 1 means scrambled status and 0 means non-scrambled status. 2099*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2100*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_FltScmbSts(DMX_FILTER_TYPE FltSrc, MS_U32 u32FltGroupId, MS_U32 PidFltId, MS_U32 *pu32ScmbSts); 2101*53ee8cc1Swenshuai.xi 2102*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2103*53ee8cc1Swenshuai.xi /// Get the PES scrambling control status. 2104*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 2105*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer Id 2106*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 2107*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2108*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2109*53ee8cc1Swenshuai.xi /// @note Must open and start filter with DMX_FILTER_TYPE_PACKET type and DMX_SECT_MODE_PESSCMCHK mode 2110*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2111*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_PesScmbSts(MS_U32 u32DmxId, MS_U8* pu8scmb); 2112*53ee8cc1Swenshuai.xi 2113*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2114*53ee8cc1Swenshuai.xi /// Get the TS scrambling control status. 2115*53ee8cc1Swenshuai.xi /// @ingroup TSP_SCMB 2116*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the demux filer Id 2117*53ee8cc1Swenshuai.xi /// @param pu8ScmSts \b OUT: TS scrambling status. bit 0~ bit3, Every bit indicates one status of one packet. bit4 ~ bit7, packet count 2118*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2119*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2120*53ee8cc1Swenshuai.xi /// @note Must open and start filter with DMX_FILTER_TYPE_PACKET type and DMX_SECT_MODE_PESSCMCHK mode 2121*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2122*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_TsScmbSts(MS_U32 u32DmxId, MS_U8* pu8ScmSts); 2123*53ee8cc1Swenshuai.xi 2124*53ee8cc1Swenshuai.xi //----------------- 2125*53ee8cc1Swenshuai.xi // TSP_STB 2126*53ee8cc1Swenshuai.xi //----------------- 2127*53ee8cc1Swenshuai.xi // ---------------- [NOTE] API for TSP Ver2.0 HW architecture.------------- 2128*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2129*53ee8cc1Swenshuai.xi /// Open a demux filter and attach to a existed filter and buffer 2130*53ee8cc1Swenshuai.xi /// @ingroup TSP_STB 2131*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: the filter information to allocate 2132*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: the available demux filer Id 2133*53ee8cc1Swenshuai.xi /// @param u8TargetDmxId \b IN: the target demux filer Id 2134*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2135*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2136*53ee8cc1Swenshuai.xi /// @note Only use on TSP 2.0 (STB) 2137*53ee8cc1Swenshuai.xi /// @note API for U4 TSP N filter to 1 Buffer HW architecture. 2138*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2139*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Open_MultiFlt( DMX_FILTER_TYPE DmxFltType , MS_U8* pu8DmxId, MS_U8 u8TargetDmxId); 2140*53ee8cc1Swenshuai.xi 2141*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2142*53ee8cc1Swenshuai.xi /// Enable drop section filter packet. 2143*53ee8cc1Swenshuai.xi /// @ingroup TSP_STB 2144*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable, FALSE: disable 2145*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2146*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2147*53ee8cc1Swenshuai.xi /// @note Only use on TSP 2.0 (STB) 2148*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2149*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Drop_Enable(MS_BOOL bSet); 2150*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------- 2151*53ee8cc1Swenshuai.xi 2152*53ee8cc1Swenshuai.xi //----------------- 2153*53ee8cc1Swenshuai.xi // TSP_SecFilter 2154*53ee8cc1Swenshuai.xi //----------------- 2155*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2156*53ee8cc1Swenshuai.xi /// Reset demux filer buffer. 2157*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2158*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2159*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2160*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2161*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2162*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReset(MS_U32 u32DmxId); 2163*53ee8cc1Swenshuai.xi 2164*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2165*53ee8cc1Swenshuai.xi /// Set the read pointer of demux filer buffer. 2166*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2167*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2168*53ee8cc1Swenshuai.xi /// @param Read \b IN: the read pointer to be set 2169*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2170*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2171*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2172*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReadSet(MS_U32 u32DmxId, MS_PHY Read); 2173*53ee8cc1Swenshuai.xi 2174*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2175*53ee8cc1Swenshuai.xi /// Get the read pointer of demux filer buffer. 2176*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2177*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2178*53ee8cc1Swenshuai.xi /// @param pRead \b OUT: the pointer to store the obtained read pointer 2179*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2180*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2181*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2182*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectReadGet(MS_U32 u32DmxId, MS_PHY* pRead); 2183*53ee8cc1Swenshuai.xi 2184*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2185*53ee8cc1Swenshuai.xi /// Get the write pointer of demux filer buffer. 2186*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2187*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2188*53ee8cc1Swenshuai.xi /// @param pWrite \b OUT: the pointer to store the obtained write pointer 2189*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2190*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2191*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2192*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectWriteGet(MS_U32 u32DmxId, MS_PHY* pWrite); 2193*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2194*53ee8cc1Swenshuai.xi /// Get the start pointer of demux filer buffer. 2195*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2196*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2197*53ee8cc1Swenshuai.xi /// @param pStart \b OUT: the pointer to store the obtained start pointer 2198*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2199*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2200*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2201*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectStartGet(MS_U32 u32DmxId, MS_PHY* pStart); 2202*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2203*53ee8cc1Swenshuai.xi /// Get the end pointer of demux filer buffer. 2204*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2205*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2206*53ee8cc1Swenshuai.xi /// @param pEnd \b OUT: the pointer to store the obtained end pointer 2207*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2208*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2209*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2210*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectEndGet(MS_U32 u32DmxId, MS_PHY* pEnd); 2211*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2212*53ee8cc1Swenshuai.xi /// Set demux filer match patterns. 2213*53ee8cc1Swenshuai.xi /// @ingroup TSP_SecFilter 2214*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2215*53ee8cc1Swenshuai.xi /// @param pPattern \b IN: the match patterns 2216*53ee8cc1Swenshuai.xi /// @param pMask \b IN: the bit mask for match patterns 2217*53ee8cc1Swenshuai.xi /// @param pu8NotMask \b IN: the bit mask for negative match patterns 2218*53ee8cc1Swenshuai.xi /// @param MatchSize \b IN: the size in bytes for match patterns. 2219*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2220*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2221*53ee8cc1Swenshuai.xi /// @note The match pattern size is 16 bytes 2222*53ee8cc1Swenshuai.xi /// @note match mask -- must set 1 to be compare (customer request) 2223*53ee8cc1Swenshuai.xi /// @note not match mask -- must set 1 to compare 2224*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2225*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SectPatternSet(MS_U32 u32DmxId, MS_U8* pPattern, MS_U8* pMask, MS_U8 *pu8NotMask, MS_U32 MatchSize); 2226*53ee8cc1Swenshuai.xi 2227*53ee8cc1Swenshuai.xi //----------------- 2228*53ee8cc1Swenshuai.xi // TSP_TTX 2229*53ee8cc1Swenshuai.xi //----------------- 2230*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2231*53ee8cc1Swenshuai.xi /// Get Teltext section buffer write address. 2232*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 2233*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: the target demux filer index 2234*53ee8cc1Swenshuai.xi /// @param pWrite \b OUT: the pointer to store the obtained write pointer 2235*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2236*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2237*53ee8cc1Swenshuai.xi /// @note Special case for TTX due to it can't use HW lock to do indirect read/write. (co-processer) 2238*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2239*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_TTX_WriteGet(MS_U32 u32DmxId, MS_PHY* pWrite); 2240*53ee8cc1Swenshuai.xi 2241*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2242*53ee8cc1Swenshuai.xi /// Check can access TSP or not due to different CPU co-process. (HK and AEON) 2243*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 2244*53ee8cc1Swenshuai.xi /// @param u32Try \b IN: TRUE: check, FALSE: not check 2245*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2246*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2247*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2248*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetAccess(MS_U32 u32Try); //OBSOLETE 2249*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2250*53ee8cc1Swenshuai.xi /// Unlock HW semaphore. 2251*53ee8cc1Swenshuai.xi /// @ingroup TSP_TTX 2252*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2253*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2254*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2255*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ReleaseAccess(void); //OBSOLETE 2256*53ee8cc1Swenshuai.xi 2257*53ee8cc1Swenshuai.xi //----------------- 2258*53ee8cc1Swenshuai.xi // TSP_FIFO 2259*53ee8cc1Swenshuai.xi //----------------- 2260*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2261*53ee8cc1Swenshuai.xi /// Reset AVFIFO. 2262*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 2263*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 2264*53ee8cc1Swenshuai.xi /// @param bFlush \b IN: section buffer size 2265*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2266*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2267*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2268*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AVFifo_Reset(DMX_FILTER_TYPE DmxFltType, MS_BOOL bFlush); 2269*53ee8cc1Swenshuai.xi 2270*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2271*53ee8cc1Swenshuai.xi /// Get AVFIFO status (Level). 2272*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 2273*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 2274*53ee8cc1Swenshuai.xi /// @param u32FifoLevel \b OUT: fifo level 2275*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2276*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2277*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2278*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AVFifo_Status(DMX_FILTER_TYPE DmxFltType, DMX_FIFO_STATUS* u32FifoLevel); 2279*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2280*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V packets. 2281*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2282*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 2283*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2284*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2285*53ee8cc1Swenshuai.xi /// @note It will apply to all FIFO. 2286*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2287*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_RemoveDupAVPkt(MS_BOOL bEnable); 2288*53ee8cc1Swenshuai.xi 2289*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2290*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V Fifo packets. 2291*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 2292*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 2293*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 2294*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2295*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2296*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2297*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_RemoveDupAVFifoPkt(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable); 2298*53ee8cc1Swenshuai.xi 2299*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2300*53ee8cc1Swenshuai.xi /// Enable/Disable Audio AB S 2301*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 2302*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable/Disable 2303*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2304*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2305*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2306*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AU_BD_Mode_Enable(MS_BOOL bEnable); 2307*53ee8cc1Swenshuai.xi 2308*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2309*53ee8cc1Swenshuai.xi /// Enable/Disable AV FIFO block mechanism. 2310*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIFO 2311*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 2312*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUR: Enable block mechanism, FALSE: Disable block mechanism 2313*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2314*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2315*53ee8cc1Swenshuai.xi /// @note Not supprot for all chips 2316*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2317*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_AVFifo_BlockEnable(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable); 2318*53ee8cc1Swenshuai.xi 2319*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2320*53ee8cc1Swenshuai.xi /// Bypass TS Header to AV Fifo 2321*53ee8cc1Swenshuai.xi /// @param DmxFltType \b IN: demux type 2322*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUR: Enable TS header bypass, FALSE: Disable TS header bypass 2323*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2324*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2325*53ee8cc1Swenshuai.xi /// @note Not supprot for all chips 2326*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 2327*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_AVFifo_BypassTsHD(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable); 2328*53ee8cc1Swenshuai.xi 2329*53ee8cc1Swenshuai.xi // PVR Record API (Old) 2330*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2331*53ee8cc1Swenshuai.xi /// Set up the recording parameters. 2332*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2333*53ee8cc1Swenshuai.xi /// @param pPvrInfo \b IN: the recording parameters 2334*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2335*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2336*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2337*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2338*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Open(DMX_Pvr_info* pPvrInfo); 2339*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2340*53ee8cc1Swenshuai.xi /// Clear the recording parameters. 2341*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2342*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2343*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2344*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2345*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2346*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Close(void); 2347*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2348*53ee8cc1Swenshuai.xi /// Pause/Resume PVR engine. 2349*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2350*53ee8cc1Swenshuai.xi /// @param bPause \b IN: TRUE: pause, FALSE: resume 2351*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2352*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2353*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2354*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2355*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Pause(MS_BOOL bPause); 2356*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2357*53ee8cc1Swenshuai.xi /// Set the PID to be recorded. 2358*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2359*53ee8cc1Swenshuai.xi /// @param Pid \b IN: The target PID to be recorded 2360*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this recorded PID 2361*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2362*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2363*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2364*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2365*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Pid_Open(MS_U32 Pid, MS_U8* pu8DmxId); 2366*53ee8cc1Swenshuai.xi 2367*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2368*53ee8cc1Swenshuai.xi /// Free the PID to be recorded. 2369*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2370*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 2371*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2372*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2373*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2374*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2375*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Pid_Close(MS_U8 u8DmxId); 2376*53ee8cc1Swenshuai.xi 2377*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2378*53ee8cc1Swenshuai.xi /// Start to record. 2379*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2380*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: TRUE to record original bit stream, FALSE to recording the PIDs of interests 2381*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2382*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2383*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2384*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2385*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Start(MS_BOOL bPvrAll); 2386*53ee8cc1Swenshuai.xi 2387*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2388*53ee8cc1Swenshuai.xi /// Stop recording. 2389*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2390*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2391*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2392*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2393*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2394*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Stop(void); 2395*53ee8cc1Swenshuai.xi 2396*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2397*53ee8cc1Swenshuai.xi /// Get write pointer of recording buffer. 2398*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2399*53ee8cc1Swenshuai.xi /// @param pphyWrite \b OUT: the pointer to store the obtained write pointer 2400*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2401*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2402*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2403*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2404*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_WriteGet(MS_PHY* pphyWrite); 2405*53ee8cc1Swenshuai.xi 2406*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2407*53ee8cc1Swenshuai.xi /// Set recording packet mode. 2408*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2409*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable 192 mode, FALSE: disable 192 mode 2410*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2411*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2412*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2413*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2414*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PVR_SetPacketMode(MS_BOOL bSet); 2415*53ee8cc1Swenshuai.xi 2416*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2417*53ee8cc1Swenshuai.xi /// Set recording starting time stamp. 2418*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2419*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: Record time-stamp (LPCR) 2420*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2421*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2422*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2423*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2424*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_SetRecordStamp(MS_U32 u32Stamp); 2425*53ee8cc1Swenshuai.xi 2426*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2427*53ee8cc1Swenshuai.xi /// Get current recording time stamp. 2428*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2429*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: the pointer to store the obtained record time-stamp (LPCR) 2430*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2431*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2432*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2433*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2434*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_GetRecordStamp(MS_U32* pu32Stamp); 2435*53ee8cc1Swenshuai.xi 2436*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2437*53ee8cc1Swenshuai.xi /// Enable MOBF encrypt. 2438*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2439*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: PVR MOBF Enable/Disable 2440*53ee8cc1Swenshuai.xi /// @param u32key0 \b IN: MOBF encrypt key0 2441*53ee8cc1Swenshuai.xi /// @param u32key1 \b IN: MOBF encrypt key1 2442*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2443*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2444*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2445*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2446*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1); 2447*53ee8cc1Swenshuai.xi 2448*53ee8cc1Swenshuai.xi //PVR Playback API (Old) 2449*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2450*53ee8cc1Swenshuai.xi /// Set playback time stamp. 2451*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2452*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: time stamp 2453*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2454*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2455*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2456*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_SetPlaybackStamp(MS_U32 u32Stamp); 2457*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2458*53ee8cc1Swenshuai.xi /// Get playback time stamp 2459*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2460*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: time stamp 2461*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2462*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2463*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2464*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_GetPlaybackStamp(MS_U32* pu32Stamp); 2465*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2466*53ee8cc1Swenshuai.xi /// Enable filein time stamp. (filein use 192 mode) 2467*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 2468*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2469*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2470*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_Pvr_TimeStampDisable 2471*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2472*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_TimeStampEnable(void); 2473*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2474*53ee8cc1Swenshuai.xi /// Disable filein time stamp. (filein not use 192 mode) 2475*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_TSP 2476*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2477*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2478*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_Pvr_TimeStampEnable 2479*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2480*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_TimeStampDisable(void); 2481*53ee8cc1Swenshuai.xi 2482*53ee8cc1Swenshuai.xi 2483*53ee8cc1Swenshuai.xi //----------------- 2484*53ee8cc1Swenshuai.xi // TSP_PVR_General 2485*53ee8cc1Swenshuai.xi //----------------- 2486*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2487*53ee8cc1Swenshuai.xi /// Set up the recording parameters. 2488*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2489*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2490*53ee8cc1Swenshuai.xi /// @param pPvrInfo \b IN: the recording parameters 2491*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2492*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2493*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2494*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Open(DMX_PVR_ENG Eng ,DMX_Pvr_info* pPvrInfo); 2495*53ee8cc1Swenshuai.xi 2496*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2497*53ee8cc1Swenshuai.xi /// Clear the recording parameters. 2498*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2499*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2500*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2501*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2502*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2503*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Close(DMX_PVR_ENG Eng ); 2504*53ee8cc1Swenshuai.xi 2505*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2506*53ee8cc1Swenshuai.xi /// Pause/Resume PVR engine. 2507*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2508*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2509*53ee8cc1Swenshuai.xi /// @param bPause \b IN: TRUE: pause, FALSE: resume 2510*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2511*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2512*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2513*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pause(DMX_PVR_ENG Eng ,MS_BOOL bPause); 2514*53ee8cc1Swenshuai.xi 2515*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2516*53ee8cc1Swenshuai.xi /// Set the PID to be recorded. 2517*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2518*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2519*53ee8cc1Swenshuai.xi /// @param Pid \b IN: The target PID to be recorded 2520*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this recorded PID 2521*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2522*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2523*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2524*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid_Open(DMX_PVR_ENG Eng ,MS_U32 Pid, MS_U8* pu8DmxId); 2525*53ee8cc1Swenshuai.xi 2526*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2527*53ee8cc1Swenshuai.xi /// Free the PID to be recorded. 2528*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2529*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2530*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 2531*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2532*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2533*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2534*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng ,MS_U8 u8DmxId); 2535*53ee8cc1Swenshuai.xi 2536*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2537*53ee8cc1Swenshuai.xi /// Start to record. 2538*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2539*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2540*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: TRUE to record original bit stream, FALSE to recording the PIDs of interests 2541*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2542*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2543*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2544*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Start(DMX_PVR_ENG Eng ,MS_BOOL bPvrAll); 2545*53ee8cc1Swenshuai.xi 2546*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2547*53ee8cc1Swenshuai.xi /// Stop recording. 2548*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2549*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2550*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2551*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2552*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2553*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Stop(DMX_PVR_ENG Eng ); 2554*53ee8cc1Swenshuai.xi 2555*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2556*53ee8cc1Swenshuai.xi /// Get write pointer of recording buffer. 2557*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2558*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2559*53ee8cc1Swenshuai.xi /// @param pphyWrite \b OUT: the pointer to store the obtained write pointer 2560*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2561*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2562*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2563*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_WriteGet(DMX_PVR_ENG Eng ,MS_PHY* pphyWrite); 2564*53ee8cc1Swenshuai.xi 2565*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2566*53ee8cc1Swenshuai.xi /// Set recording packet mode. 2567*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2568*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2569*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: enable 192 mode, FALSE: disable 192 mode 2570*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2571*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2572*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2573*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetPacketMode(DMX_PVR_ENG Eng ,MS_BOOL bSet); 2574*53ee8cc1Swenshuai.xi 2575*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2576*53ee8cc1Swenshuai.xi /// Set recording packet mode(extension ver.). 2577*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2578*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2579*53ee8cc1Swenshuai.xi /// @param ePvrPktMode \b IN: DMX record packet type 2580*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2581*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2582*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2583*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Pvr_Eng_SetPacketMode_Ex(DMX_PVR_ENG Eng, DMX_Pvr_PacketMode ePvrPktMode); 2584*53ee8cc1Swenshuai.xi 2585*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2586*53ee8cc1Swenshuai.xi /// Set recording starting time stamp. 2587*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2588*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2589*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: Record time-stamp (LPCR) 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_Pvr_Eng_SetRecordStamp(DMX_PVR_ENG Eng ,MS_U32 u32Stamp); 2594*53ee8cc1Swenshuai.xi 2595*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2596*53ee8cc1Swenshuai.xi /// Get current recording time stamp. 2597*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2598*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2599*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: the pointer to store the obtained record time-stamp (LPCR) 2600*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2601*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2602*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2603*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_GetRecordStamp(DMX_PVR_ENG Eng ,MS_U32* pu32Stamp); 2604*53ee8cc1Swenshuai.xi 2605*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2606*53ee8cc1Swenshuai.xi /// Enable MOBF encrypt. 2607*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2608*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: PVR engine ID 2609*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: PVR MOBF Enable/Disable 2610*53ee8cc1Swenshuai.xi /// @param u32key0 \b IN: MOBF encrypt key0 2611*53ee8cc1Swenshuai.xi /// @param u32key1 \b IN: MOBF encrypt key1 2612*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2613*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2614*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2615*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_MOBF_Enable(MS_U8 u8Eng, MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1); 2616*53ee8cc1Swenshuai.xi 2617*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2618*53ee8cc1Swenshuai.xi /// Check if PVR engine is started. 2619*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2620*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2621*53ee8cc1Swenshuai.xi /// @param pbIsStart \b OUT: Pointer to store PVR engine starting status 2622*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2623*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2624*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2625*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_IsStart(DMX_PVR_ENG Eng, MS_BOOL *pbIsStart); 2626*53ee8cc1Swenshuai.xi 2627*53ee8cc1Swenshuai.xi //----------------- 2628*53ee8cc1Swenshuai.xi // TSP_PVR_STB 2629*53ee8cc1Swenshuai.xi //----------------- 2630*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2631*53ee8cc1Swenshuai.xi /// Set/Get PVR PID filter PID. 2632*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2633*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2634*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index 2635*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID value 2636*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE: set, FALSE: get 2637*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2638*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2639*53ee8cc1Swenshuai.xi /// @note Only TSP 2.0/4.0 use this function now. 2640*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2641*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_Pid(DMX_PVR_ENG Eng ,MS_U8 u8DmxId , MS_U32 *Pid, MS_BOOL bSet); 2642*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2643*53ee8cc1Swenshuai.xi /// Set PVR time-stamp clock. 2644*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_General 2645*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2646*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 2647*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2648*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2649*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2650*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetRecordStampClk(DMX_PVR_ENG Eng, DMX_TimeStamp_Clk eClk); 2651*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2652*53ee8cc1Swenshuai.xi /// Set RASP callback engine size. 2653*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2654*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2655*53ee8cc1Swenshuai.xi /// @param pu32CallbackSize \b IN: select 90K or 27M 2656*53ee8cc1Swenshuai.xi /// @param bSet 2657*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2658*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2659*53ee8cc1Swenshuai.xi /// @note Only TSP 2.0 use this function now. 2660*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2661*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_CallbackSize(DMX_PVR_ENG Eng, MS_U32* pu32CallbackSize, MS_BOOL bSet); 2662*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2663*53ee8cc1Swenshuai.xi ///Set PVR CA SPS enable mode 2664*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_STB 2665*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR Engine ID 2666*53ee8cc1Swenshuai.xi /// @param eCaMode \b IN: CA PVR Selection, 0: from TSP, 1: from ca program0, 2: from ca program1 2667*53ee8cc1Swenshuai.xi /// @param bspsEnable \b IN: SPS mode enabled flag 2668*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2669*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2670*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2671*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetCaMode(DMX_PVR_ENG Eng, DMX_CA_PVRMODE eCaMode, MS_BOOL bspsEnable); 2672*53ee8cc1Swenshuai.xi 2673*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2674*53ee8cc1Swenshuai.xi /// Set playback time-stamp clock. 2675*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2676*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: PVR engine ID 2677*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 2678*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2679*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2680*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2681*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Pvr_Eng_SetPlaybackStampClk(MS_U8 u8Eng, DMX_TimeStamp_Clk eClk); 2682*53ee8cc1Swenshuai.xi 2683*53ee8cc1Swenshuai.xi //PVR CA API (Old) 2684*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2685*53ee8cc1Swenshuai.xi /// Open PVR PID filter for recording scramble stream depended on Engine ID. 2686*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2687*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID to record 2688*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b IN: Pointer to store PVR PID filter index 2689*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2690*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2691*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2692*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2693*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Pid_Open(MS_U32 Pid, MS_U8* pu8DmxId); 2694*53ee8cc1Swenshuai.xi 2695*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2696*53ee8cc1Swenshuai.xi /// Close PVR PID filter depended on Engine ID. 2697*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2698*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index to close 2699*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2700*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2701*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2702*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2703*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Pid_Close(MS_U8 u8DmxId); 2704*53ee8cc1Swenshuai.xi 2705*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2706*53ee8cc1Swenshuai.xi /// Start to record scramble stream depend on engine id. 2707*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2708*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: If true, record all stream data; if false, record data by PIDs 2709*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2710*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2711*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2712*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2713*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Start(MS_BOOL bPvrAll); 2714*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2715*53ee8cc1Swenshuai.xi /// Stop to record scramble stream. 2716*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2717*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2718*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2719*53ee8cc1Swenshuai.xi /// @note Keep the function which have engine parameter. 2720*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2721*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Stop(void); 2722*53ee8cc1Swenshuai.xi 2723*53ee8cc1Swenshuai.xi //----------------- 2724*53ee8cc1Swenshuai.xi // TSP_PVR_CA 2725*53ee8cc1Swenshuai.xi //----------------- 2726*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2727*53ee8cc1Swenshuai.xi /// Open PVR PID filter for recording scramble stream depended on Engine ID. 2728*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2729*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2730*53ee8cc1Swenshuai.xi /// @param Pid \b IN: PID to record 2731*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b IN: Pointer to store PVR PID filter index 2732*53ee8cc1Swenshuai.xi /// @param u8ShareKeyType \b IN: PID filter share key type. 0: Not use sharekey filters. 2733*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2734*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2735*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2736*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Pid_Open(DMX_PVR_ENG Eng, MS_U32 Pid, MS_U8* pu8DmxId, MS_U8 u8ShareKeyType); 2737*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2738*53ee8cc1Swenshuai.xi /// Close PVR PID filter depended on Engine ID. 2739*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2740*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2741*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: PID filter index to close 2742*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2743*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2744*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2745*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U8 u8DmxId); 2746*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2747*53ee8cc1Swenshuai.xi /// Start to record scramble stream depend on engine id. 2748*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2749*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2750*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN: If true, record all stream data; if false, record data by PIDs 2751*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2752*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2753*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2754*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll); 2755*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2756*53ee8cc1Swenshuai.xi /// Stop to record scramble stream. 2757*53ee8cc1Swenshuai.xi /// @ingroup TSP_PVR_CA 2758*53ee8cc1Swenshuai.xi /// @param Eng \b IN: PVR engine ID 2759*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2760*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2761*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2762*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_PvrCA_Eng_Stop(DMX_PVR_ENG Eng); 2763*53ee8cc1Swenshuai.xi //--------------------------------------------- 2764*53ee8cc1Swenshuai.xi 2765*53ee8cc1Swenshuai.xi //----------------- 2766*53ee8cc1Swenshuai.xi // TSP_FILEIN_PVR 2767*53ee8cc1Swenshuai.xi //----------------- 2768*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2769*53ee8cc1Swenshuai.xi /// Open & set pid filter for file-in PVR using. 2770*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2771*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2772*53ee8cc1Swenshuai.xi /// @param Pid \b IN : PVR PID to record 2773*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: Pointer to store PID filter index 2774*53ee8cc1Swenshuai.xi /// @param u8ShareKeyType \b IN : The flag of sharekey filter using. if 0, not use sharekey filters 2775*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2776*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2777*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2778*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); 2779*53ee8cc1Swenshuai.xi 2780*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2781*53ee8cc1Swenshuai.xi /// Close pid filter of file-in PVR. 2782*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2783*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2784*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN : PID filter id 2785*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2786*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2787*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2788*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U8 u8DmxId); 2789*53ee8cc1Swenshuai.xi 2790*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2791*53ee8cc1Swenshuai.xi /// Start file-in PVR recording. 2792*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2793*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2794*53ee8cc1Swenshuai.xi /// @param bPvrAll \b IN : FALSE is record PID, TRUE is record All ts data 2795*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2796*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2797*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2798*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll); 2799*53ee8cc1Swenshuai.xi 2800*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2801*53ee8cc1Swenshuai.xi /// Stop file-in PVR recording. 2802*53ee8cc1Swenshuai.xi /// @ingroup TSP_FILEIN_PVR 2803*53ee8cc1Swenshuai.xi /// @param Eng \b IN : PVR eigine id 2804*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2805*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2806*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2807*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Pvr_Eng_Stop(DMX_PVR_ENG Eng); 2808*53ee8cc1Swenshuai.xi //--------------------------------------------- 2809*53ee8cc1Swenshuai.xi 2810*53ee8cc1Swenshuai.xi 2811*53ee8cc1Swenshuai.xi // File-in API (Old) 2812*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2813*53ee8cc1Swenshuai.xi /// Start to get bit stream from memory. 2814*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2815*53ee8cc1Swenshuai.xi /// @param Dst \b IN: file in destination type 2816*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2817*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2818*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2819*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2820*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2821*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2822*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 2823*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2824*53ee8cc1Swenshuai.xi /// Stop to get bit stream from memeory. 2825*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2826*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2827*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2828*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2829*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2830*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Stop(void); 2831*53ee8cc1Swenshuai.xi 2832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2833*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 2834*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2835*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2836*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2837*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2838*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2839*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2840*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Info(DMX_Filein_info *pFileinInfo); 2841*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2842*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2843*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2844*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2845*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2846*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2847*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2848*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Pause(void); 2849*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2850*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 2851*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2852*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2853*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2854*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2855*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2856*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Resume(void); 2857*53ee8cc1Swenshuai.xi 2858*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2859*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going. 2860*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2861*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2862*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2863*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2864*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2865*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsIdle(void); 2866*53ee8cc1Swenshuai.xi 2867*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2868*53ee8cc1Swenshuai.xi /// Check if memory transfer is under going. 2869*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2870*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2871*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2872*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2873*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2874*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsBusy(void); 2875*53ee8cc1Swenshuai.xi 2876*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2877*53ee8cc1Swenshuai.xi /// Check if memory transfer is paused. 2878*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2879*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 2880*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 2881*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2882*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2883*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_IsPause(void); 2884*53ee8cc1Swenshuai.xi 2885*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2886*53ee8cc1Swenshuai.xi /// Reset CMDQ. 2887*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2888*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2889*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2890*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2891*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2892*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_Reset(void); 2893*53ee8cc1Swenshuai.xi 2894*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2895*53ee8cc1Swenshuai.xi /// Get the number of CMDQ empty slot. 2896*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2897*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: empty slot number 2898*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2899*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2900*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2901*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2902*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_GetEmptyNum(MS_U32 *pu32EmptySlot); 2903*53ee8cc1Swenshuai.xi 2904*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2905*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 2906*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2907*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2908*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2909*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2910*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2911*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2912*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_FIFOWriteLevel(MS_U8 *pu8CmdQStatus); 2913*53ee8cc1Swenshuai.xi 2914*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2915*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 2916*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2917*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: TRUE: bypass file-in timestamp, FALSE: not bypass 2918*53ee8cc1Swenshuai.xi /// @return None 2919*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2920*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2921*53ee8cc1Swenshuai.xi void MApi_DMX_BypassFileInTimeStamp(MS_BOOL bbypass); 2922*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2923*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 2924*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2925*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 2926*53ee8cc1Swenshuai.xi /// - 0: 0 to 25% full 2927*53ee8cc1Swenshuai.xi /// - 1: 25 to 50% full 2928*53ee8cc1Swenshuai.xi /// - 2: 50 to 75% full 2929*53ee8cc1Swenshuai.xi /// - 3: 75 to 100% full 2930*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2931*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2932*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2933*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2934*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_CMDQ_FIFOWriteLevel(MS_U8 *pu8CmdQStatus); 2935*53ee8cc1Swenshuai.xi 2936*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2937*53ee8cc1Swenshuai.xi /// Get filein time stamp. (Current time stamp from TS packet). It is used on 192 packet mode. 2938*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2939*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer to store time-stamp value 2940*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2941*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2942*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2943*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2944*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetFileInTimeStamp(MS_U32 *pu32FileInTS); 2945*53ee8cc1Swenshuai.xi 2946*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2947*53ee8cc1Swenshuai.xi /// Get playback read address. 2948*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2949*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: pointer to store read address 2950*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2951*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2952*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2953*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2954*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_GetReadAddr(MS_PHY* pphyRead); 2955*53ee8cc1Swenshuai.xi 2956*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2957*53ee8cc1Swenshuai.xi /// Enable MOBF decrypt key. 2958*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeRemove 2959*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: File-in MOBF Enable/Disable 2960*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF dyncrypt u32key 2961*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2962*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2963*53ee8cc1Swenshuai.xi /// @note Keep the function which have path parameter. 2964*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2965*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key); 2966*53ee8cc1Swenshuai.xi 2967*53ee8cc1Swenshuai.xi //----------------- 2968*53ee8cc1Swenshuai.xi // TSP_Playback 2969*53ee8cc1Swenshuai.xi //----------------- 2970*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2971*53ee8cc1Swenshuai.xi /// Start to get bit stream from memory. 2972*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2973*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2974*53ee8cc1Swenshuai.xi /// @param Dst \b IN: file in destination type 2975*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 2976*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 2977*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2978*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2979*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2980*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 2981*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2982*53ee8cc1Swenshuai.xi /// Stop to get bit stream from memeory. 2983*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2984*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2985*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2986*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2987*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2988*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Stop(DMX_FILEIN_PATH ePath); 2989*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2990*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 2991*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 2992*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 2993*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 2994*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 2995*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 2996*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2997*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Info(DMX_FILEIN_PATH ePath, DMX_Filein_info *pFileinInfo); 2998*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 2999*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 3000*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3001*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3002*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3003*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3004*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3005*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Pause(DMX_FILEIN_PATH ePath); 3006*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3007*53ee8cc1Swenshuai.xi /// Pause to get bit stream by memeory. 3008*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3009*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3010*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3011*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3012*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3013*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_Resume(DMX_FILEIN_PATH ePath); 3014*53ee8cc1Swenshuai.xi 3015*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3016*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going. 3017*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3018*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3019*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 3020*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 3021*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3022*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_Eng_IsIdle(DMX_FILEIN_PATH ePath); 3023*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3024*53ee8cc1Swenshuai.xi /// Check if memory transfer is under going. 3025*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3026*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3027*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 3028*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 3029*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3030*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_Eng_IsBusy(DMX_FILEIN_PATH ePath); 3031*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3032*53ee8cc1Swenshuai.xi /// Check if memory transfer is paused. 3033*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3034*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3035*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 3036*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 3037*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3038*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_Filein_Eng_IsPause(DMX_FILEIN_PATH ePath); 3039*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3040*53ee8cc1Swenshuai.xi /// Reset CMDQ. 3041*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3042*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3043*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3044*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3045*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3046*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_Reset(DMX_FILEIN_PATH ePath); 3047*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3048*53ee8cc1Swenshuai.xi /// Get the number of CMDQ empty slot. 3049*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3050*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3051*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: empty slot number 3052*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3053*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3054*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3055*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_GetEmptyNum(DMX_FILEIN_PATH ePath, MS_U32 *pu32EmptySlot); 3056*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3057*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 3058*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3059*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3060*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: TRUE: bypass file-in timestamp, FALSE: not bypass 3061*53ee8cc1Swenshuai.xi /// @return None 3062*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3063*53ee8cc1Swenshuai.xi void MApi_DMX_Filein_Eng_BypassFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_BOOL bbypass); 3064*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3065*53ee8cc1Swenshuai.xi /// Get Command queue FIFO level. 3066*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3067*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3068*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 3069*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3070*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3071*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3072*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_CMDQ_FIFOWriteLevel(DMX_FILEIN_PATH ePath, MS_U8 *pu8CmdQStatus); 3073*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3074*53ee8cc1Swenshuai.xi /// Get filein time stamp. (Current time stamp from TS packet). It is used on 192 packet mode. 3075*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3076*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3077*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer to store time-stamp value 3078*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3079*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3080*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3081*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_U32 *pu32FileInTS); 3082*53ee8cc1Swenshuai.xi 3083*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3084*53ee8cc1Swenshuai.xi /// Get playback read address. 3085*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3086*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3087*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: pointer to store read address 3088*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3089*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3090*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3091*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetReadAddr(DMX_FILEIN_PATH ePath, MS_PHY* pphyRead); 3092*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3093*53ee8cc1Swenshuai.xi /// Enable MOBF decrypt key. 3094*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3095*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3096*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: File-in MOBF Enable/Disable 3097*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF dyncrypt u32key 3098*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3099*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3100*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3101*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_MOBF_Enable(DMX_FILEIN_PATH ePath, MS_BOOL bEnable, MS_U32 u32key); 3102*53ee8cc1Swenshuai.xi 3103*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3104*53ee8cc1Swenshuai.xi /// Enable FileEng Playback time stamp. 3105*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3106*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3107*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3108*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3109*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3110*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_PlaybackTimeStampEnable(DMX_FILEIN_PATH ePath); 3111*53ee8cc1Swenshuai.xi 3112*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3113*53ee8cc1Swenshuai.xi /// Disable fileEng Playback time stamp. 3114*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3115*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3116*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3117*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3118*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3119*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_PlaybackTimeStampDisable(DMX_FILEIN_PATH ePath); 3120*53ee8cc1Swenshuai.xi 3121*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3122*53ee8cc1Swenshuai.xi /// Set playback time stamp. (LPCR) 3123*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3124*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3125*53ee8cc1Swenshuai.xi /// @param u32Stamp \b IN: time-stamp value 3126*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3127*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3128*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3129*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_SetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32 u32Stamp); 3130*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3131*53ee8cc1Swenshuai.xi /// Get playback time stamp. (LPCR) 3132*53ee8cc1Swenshuai.xi /// @ingroup TSP_Playback 3133*53ee8cc1Swenshuai.xi /// @param ePath \b IN: file in path (TSIF) 3134*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store time-stamp value 3135*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3136*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3137*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3138*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Filein_Eng_GetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32* pu32Stamp); 3139*53ee8cc1Swenshuai.xi 3140*53ee8cc1Swenshuai.xi 3141*53ee8cc1Swenshuai.xi //------------------------------------------------------------- 3142*53ee8cc1Swenshuai.xi //MMFI & MINITSP API 3143*53ee8cc1Swenshuai.xi //----------------- 3144*53ee8cc1Swenshuai.xi // TSP_MM 3145*53ee8cc1Swenshuai.xi //----------------- 3146*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3147*53ee8cc1Swenshuai.xi /// Check mmfi engine is ilde or not. 3148*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3149*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3150*53ee8cc1Swenshuai.xi /// @return TRUE - Idle 3151*53ee8cc1Swenshuai.xi /// @return FALSE - not idle 3152*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3153*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_MMFI_Filein_IsIdle(DMX_MMFI_PATH ePath); 3154*53ee8cc1Swenshuai.xi 3155*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3156*53ee8cc1Swenshuai.xi /// Check mmfi engine is busy or not. 3157*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3158*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3159*53ee8cc1Swenshuai.xi /// @return TRUE - Busy 3160*53ee8cc1Swenshuai.xi /// @return FALSE - not busy 3161*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3162*53ee8cc1Swenshuai.xi MS_BOOL MApi_DMX_MMFI_Filein_IsBusy(DMX_MMFI_PATH ePath); 3163*53ee8cc1Swenshuai.xi 3164*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3165*53ee8cc1Swenshuai.xi /// Reset MMFilein Command queue 3166*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3167*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3168*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3169*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3170*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3171*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_Reset(DMX_MMFI_PATH ePath); 3172*53ee8cc1Swenshuai.xi 3173*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3174*53ee8cc1Swenshuai.xi /// Get the MMFilein CMDQ empty slot number. 3175*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3176*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3177*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: Empty slot 3178*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3179*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3180*53ee8cc1Swenshuai.xi /// @note The user can use MApi_DMX_MMFI_Filein_Start() as a multimedia file-in command to input data from memory to the demultiplexer. \n 3181*53ee8cc1Swenshuai.xi /// The DMX engine allows to add multimedia file-in command without having to wait that the previous multimedia file-in command have been processed completely. \n 3182*53ee8cc1Swenshuai.xi /// In this mode the waited multimedia file-in commands are stored to the so-called multimedia file-in command queue. \n 3183*53ee8cc1Swenshuai.xi /// However, the size of the command queue is limited and each multimedia file-in command will consumes 5 slots in the multimedia file-in command queue. \n 3184*53ee8cc1Swenshuai.xi /// Therefore, the caller has to check the number of empty slots in the multimedia file-in command queue with MApi_DMX_MMFI_Filein_CMDQ_GetEmptyNum() 3185*53ee8cc1Swenshuai.xi /// before adding a new multimedia file-in command. 3186*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3187*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_GetEmptyNum(DMX_MMFI_PATH ePath, MS_U32 *pu32EmptySlot); 3188*53ee8cc1Swenshuai.xi 3189*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3190*53ee8cc1Swenshuai.xi /// Start to get bit stream by memeory. 3191*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3192*53ee8cc1Swenshuai.xi /// @param eDst \b IN: file in destination path 3193*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 3194*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 3195*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3196*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3197*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3198*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_Start(DMX_MMFI_DST eDst, MS_PHY pBuf, MS_U32 u32BufSize); 3199*53ee8cc1Swenshuai.xi 3200*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3201*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory. 3202*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3203*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3204*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 3205*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3206*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3207*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3208*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_Info(DMX_MMFI_PATH ePath, DMX_Filein_info *pFileinInfo); 3209*53ee8cc1Swenshuai.xi 3210*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3211*53ee8cc1Swenshuai.xi /// Disable 192 mode blovk scheme to bypass fill-in timestamp 3212*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3213*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3214*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: If true, bypass file-in timestamp. 3215*53ee8cc1Swenshuai.xi /// @return None 3216*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3217*53ee8cc1Swenshuai.xi void MApi_DMX_MMFI_Filein_BypassTimeStamp(DMX_MMFI_PATH ePath, MS_BOOL bbypass); 3218*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3219*53ee8cc1Swenshuai.xi /// Free the PID of MM Filein. 3220*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3221*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3222*53ee8cc1Swenshuai.xi /// @param pu32FileInTS \b OUT: pointer for timestamp value 3223*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3224*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3225*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3226*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_GetFileInTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32FileInTS); 3227*53ee8cc1Swenshuai.xi 3228*53ee8cc1Swenshuai.xi //MMFI (MMFI Only) API 3229*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3230*53ee8cc1Swenshuai.xi /// Set the PID to be MM File-in 3231*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3232*53ee8cc1Swenshuai.xi /// @param flttype \b IN: MMFI filter type 3233*53ee8cc1Swenshuai.xi /// @param u16Pid \b IN: The target PID for MM Filein 3234*53ee8cc1Swenshuai.xi /// @param pu8DmxId \b OUT: The demux filter Id for this MMFilein PID 3235*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3236*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3237*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3238*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Pid_Open(DMX_MMFI_FLTTYPE flttype, MS_U16 u16Pid, MS_U8* pu8DmxId); 3239*53ee8cc1Swenshuai.xi 3240*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3241*53ee8cc1Swenshuai.xi /// Free the PID of MM Filein. 3242*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3243*53ee8cc1Swenshuai.xi /// @param u8DmxId \b IN: The demux filter Id from MApi_DMX_Pvr_Pid_Open 3244*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3245*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3246*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3247*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Pid_Close(MS_U8 u8DmxId); 3248*53ee8cc1Swenshuai.xi 3249*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3250*53ee8cc1Swenshuai.xi /// Get MMFilein Command queue fifo level. 3251*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3252*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3253*53ee8cc1Swenshuai.xi /// @param pu8CmdQStatus \b OUT: fifo level, 0~3 3254*53ee8cc1Swenshuai.xi /// - 0: 0 to 25% full 3255*53ee8cc1Swenshuai.xi /// - 1: 25 to 50% full 3256*53ee8cc1Swenshuai.xi /// - 2: 50 to 75% full 3257*53ee8cc1Swenshuai.xi /// - 3: 75 to 100% full 3258*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3259*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3260*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3261*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_Filein_CMDQ_FIFOWriteLevel(DMX_MMFI_PATH ePath, MS_U8 *pu8CmdQStatus); 3262*53ee8cc1Swenshuai.xi 3263*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3264*53ee8cc1Swenshuai.xi /// Set MMFI playback timestamp. 3265*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3266*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3267*53ee8cc1Swenshuai.xi /// @param u32pcr2 \b IN: LPCR2 value 3268*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3269*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3270*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3271*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_SetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 u32pcr2); 3272*53ee8cc1Swenshuai.xi 3273*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3274*53ee8cc1Swenshuai.xi /// Get MMFI Playback timestamp. 3275*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3276*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3277*53ee8cc1Swenshuai.xi /// @param pu32pcr2 \b OUT: pointer to store LCPR2 value 3278*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3279*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3280*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3281*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_GetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32pcr2); 3282*53ee8cc1Swenshuai.xi 3283*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3284*53ee8cc1Swenshuai.xi /// Enable remove duplicate A/V packets. 3285*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3286*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 3287*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3288*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3289*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3290*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_RemoveDupAVPkt(MS_BOOL bEnable); 3291*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3292*53ee8cc1Swenshuai.xi /// Enable MMFI timestamp mode. 3293*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM 3294*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3295*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3296*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3297*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_MMFI_TimeStampDisable 3298*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3299*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampEnable(DMX_MMFI_PATH ePath); 3300*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3301*53ee8cc1Swenshuai.xi /// Disable MMFI timestamp mode. 3302*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM 3303*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3304*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3305*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3306*53ee8cc1Swenshuai.xi /// @note: Merge with MApi_DMX_MMFI_TimeStampEnable 3307*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3308*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampDisable(DMX_MMFI_PATH ePath); 3309*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3310*53ee8cc1Swenshuai.xi /// Enable/Disable MMFI MOBF function and set MOBF key index. 3311*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3312*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3313*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable 3314*53ee8cc1Swenshuai.xi /// @param u32key \b IN: MOBF key index 3315*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3316*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3317*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3318*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_MOBF_Enable(DMX_MMFI_PATH ePath, MS_BOOL bEnable, MS_U32 u32key); 3319*53ee8cc1Swenshuai.xi 3320*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3321*53ee8cc1Swenshuai.xi /// Set MMFI MOBF level. 3322*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3323*53ee8cc1Swenshuai.xi /// @param epath \b IN: MM File-in Path 3324*53ee8cc1Swenshuai.xi /// @param u8level \b IN: the value of MOBF level 3325*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3326*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3327*53ee8cc1Swenshuai.xi /// @note only used on TSP 1.0 3328*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3329*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_MOBF_SetLevel(DMX_MMFI_PATH epath, MS_U8 u8level); 3330*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3331*53ee8cc1Swenshuai.xi /// Set MMFI TimeStamp Clk. 3332*53ee8cc1Swenshuai.xi /// @ingroup TSP_MM 3333*53ee8cc1Swenshuai.xi /// @param ePath \b IN: MM File-in Path 3334*53ee8cc1Swenshuai.xi /// @param eClk \b IN: select 90K or 27M 3335*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3336*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3337*53ee8cc1Swenshuai.xi /// @note only used on TSP 1.0 3338*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3339*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_MMFI_TimeStampClk(DMX_MMFI_PATH ePath, DMX_TimeStamp_Clk eClk); 3340*53ee8cc1Swenshuai.xi 3341*53ee8cc1Swenshuai.xi //------------------------------------------------------------- 3342*53ee8cc1Swenshuai.xi 3343*53ee8cc1Swenshuai.xi 3344*53ee8cc1Swenshuai.xi //----------------- 3345*53ee8cc1Swenshuai.xi // TSO_General 3346*53ee8cc1Swenshuai.xi //----------------- 3347*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3348*53ee8cc1Swenshuai.xi /// Set up parameters for input bit stream from memory of TSO path. 3349*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3350*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3351*53ee8cc1Swenshuai.xi /// @param pFileinInfo \b IN: the file in parameters 3352*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3353*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3354*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3355*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Info(MS_U8 u8Eng, DMX_Filein_info *pFileinInfo); 3356*53ee8cc1Swenshuai.xi 3357*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3358*53ee8cc1Swenshuai.xi /// Check if no memory transfer is under going of TSO path 3359*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3360*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3361*53ee8cc1Swenshuai.xi /// @return TRUE - if idle 3362*53ee8cc1Swenshuai.xi /// @return FALSE - otherwise 3363*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3364*53ee8cc1Swenshuai.xi MS_BOOL SYMBOL_WEAK MApi_DMX_TSO_Filein_IsIdle(MS_U8 u8Eng); 3365*53ee8cc1Swenshuai.xi 3366*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3367*53ee8cc1Swenshuai.xi /// Get TSO file-in CMDQ empty number. 3368*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3369*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3370*53ee8cc1Swenshuai.xi /// @param pu32EmptySlot \b OUT: pointer to store CMDQ empty slot number 3371*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3372*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3373*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3374*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_CMDQ_GetEmptyNum(MS_U8 u8Eng, MS_U32 *pu32EmptySlot); 3375*53ee8cc1Swenshuai.xi 3376*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3377*53ee8cc1Swenshuai.xi /// Get TSO file-in CMDQ reset. 3378*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3379*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3380*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3381*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3382*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3383*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_CMDQ_Reset(MS_U8 u8Eng); 3384*53ee8cc1Swenshuai.xi 3385*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3386*53ee8cc1Swenshuai.xi /// Start to get bit stream by memeory of TSO path. 3387*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3388*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3389*53ee8cc1Swenshuai.xi /// @param pBuf \b IN: the memory containing the bit stream 3390*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: the size the memory to get 3391*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3392*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3393*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3394*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Start(MS_U8 u8Eng, MS_PHY pBuf, MS_U32 u32BufSize); 3395*53ee8cc1Swenshuai.xi 3396*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3397*53ee8cc1Swenshuai.xi /// Stop to get bit stream by memeory of TSO path. 3398*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3399*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3400*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3401*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3402*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3403*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_Stop(MS_U8 u8Eng); 3404*53ee8cc1Swenshuai.xi 3405*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3406*53ee8cc1Swenshuai.xi /// Set TSO playback time stamp. (LPCR) 3407*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3408*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3409*53ee8cc1Swenshuai.xi /// @param u32Stamp \b OUT: pointer to store timestamp value 3410*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3411*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3412*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3413*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_SetPlaybackTimeStamp(MS_U8 u8Eng, MS_U32 u32Stamp); 3414*53ee8cc1Swenshuai.xi 3415*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3416*53ee8cc1Swenshuai.xi /// Get TSO file-in time stamp. (LPCR) 3417*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3418*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3419*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store timestamp value 3420*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3421*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3422*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3423*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_GetPlaybackStamp(MS_U8 u8Eng, MS_U32* pu32Stamp); 3424*53ee8cc1Swenshuai.xi 3425*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3426*53ee8cc1Swenshuai.xi /// Get TSO file-in time stamp. 3427*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3428*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3429*53ee8cc1Swenshuai.xi /// @param pu32Stamp \b OUT: pointer to store timestamp value 3430*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3431*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3432*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3433*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_GetFileInTimeStamp(MS_U8 u8Eng, MS_U32 *pu32Stamp); 3434*53ee8cc1Swenshuai.xi 3435*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3436*53ee8cc1Swenshuai.xi /// Disable 192 mode block scheme to bypass fill-in timestamp. 3437*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3438*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 3439*53ee8cc1Swenshuai.xi /// @param bbypass \b IN: If true, bypass file-in timestamp. 3440*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3441*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3442*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3443*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_BypassFileInTimeStamp(MS_U8 u8Eng, MS_BOOL bbypass); 3444*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3445*53ee8cc1Swenshuai.xi /// Enable TSO file in time stamp. 3446*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM_TSO 3447*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 3448*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3449*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3450*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3451*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_TimeStampEnable(MS_U8 u8Eng); 3452*53ee8cc1Swenshuai.xi 3453*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3454*53ee8cc1Swenshuai.xi /// Disable TSO file in time stamp 3455*53ee8cc1Swenshuai.xi /// @ingroup DMX_ToBeModified_MM_TSO 3456*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine id. 3457*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3458*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3459*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3460*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_TimeStampDisable(MS_U8 u8Eng); 3461*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3462*53ee8cc1Swenshuai.xi /// Set TSO Out Clock. 3463*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3464*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3465*53ee8cc1Swenshuai.xi /// @param eTsOutClk \b IN: TSO out clock select 3466*53ee8cc1Swenshuai.xi /// @param eTsOutClkSrc \b IN: TSO out clock source select 3467*53ee8cc1Swenshuai.xi /// @param u16DivNum \b IN: If select DMPLLDIV source, setting Divide number 3468*53ee8cc1Swenshuai.xi /// @param bClkInv \b IN: If Out Clock invert 3469*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3470*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3471*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, 3472*53ee8cc1Swenshuai.xi /// @note and user should set u16DivNum to generate final output clock. 3473*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. 3474*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, 3475*53ee8cc1Swenshuai.xi /// @note and this colck is from external pad 3476*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 3477*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); 3478*53ee8cc1Swenshuai.xi 3479*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3480*53ee8cc1Swenshuai.xi /// Enable or disable TSO output. 3481*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3482*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3483*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE is enable, FALSE is disable 3484*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3485*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3486*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3487*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_OutputEnable(MS_U8 u8Eng, MS_BOOL bEnable); 3488*53ee8cc1Swenshuai.xi 3489*53ee8cc1Swenshuai.xi //TSO2 API 3490*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3491*53ee8cc1Swenshuai.xi /// Set or get local stream ID of TSO Out. 3492*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3493*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3494*53ee8cc1Swenshuai.xi /// @param eIf \b IN: TSO input TSIF 3495*53ee8cc1Swenshuai.xi /// @param pu8StrId \b IN or OUT: pointer to store local stream ID, default value is 0x47 3496*53ee8cc1Swenshuai.xi /// @param bSet \b IN: If TRUE, set local stream id, otherwise get local stream id 3497*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3498*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3499*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3500*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_LocalStreamId(MS_U8 u8Eng, DMX_TSIF eIf, MS_U8* pu8StrId, MS_BOOL bSet); 3501*53ee8cc1Swenshuai.xi 3502*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3503*53ee8cc1Swenshuai.xi /// Set TSO virtual queue buffer. 3504*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3505*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3506*53ee8cc1Swenshuai.xi /// @param phyAddr \b IN: TSO VQ buffer address 3507*53ee8cc1Swenshuai.xi /// @param u32BufSize \b IN: TSO VQ buffer size 3508*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3509*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3510*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3511*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_SVQBuf_Set(MS_U8 u8Eng, MS_PHY phyAddr, MS_U32 u32BufSize); 3512*53ee8cc1Swenshuai.xi 3513*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3514*53ee8cc1Swenshuai.xi ///TSO (TS output) Demux Flow input sources configure getting and setting. 3515*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3516*53ee8cc1Swenshuai.xi /// @param pstInputCfg \b IN/OUT: Pointer of storing TSO input configure data 3517*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3518*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3519*53ee8cc1Swenshuai.xi /// - The members in pstInputCfg structure 3520*53ee8cc1Swenshuai.xi /// eFlow \b IN: DMX TSO playback flow, DMX_FLOW_TSO_PLAYBACK/DMX_FLOW_TSO_PLAYBACK1 3521*53ee8cc1Swenshuai.xi /// eTSOInIf \b IN: TSO input interface, DMX_TSIF_LIVE0/DMX_TSIF_LIVE1/DMX_TSIF_LIVE2/DMX_TSIF_FILE0/DMX_TSIF_FILE1 3522*53ee8cc1Swenshuai.xi /// stInputInfo.Input \b IN/OUT: TSO input interface source, enum item of DMX_FLOW_INPUT 3523*53ee8cc1Swenshuai.xi /// stInputInfo.bClkInv \b IN/OUT: If TSO input interface source is from demod, please set clock invert type 3524*53ee8cc1Swenshuai.xi /// stInputInfo.bExtSync \b IN/OUT: If TSO input interface source is from demod, please set external sync type 3525*53ee8cc1Swenshuai.xi /// stInputInfo.bParallel \b IN/OUT: If TSO input interface source is from demod, please set parallel or serial type 3526*53ee8cc1Swenshuai.xi /// u8LocalStrId \b IN/OUT: The local stream ID (TS output sync byte) value, default is 0x47 3527*53ee8cc1Swenshuai.xi /// bBypassAll \b IN/OUT: TRUE means bypass all ts data for TSO playback; FALSE means tso will output ts data by PIDs 3528*53ee8cc1Swenshuai.xi /// bEnable \b IN/OUT: TRUE means enable TSO input now; FALSE means disable this TSO input fource 3529*53ee8cc1Swenshuai.xi 3530*53ee8cc1Swenshuai.xi /// @note This API is for TSO 2.0 HW architecture. 3531*53ee8cc1Swenshuai.xi /// @note Serval TSO input will be merge to be one TSO output. This API is for configuring one of TSO input. 3532*53ee8cc1Swenshuai.xi /// @note If there are 3 TSO input source, you shold call this API 3 times for every TSO input path configure. 3533*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3534*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Flow_InputCfg(DMX_TSO_InputCfg* pstInputCfg); 3535*53ee8cc1Swenshuai.xi 3536*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3537*53ee8cc1Swenshuai.xi /// TSO (TS output) Demux Flow output path configure 3538*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3539*53ee8cc1Swenshuai.xi /// @param pstOutputCfg \b IN/OUT: Pointer of storing TSO output configure data 3540*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3541*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3542*53ee8cc1Swenshuai.xi /// - The members in pstOutputCfg structure 3543*53ee8cc1Swenshuai.xi /// eFlow \b IN: DMX TSO playback flow, DMX_FLOW_TSO_PLAYBACK/DMX_FLOW_TSO_PLAYBACK1 3544*53ee8cc1Swenshuai.xi /// eOutPad \b IN: TSO output pad select, DMX_FLOW_OUTPUT_EXT_PAD1/DMX_FLOW_OUTPUT_EXT_PAD3/// 3545*53ee8cc1Swenshuai.xi /// u16OutPktSize \b IN/OUT: TSO output packet size. default vale is 188 bytes 3546*53ee8cc1Swenshuai.xi /// bEnable \b IN/OUT: TRUE means enable TSO output now; FALSE means disable TSO output 3547*53ee8cc1Swenshuai.xi /// bDefOutClk \b IN: TURE means using default clock setting given by driver; FALSE means set output clock by user parameters 3548*53ee8cc1Swenshuai.xi /// bOutClkInv \b IN/OUT: Set inver type of TSO output clock 3549*53ee8cc1Swenshuai.xi /// eTsoOutClk \b IN/OUT: Select TSO output clock, enum item of DMX_TSO_OutClk 3550*53ee8cc1Swenshuai.xi /// eTsoOutClkSrc \b IN/OUT: Select TSO output clock source, enum item of DMX_TSO_OutClkSrc 3551*53ee8cc1Swenshuai.xi /// 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. 3552*53ee8cc1Swenshuai.xi /// bSet \b IN: TURE: set, FALSE: get 3553*53ee8cc1Swenshuai.xi /// @note This API is for TSO 2.0 HW architecture. 3554*53ee8cc1Swenshuai.xi /// @note Serval TSO input will be merge to be one TSO output. This API is for configuring TSO output path. 3555*53ee8cc1Swenshuai.xi /// @note TSO output clock source selection, please also refer to MApi_DMX_TSO_SetOutClk API. 3556*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3557*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Flow_OutputCfg(DMX_TSO_OutputCfg* pstOutputCfg); 3558*53ee8cc1Swenshuai.xi 3559*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3560*53ee8cc1Swenshuai.xi ///TSO configuration 3561*53ee8cc1Swenshuai.xi /// @param pstTsoCfg \b IN/OUT: Pointer of storing TSO configure data 3562*53ee8cc1Swenshuai.xi /// 3563*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3564*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3565*53ee8cc1Swenshuai.xi /// 3566*53ee8cc1Swenshuai.xi /// @note This API is for TSO2 HW architecture 3567*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3568*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Configure(DMX_TSO_Cfg* pstTsoCfg); 3569*53ee8cc1Swenshuai.xi 3570*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3571*53ee8cc1Swenshuai.xi /// TSO (TS output) input pid filter open. 3572*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3573*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3574*53ee8cc1Swenshuai.xi /// @param eTSOInSrc \b IN: TSO PID filter source 3575*53ee8cc1Swenshuai.xi /// @param u16Pid \b IN: PID value of TSO PID filter 3576*53ee8cc1Swenshuai.xi /// @param pu16DmxId \b IN: Pointer to store PID filter ID 3577*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3578*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3579*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3580*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Pid_Open(MS_U8 u8Eng, DMX_TSIF eTSOInSrc, MS_U16 u16Pid, MS_U16* pu16DmxId); 3581*53ee8cc1Swenshuai.xi 3582*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3583*53ee8cc1Swenshuai.xi /// TSO (TS output) input pid filter close. 3584*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3585*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3586*53ee8cc1Swenshuai.xi /// @param u16DmxId \b IN: TSO PID filter source 3587*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3588*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3589*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3590*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Pid_Close(MS_U8 u8Eng, MS_U16 u16DmxId); 3591*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3592*53ee8cc1Swenshuai.xi /// Get TSO file-in read address. 3593*53ee8cc1Swenshuai.xi /// @ingroup TSO_General 3594*53ee8cc1Swenshuai.xi /// @param u8Eng \b IN: TSO engine ID 3595*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: pointer to store read address 3596*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3597*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3598*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3599*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_TSO_Filein_GetReadAddr(MS_U8 u8Eng, MS_PHY* pphyRead); 3600*53ee8cc1Swenshuai.xi //---------------------------------------------------------- 3601*53ee8cc1Swenshuai.xi 3602*53ee8cc1Swenshuai.xi 3603*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3604*53ee8cc1Swenshuai.xi /// Get TSP firmware version. 3605*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3606*53ee8cc1Swenshuai.xi /// @param u32FWVer \b OUT: TSP firmware version infomation 3607*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3608*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3609*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3610*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_TSP_Get_FW_VER(MS_U32* u32FWVer); 3611*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3612*53ee8cc1Swenshuai.xi /// Set TSP Debug Level. 3613*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3614*53ee8cc1Swenshuai.xi /// @param level \b IN: debug level. 3615*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3616*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3617*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3618*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetDbgLevel(DMX_DBGMSG_LEVEL level); 3619*53ee8cc1Swenshuai.xi 3620*53ee8cc1Swenshuai.xi //----------------- 3621*53ee8cc1Swenshuai.xi // TSP_Debug 3622*53ee8cc1Swenshuai.xi //----------------- 3623*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3624*53ee8cc1Swenshuai.xi /// Get interrupt count. 3625*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3626*53ee8cc1Swenshuai.xi /// @param pu32Count \b OUT: interrupt count 3627*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3628*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3629*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3630*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_Intr_Count(MS_U32* pu32Count); 3631*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3632*53ee8cc1Swenshuai.xi /// Get TSP driver library information 3633*53ee8cc1Swenshuai.xi /// @ingroup TSP_General 3634*53ee8cc1Swenshuai.xi /// @param ppVersion \b OUT: TSP library version infomation 3635*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3636*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3637*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 3638*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetLibVer(const MSIF_Version **ppVersion); 3639*53ee8cc1Swenshuai.xi 3640*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3641*53ee8cc1Swenshuai.xi /// Get the register value of HW debug port . 3642*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3643*53ee8cc1Swenshuai.xi /// @param u32DbgSel \b IN: Set which HW debug info you want to get. (ex: 0x4F, check TSIF0 data info) 3644*53ee8cc1Swenshuai.xi /// @param u32DbgInfo \b OUT: pointer to store the debug port value 3645*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3646*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3647*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3648*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_GetDbgPortInfo(MS_U32 u32DbgSel,MS_U32* u32DbgInfo); 3649*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3650*53ee8cc1Swenshuai.xi /// Set memory buffer information for TSP AEON to print debug message. 3651*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3652*53ee8cc1Swenshuai.xi /// @param phyAddr \b IN: physical address of buffer 3653*53ee8cc1Swenshuai.xi /// @param u32Size \b IN: size of buffer 3654*53ee8cc1Swenshuai.xi /// @param u32DbgWord \b IN: control word to filter debug message 3655*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3656*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3657*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3658*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_SetFwDbgParam(MS_PHY phyAddr, MS_U32 u32Size, MS_U32 u32DbgWord); 3659*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3660*53ee8cc1Swenshuai.xi /// Get dis-continue count by ts source and specific FIFO. 3661*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3662*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related tsif packet count. 3663*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: dis-continue packet count 3664*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3665*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3666*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3667*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_DisContiCnt(DMX_DisContiCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3668*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3669*53ee8cc1Swenshuai.xi /// Get drop packet count by ts source and specific FIFO. 3670*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3671*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related source packet count. 3672*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: drop packet count 3673*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3674*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3675*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3676*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_DropPktCnt(DMX_DropPktCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3677*53ee8cc1Swenshuai.xi 3678*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3679*53ee8cc1Swenshuai.xi ///Get locked packet count by ts source and specific FIFO. 3680*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3681*53ee8cc1Swenshuai.xi /// @param pDmxInfo \b IN: set control parameter to get related tsif packet count. 3682*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: Lock packet count 3683*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3684*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3685*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3686*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_LockPktCnt(DMX_LockPktCnt_info* pDmxInfo, MS_U32* pu32Cnt); 3687*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3688*53ee8cc1Swenshuai.xi ///Get dis-continue count by ts source and specific FIFO. 3689*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3690*53ee8cc1Swenshuai.xi /// @param DmxInfo \b IN: set control parameter to get related source packet count. 3691*53ee8cc1Swenshuai.xi /// @param pu32Cnt \b OUT: AV packet count 3692*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3693*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3694*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3695*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_AVPktCnt(DMX_AVPktCnt_info* DmxInfo, MS_U32* pu32Cnt); 3696*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3697*53ee8cc1Swenshuai.xi /// Get section TEI packet count by ts source. 3698*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3699*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN: TS source 3700*53ee8cc1Swenshuai.xi /// @param pu32PktCnt \b OUT: TEI packet count 3701*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3702*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3703*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3704*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc, MS_U32* pu32PktCnt); 3705*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3706*53ee8cc1Swenshuai.xi /// Reset section TEI packet count by DMX filter index. 3707*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3708*53ee8cc1Swenshuai.xi /// @param FltSrc \b IN: TS source 3709*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3710*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3711*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3712*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Reset_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc); 3713*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3714*53ee8cc1Swenshuai.xi /// Get section dis-continue packet count. 3715*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3716*53ee8cc1Swenshuai.xi /// @param u32DmxID \b IN: DMX filter index 3717*53ee8cc1Swenshuai.xi /// @param pu32PktCnt \b OUT: Dis-continue packet count 3718*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3719*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3720*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3721*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Get_SecDisCont_PktCount(MS_U32 u32DmxID, MS_U32* pu32PktCnt); 3722*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3723*53ee8cc1Swenshuai.xi /// Reset section dis-continue packet count. 3724*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3725*53ee8cc1Swenshuai.xi /// @param u32DmxID \b IN: DMX filter Id 3726*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3727*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3728*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3729*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_Reset_SecDisCont_PktCount(MS_U32 u32DmxID); 3730*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3731*53ee8cc1Swenshuai.xi 3732*53ee8cc1Swenshuai.xi //----------------- 3733*53ee8cc1Swenshuai.xi // TSP_FIQ 3734*53ee8cc1Swenshuai.xi //----------------- 3735*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3736*53ee8cc1Swenshuai.xi /// Enable/Disable section filter rush pass. 3737*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3738*53ee8cc1Swenshuai.xi /// @param u32DmxId \b IN: DMX filter Id 3739*53ee8cc1Swenshuai.xi /// @param u8Enable \b IN: TRUE: enable, FALSE: disable 3740*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3741*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3742*53ee8cc1Swenshuai.xi /// @note Now only TSP 2.0 & TSP 4.0 support it. 3743*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3744*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_SetFltRushPass(MS_U32 u32DmxId, MS_U8 u8Enable); 3745*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3746*53ee8cc1Swenshuai.xi /// Initialize Demux API for FIQ Enable. 3747*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3748*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3749*53ee8cc1Swenshuai.xi /// @param pFQInfo \b IN: Init FQ Setting 3750*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3751*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3752*53ee8cc1Swenshuai.xi /// @note if want to use FQ, please call this API after calling MApi_DMX_Init. (FQ does not support for all chip) 3753*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3754*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_Init(MS_U32 u32FQEng, DMX_FQ_Info* pFQInfo); 3755*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3756*53ee8cc1Swenshuai.xi /// Finalize Demux API for FIQ. 3757*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3758*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3759*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3760*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3761*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3762*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_Exit(MS_U32 u32FQEng); 3763*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3764*53ee8cc1Swenshuai.xi /// Enable FIQ rush function. 3765*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3766*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3767*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3768*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3769*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3770*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_RushEnable(MS_U32 u32FQEng); 3771*53ee8cc1Swenshuai.xi 3772*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3773*53ee8cc1Swenshuai.xi /// Select path to skip rush data. 3774*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3775*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3776*53ee8cc1Swenshuai.xi /// @param eSkipPath \b IN: Select path to skip rush data 3777*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3778*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3779*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3780*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_SkipRushData(MS_U32 u32FQEng, DMX_FQ_SkipPath eSkipPath); 3781*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3782*53ee8cc1Swenshuai.xi 3783*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3784*53ee8cc1Swenshuai.xi /// Configure FIQ 3785*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3786*53ee8cc1Swenshuai.xi /// @param pstFqCfg \b IN/OUT: Pointer of storing configure data 3787*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3788*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3789*53ee8cc1Swenshuai.xi /// @note 3790*53ee8cc1Swenshuai.xi /// E_DMX_FQ_CFG_SEL_SRCMUX --> Set eFqSrcSel to select FQ source of TS path 3791*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3792*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_Configure(DMX_FQ_Cfg* pstFqCfg); 3793*53ee8cc1Swenshuai.xi 3794*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3795*53ee8cc1Swenshuai.xi /// Set rush start address in the FIQ buffer. 3796*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3797*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN: FQ engine id 3798*53ee8cc1Swenshuai.xi /// @param phyRushAddr \b IN: Rush start address in the FIQ buffer 3799*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3800*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3801*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3802*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_SetRushAddr(MS_U32 u32FQEng, MS_PHY phyRushAddr); 3803*53ee8cc1Swenshuai.xi 3804*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3805*53ee8cc1Swenshuai.xi /// Get FIQ File-in read pointer 3806*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3807*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN : FQ engine id 3808*53ee8cc1Swenshuai.xi /// @param pphyRead \b OUT: The pointer to store the obtained FIQ File-in read pointer 3809*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3810*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3811*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3812*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_ReadGet(MS_U32 u32FQEng, MS_PHY* pphyRead); 3813*53ee8cc1Swenshuai.xi 3814*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3815*53ee8cc1Swenshuai.xi /// Get FIQ PVR write pointer 3816*53ee8cc1Swenshuai.xi /// @ingroup TSP_FIQ 3817*53ee8cc1Swenshuai.xi /// @param u32FQEng \b IN : FQ engine id 3818*53ee8cc1Swenshuai.xi /// @param pphyWrite \b OUT: The pointer to store the obtained FIQ PVR write pointer 3819*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3820*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3821*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3822*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_FQ_WriteGet(MS_U32 u32FQEng, MS_PHY* pphyWrite); 3823*53ee8cc1Swenshuai.xi 3824*53ee8cc1Swenshuai.xi //----------------- 3825*53ee8cc1Swenshuai.xi // TSP_Merge 3826*53ee8cc1Swenshuai.xi //----------------- 3827*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3828*53ee8cc1Swenshuai.xi /// Set or Get merge stream source id and sync byte 3829*53ee8cc1Swenshuai.xi /// @ingroup TSP_Merge 3830*53ee8cc1Swenshuai.xi /// @param eIf \b IN: Eunm value of DMX TSIF selection 3831*53ee8cc1Swenshuai.xi /// @param u8StrId \b IN: Stream index 3832*53ee8cc1Swenshuai.xi /// @param pu8SyncByte \b IN: Pointer to sync bytearray of merege streams 3833*53ee8cc1Swenshuai.xi /// @param bSet \b IN: TRUE to setting data or FALSE to getting table 3834*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3835*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3836*53ee8cc1Swenshuai.xi /// @note: Currently, maxmum number is 8, and don't call this API when stream processing is started 3837*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3838*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_MStr_SyncByte(DMX_TSIF eIf, MS_U8 u8StrId, MS_U8* pu8SyncByte, MS_BOOL bSet); 3839*53ee8cc1Swenshuai.xi //----------------------------------------------------- 3840*53ee8cc1Swenshuai.xi 3841*53ee8cc1Swenshuai.xi //----------------- 3842*53ee8cc1Swenshuai.xi // Policy Manager 3843*53ee8cc1Swenshuai.xi //----------------- 3844*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3845*53ee8cc1Swenshuai.xi /// Get pipe id 3846*53ee8cc1Swenshuai.xi /// @param eGroup \b IN: Pipe Group 3847*53ee8cc1Swenshuai.xi /// @param EngId \b IN: Engine id 3848*53ee8cc1Swenshuai.xi /// @param pu32PipeId \b OUT: Pointer to store pipe id 3849*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3850*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3851*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3852*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS SYMBOL_WEAK MApi_DMX_Get_PipeId(DMX_PIPEID_GROUP eGroup, DMX_GENERAL_ENGID EngId, MS_U32 *pu32PipeId); 3853*53ee8cc1Swenshuai.xi 3854*53ee8cc1Swenshuai.xi //--- Common Interface for TSP config and Api commands ------------// 3855*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3856*53ee8cc1Swenshuai.xi /// General function for set cmd or get infomation. 3857*53ee8cc1Swenshuai.xi /// @ingroup TSP_Debug 3858*53ee8cc1Swenshuai.xi /// @param u32Cmd \b IN: DMX filter Id 3859*53ee8cc1Swenshuai.xi /// @param u32Config \b IN: Config 0 (define by case) 3860*53ee8cc1Swenshuai.xi /// @param u32DataNum \b IN: Config 0 (define by case) 3861*53ee8cc1Swenshuai.xi /// @param pData \b OUT: Output data 3862*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_OK - Success 3863*53ee8cc1Swenshuai.xi /// @return DMX_FILTER_STATUS_ERROR - Failure 3864*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 3865*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config, MS_U32 u32DataNum, void *pData); 3866*53ee8cc1Swenshuai.xi 3867*53ee8cc1Swenshuai.xi //u32Cmd of MApi_DMX_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config, MS_U32 u32DataNum, void *pData); 3868*53ee8cc1Swenshuai.xi #define DMX_CMD_RUN_DISABLE_SEC_CC_CHECK 0x00000001 //[u32Config]: 1-> Disable cc check on fw; 0-> Enable cc check on fw; [u32DataNum,*pData] do not use 3869*53ee8cc1Swenshuai.xi #define DMX_CMD_SET_PESCPY_CONT_MODE 0x00000010 //[u32Config]: 0-> Disable; 1 -> Enable 3870*53ee8cc1Swenshuai.xi #define DMX_CMD_PESCPY_CONT_MODE_DISABLE 0 3871*53ee8cc1Swenshuai.xi #define DMX_CMD_PESCPY_CONT_MODE_ENABLE 1 3872*53ee8cc1Swenshuai.xi #define DMX_CMD_ENABLE_INIT_REF_CNT 0x00000100 //[u32Config]: 1-> Enable DMX init reference counter; 0-> Disable DMX init reference counter 3873*53ee8cc1Swenshuai.xi #define DMX_CMD_STC_ADJUST_UNIT 0x00000020 //[u32Config]: data 3874*53ee8cc1Swenshuai.xi #define DMX_CMD_PVR_PES_MODE 0x00000030 //u32Config: PVR EngineID, u32DataNum=1, *pData = 1 is enable, pData = 0 is disable 3875*53ee8cc1Swenshuai.xi 3876*53ee8cc1Swenshuai.xi #if 0 3877*53ee8cc1Swenshuai.xi DMX_FILTER_STATUS MApi_DMX_ResetFileinTimestamp(void) 3878*53ee8cc1Swenshuai.xi #endif 3879*53ee8cc1Swenshuai.xi 3880*53ee8cc1Swenshuai.xi 3881*53ee8cc1Swenshuai.xi #ifdef __cplusplus 3882*53ee8cc1Swenshuai.xi } 3883*53ee8cc1Swenshuai.xi #endif 3884*53ee8cc1Swenshuai.xi 3885*53ee8cc1Swenshuai.xi #endif // #ifndef __API_DMX_H__ 3886