/****************************************************************************** *_Copyright (c) 2009 Digital Stream Technology Inc. All Rights Reserved. * * Module: dstdddmx.c * * Description * * @author * @version $Revision: 1.1 $ * ******************************************************************************/ #include #include #include #include #include #include "dsthalcommon.h" #include "dsthalcfg.h" #include "dstdddmx.h" #include "dstdddtv.h" #include "dstddsys.h" /* * Device Driver includes. */ #include "pd_dmx.h" #ifdef DMALLOC #include #endif /****************************************************************************** * Global variable declaration ******************************************************************************/ int gddDmxDbgLvl = 2; /****************************************************************************** * Imported variable declaration ******************************************************************************/ /****************************************************************************** * Imported function declaration ******************************************************************************/ /****************************************************************************** * Local definitions ******************************************************************************/ /****************************************************************************** * Local typedefs ******************************************************************************/ /****************************************************************************** * Local variables declaration ******************************************************************************/ static int g_bAudioScrambled = 0; // ScrambleÀ̸é, 1¾¿ Áõ°¡. static int g_bVideoScrambled = 0; static int g_ScrVPid=-1, g_ScrAPid=-1; /****************************************************************************** * Local function prototypes ******************************************************************************/ #if 0 ___Common_Functions___() #endif DHL_RESULT DD_DMX_Init(void) { DHL_RESULT dhlResult = DHL_OK; int retVal = PD_DMX_SUCCESS; retVal = PD_DMX_SetDemuxFile( "/Stream/CC_CAMP_1SEG_FULLSEG_27122007.trp", DS_TRUE ); SysASSERT( PD_DMX_OK(retVal) ); retVal = PD_DMX_OpenDemux(); SysASSERT( PD_DMX_OK(retVal) ); if ( !PD_DMX_OK(retVal) ) dhlResult = DHL_FAIL; return dhlResult; } DHL_RESULT DD_DMX_Start(void) { DHL_RESULT dhlResult = DHL_OK; int retVal = PD_DMX_SUCCESS; retVal = PD_DMX_StartDemux(); SysASSERT( PD_DMX_OK(retVal) ); if ( !PD_DMX_OK(retVal) ) dhlResult = DHL_FAIL; return dhlResult; } DHL_RESULT DD_DMX_Stop(void) { DHL_RESULT dhlResult = DHL_OK; int retVal = PD_DMX_SUCCESS; retVal = PD_DMX_StopDemux(); SysASSERT( PD_DMX_OK(retVal) ); if ( !PD_DMX_OK(retVal) ) dhlResult = DHL_FAIL; return dhlResult; } DHL_RESULT DD_DMX_Close(void) { DHL_RESULT dhlResult = DHL_OK; int retVal = PD_DMX_SUCCESS; retVal = PD_DMX_CloseDemux(); SysASSERT( PD_DMX_OK(retVal) ); if ( !PD_DMX_OK(retVal) ) dhlResult = DHL_FAIL; return dhlResult; } DHL_RESULT DD_DMX_StartScrambleCheck(void) { DHL_RESULT dhlResult = DHL_OK; g_bAudioScrambled = 0; g_bVideoScrambled = 0; return dhlResult; } DS_BOOL DD_DMX_IsScrambled(void) { if (g_bAudioScrambled>=4) return _TRUE_; if (g_bVideoScrambled>=4) return _TRUE_; return _FALSE_; } DHL_RESULT DD_DMX_SetPID4DetectScramble( DS_U16 vPid, DS_U16 aPid ) { DHL_RESULT dhlResult = DHL_OK; DHL_ASSERT( DD_DMX_StartScrambleCheck(), dhlResult ); // // Call the API to start monitoring PID. // g_ScrVPid = vPid; g_ScrAPid = aPid; return dhlResult; } DHL_RESULT DD_DMX_ResetPID4DetectScramble(void) { DHL_RESULT dhlResult = DHL_OK; g_ScrVPid = -1; g_ScrAPid = -1; return dhlResult; } DHL_RESULT DD_DMX_SetPID4DetectScrambleEx( DS_U16 vPid ) { DHL_RESULT dhlResult = DHL_OK; DHL_ASSERT( DD_DMX_StartScrambleCheck(), dhlResult ); // // Call the API to start monitoring PID. // g_ScrVPid = vPid; return dhlResult; } DHL_RESULT DD_DMX_ResetPID4DetectScrambleEx(void) { DHL_RESULT dhlResult = DHL_OK; // // If scramble detection is started, then call the API to reset scramble detection. // if ( g_ScrVPid != -1 ) { g_ScrVPid = -1; } return dhlResult; }