📄 prdmx.h
字号:
/*
PrDmx.h
Copyright (C) 2004-2005 DVBStudio. All rights reserved.
*/
#ifndef _PrMPGFILT_H_
#define _PrMPGFILT_H_
#include "PrTypes.h"
#define DMX_MAX_CHANNEL 32
#define MAX_FILTER_PERCHANNEL 8
#define INVALID_PID 0xFFFF
#define INVALID_CHANNEL 0xFFFFFFFF
#define INVALID_FILTERID 0xFFFFFFFF
#define HAS_ATTATCH_FUNCTION 1
typedef UINT16 PRMpgPid;
typedef UINT32 PRMpgDmux;
#define DMX_START (0) /* Start channel */
#define DMX_STOP (1) /* Stop channel */
#define DMX_RESET (2) /* Reset channel */
typedef struct PDMpgFilt *PRMpgFilt;
typedef void (*DMXChannelCallBack)(UINT32 nChannel,void*Buffer,INT32 length);
typedef void (*FilterCallBack)(PRMpgFilt filt,void*userData,UINT8*section,UINT32 length);
typedef enum{
MPGFILT_TS=0x00,
MPGFILT_SECTION=0x01,
MPGFILT_PES=0x02
}DMXFiltType;
PR_BEGIN_EXTERN_C
PRStatus DMX_Init(void);
PRStatus DMX_Term(void);
//private functions only can be called by FilterXXX funtions
UINT32 DMX_ChannelCreate(UINT32 dmx,DMXFiltType type,UINT32 nFilterNumber,UINT32 nBufferSize);
INT32 DMX_ChannelControl(UINT32 nChannelId,UINT32 nAction);
INT32 DMX_ChannelSetPID(UINT32 nChannelId, UINT32 nPid);
INT32 DMX_ChannelDestroy(UINT32 nChannelId);
INT32 DMX_ChannelRegisterCallBack(UINT32 nChannelId,DMXChannelCallBack cbk);
INT32 DMX_AllocFilter(
#ifndef HAS_ATTATCH_FUNCTION
UINT32 channelID,
#endif
UINT32 filterDepth);
#ifdef HAS_ATTATCH_FUNCTION
INT32 DMX_AttatchFilter(UINT32 nChannelId,UINT32 nFilterId);
INT32 DMX_UnattatchFilter(UINT32 nChannelId,UINT32 nFilterId);
#endif
INT32 DMX_FreeFilter(UINT32 nFilterID);
INT32 DMX_FilterControl(UINT32 nFilterID,INT32 action);
INT32 DMX_SetFilterMask(UINT32 nFilterID,UINT8*mask,UINT8*value);
INT32 DMX_SetFilterCRCMode(UINT32 nFilterID,INT32 checkCrc);
////////////////////////////////////////////////////////////////////////////
//public functions called by application
INT32 DMXFiltInit(void);
PRMpgFilt FilterCreate(PRMpgDmux dmux,DMXFiltType type);
void FilterDestroy(PRMpgFilt filt);
PRStatus FilterSetNotify(PRMpgFilt filt,FilterCallBack cb,void*userData);
PRStatus FilterSetPID(PRMpgFilt filt,PRMpgPid pid);
PRStatus FilterSetMask(PRMpgFilt filt,const UINT8 *mask,const UINT8 *data,UINT32 size);
PRStatus FilterSetCrcMode(PRMpgFilt filt, INT32 checkCrc);
PRStatus FilterStart(PRMpgFilt filt);
PRStatus FilterStop(PRMpgFilt filt);
PR_END_EXTERN_C
#endif /* _PrMPGFILT_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -