/* DMW_ChannelUtil.h */ #ifndef __DMW_CHANNELUTIL_H__ #define __DMW_CHANNELUTIL_H__ #include "DMW_ChannelDemux.h" #include "dmw_channel_priv.h" typedef struct PidInfo_t { UINT32 pcr, video, audio; tDHL_VideoCodingType videoType; tDHL_AudioCodingType audioType; BOOL bValid; } PidInfo; // DecidePidInfo flags: bit flags // #define DMC_DPIF_SILENT 0x01 // do not print any debug message STATUS doDmc_InitUserMsgQue(int nSizeOfMsg, int nMaxNumMsgInQue); void doDmc_DeleteUserMsgQue(void); STATUS doDmc_AddUserMsg(DmcMessage *pmsg); STATUS doDmc_GetUserMsg(DmcMessage *pmsg, UINT32 timeoutTick); BOOL doDmc_UserMsgExist(void); void doDmc_DeleteAllEventMsg(void); void doDmc_DeleteMsg(DmcMsgType msgtype); BOOL doDmc_CheckMsgExist(DmcMsgType msgtype); void doDmc_PrintUserMsgs(void); int doDmc_GetLastCancelId(void); void doDmc_SetLastCancelId(int id); int doDmc_GetNewCancelId(void); int doDmc_GetNextCancelId(int c, int step); int doDmc_GetNewMultipleCancelIds(UINT32 count); BOOL doDmc_IsCancelledMsg(int msgId); BOOL doDmc_RefreshCancelQue(void); BOOL doDmc_CheckCancel(void); STATUS Dmc_SendCancelCommand(int cancelId); STATUS Dmc_InitCancelQue(int nSizeQue); void Dmc_DeleteCancelQue(void); BOOL Dmc_CheckIfSamePat(MPEG_PAT *pat1, MPEG_PAT *pat2); BOOL Dmc_CheckIfSamePmt(MPEG_PMT *pmt1, MPEG_PMT *pmt2); int Dmc_CheckPmtDifference(MPEG_PMT *pmt1, MPEG_PMT *pmt2); UINT16 Dmc_GetMajorNumber(BOOL is_cvct, xvctChannelPtr_t ch); UINT16 Dmc_GetMinorNumber(BOOL is_cvct, xvctChannelPtr_t ch); const char *Dmc_PsipDescriptorString(UINT8 d); // cafrii 060710, VCT recovery, PID selection API Γί°‘ // STATUS Dmc_GetPmtByProgramNumber(MPEG_PAT **ppat, MPEG_PMT **ppmt, UINT16 program_number, BOOL (*fnCheck)(void)); STATUS Dmc_RecoverVctProgramNumber(xvctChannelPtr_t channel, MPEG_PAT *pat, // IN MPEG_PMT **pmtList, // INOUT int *pIndex, // OUT BOOL (*fnCheck)(void)); STATUS Dmc_GetPidInfoFromPMT(MPEG_PMT *pmt, PidInfo *pPidInfo); STATUS Dmc_GetPidInfoFromSLD(serviceLocationDescriptorPtr_t sld, PidInfo *pPidInfo); STATUS Dmc_GetInfoFromVctDesc(UINT8 *desc, int desc_len, PidInfo *pPidInfo, extendedChannelNameDescriptorPtr_t *pXcnd); // cafrii 060710 add STATUS Dmc_DecidePidInfo3(MPEG_PMT *pmt, xvctChannelPtr_t channel, PidInfo *pPidInfo, UINT32 flag); STATUS Dmc_DecidePidInfo2(MPEG_PMT *pmt, UINT8 *descs, int descs_len, PidInfo *pPidInfo, UINT32 flag); STATUS Dmc_DecidePidInfo(MPEG_PMT *pmt, serviceLocationDescriptorPtr_t sld, PidInfo *pPidInfo, UINT32 flag); BOOL Dmc_CheckIfFormatChanged(tDHL_VideoSeqHdr *newsh, tDHL_VideoSeqHdr *oldsh); int Dmc_WhichATSCFormat(tDHL_VideoSeqHdr *seq); void RegisterChannelUtilSymbols(void); #endif // __DMW_CHANNELUTIL_H__