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

📄 filter.h

📁 ST5100 driver files for ST chipset
💻 H
字号:
/*****************************************************************************

File Name: filter.h

Description: Private Section filter

COPYRIGHT (C) 2002 STMicroelectronics

*****************************************************************************/

#ifndef __FILTER_H
#define __FILTER_H

/* Includes --------------------------------------------------------------- */

#include "stddefs.h"    /* STAPI includes */
#include "stpti.h"
#include "stvid.h"
#include "lists.h"

/* defines ----------------------------------------------------------------- */

typedef enum
{
    SECTION,
    APG,
    MPG,
    NUM_FILTERS
}FilterType_t;


#define TS_SIZE      188
#define DSS_SIZE     127
#define BUFFER_SIZE  (DSS_SIZE * TS_SIZE)
#define FILTER_SIZE  16

/* PSI fields within section filter */
#define TABLE_ID(_f_)          (_f_[0])
#define PROGRAM_NUM_1(_f_)     (_f_[1])
#define PROGRAM_NUM_2(_f_)     (_f_[2])
#define VERSION_NUM(_f_)       (_f_[3])
#define SECTION_NUM(_f_)       (_f_[4])

/* DSS APG fields within apg filter */
#define NETWORK_ID_1(_f_)      (_f_[0])
#define NETWORK_ID_2(_f_)      (_f_[1])
#define CAROUSEL_ID(_f_)       (_f_[2])

/* DSS MPG fields */
#define MPG_SYNCH_0(_f_)       (_f_[0])
#define MPG_SYNCH_1(_f_)       (_f_[1])
#define MPG_SYNCH_2(_f_)       (_f_[2])
#define MPG_SYNCH_3(_f_)       (_f_[3])

/* Data extraction macros */
#define EXTRACT_32(_X)     ((*(_X+0) << 24) | (*(_X+1) << 16) | (*(_X+2) <<  8) | (*(_X+3) <<  0))
#define EXTRACT_24(_X)     ((*(_X+0) << 16) | (*(_X+1) <<  8) | (*(_X+2) <<  0))
#define EXTRACT_16(_X)     ((*(_X+0) <<  8) | (*(_X+1) <<  0))
#define EXTRACT_8(_X)      (*(_X))
#define EXTRACT_4T(_X)     ((*(_X) >> 4) & 0xf)
#define EXTRACT_4B(_X)     (*(_X) & 0xf)

/* structures ------------------------------------------------------------ */

typedef struct Filter_s
{
    STPTI_Slot_t       SlotHandle;
    STPTI_Buffer_t     BufferHandle;
    STPTI_Signal_t     SignalHandle;
    STPTI_Filter_t     Filter;
    STPTI_FilterData_t FilterData;
    U8                 FilterBytes[FILTER_SIZE];
    U8                 FilterMasks[FILTER_SIZE];
    U8                 Buffer[BUFFER_SIZE];
} Filter_t;


/* Global ----------------------------------------------------------------- */

extern Filter_t Filter[NUM_FILTERS];
extern U16 NumPrograms, NumChannels;

/* Prototypes ------------------------------------------------------------- */

extern ST_ErrorCode_t FilterInit( void );
/*extern ST_ErrorCode_t FilterSetup( Filter_t *Filter_p );*/
extern ST_ErrorCode_t FilterStart( Filter_t *Filter_p, STPTI_Pid_t Pid, U8 TableId );
extern ST_ErrorCode_t SDTDump(void);
extern ST_ErrorCode_t PMTDump(S32 Pid , LISTS_Channel_t *Channel_p);
extern ST_ErrorCode_t PATDump(void);
extern ST_ErrorCode_t NITDump(S32 Pid);
extern ST_ErrorCode_t EITDump(S32 Pgm);
extern ST_ErrorCode_t Filter_Run(STVID_BroadcastProfile_t VID_BcastProfile);

extern void APG_FilterCreate(Filter_t *Filter_p, U32 Network, U32 Carousel);
extern void DVB_FilterCreate(Filter_t *Filter_p, U32 TableId, U32 Program, U32 Version, U32 Section);

#endif /* __FILTER_H */

/* EOF --------------------------------------------------------------------- */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -