⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prdmx.h

📁 MiniWinOuterSM MiniWinOuterSM
💻 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 + -