Section Filter Manasger (SFM): filters. More...
#include <string.h>#include "sfm_main.h"#include "sfm_cache.h"#include "sfm_filter.h"#include "cldsmcc.h"Data Structures | |
| struct | s_BitCnt |
| struct | s_Table |
| struct | s_DsmResource |
| struct | s_PidTable |
| struct | s_DmxSecFilter |
| struct | s_DmxPidFilter |
Typedefs | |
| typedef struct s_BitCnt | S_BitCnt |
| typedef struct s_Table | S_Table |
| typedef struct s_DsmResource | S_DsmResource |
| typedef struct s_PidTable | S_PidTable |
| typedef struct s_DmxSecFilter | S_DmxSecFilter |
| typedef struct s_DmxPidFilter | S_DmxPidFilter |
Functions | |
| void | ClearTexIdAccounts (S_DsmResource **ppDsmRes) |
| BOOLEAN | SFMFilterCreateResources (H_SfmInstance sfm) |
| Create Filter resources for Section Filter Manager instance. More... | |
| void | SFMFilterInitCaching (H_SfmInstance sfm) |
| Initialise caching references. More... | |
| void | SFMFilterDestroyResources (H_SfmInstance sfm) |
| Destroy Filter resources for Section Filter Manager instance. More... | |
| void * | SFM_DsmccFilterAdd (H_SfmInstance sfm, pclDsmSFilter_t pFilter, clDsmSFRef_t dsmSfRef) |
| Add DSM-CC section filter. Called by DSM-CC component. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection. It assumes that this function is entered on the same task as SFM_DelectionFilter. More... | |
| void | SFM_DsmccFilterDelete (H_SfmInstance sfm, void *filterHandle, clDsmSFRef_t dsmSfRef) |
| Delete DSM-CC section filter. Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection. More... | |
| void | SFM_FilterUpdate (H_SfmInstance sfm, H_DmxPidFilter pPF) |
| Update SFM PID filter to configure HW for latest requirements. More... | |
| void | SFM_DsmccFilterPriorityChange (H_SfmInstance sfm, void *filterHandle, clDsmSFRef_t dsmSfRef, clDsmSFPriority_t priority) |
| Change DSM-CC section filter priority Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection. This function should be in same tthread as add and remove. More... | |
| E_SFM_STATUS | SFMFilterRequiresSection (H_SfmInstance sfm, PIDFILT pfid, U16BIT teid, U8BIT tid, U8BIT vers, void **phBuffer) |
| This function performs minimal checking of section header data to find out whether SFM requires this section. Number of header bytes required is SECTION_HEADER_LENGTH. It assumes CRC has been checked and is passing valid DSM-CC sections So the first byte of data must be table id 0x3B, 0x3C or 0x3D. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_AddSectionFilter and SFM_DelSectionFilter. It does NOT call any DSM-CC core functions. More... | |
| void | SFMFilterProcessSection (H_SfmInstance sfm, U8BIT *pSection, H_DsmResource pDsmRes) |
| Get DSM-CC filter request and pass section buffer to DSM-CC with it's filter handle This should only be called after calling SFM_FilterRequiresSection with it returning SFM_UPDATE_LOW or SFM_UPDATE_HIGH. More... | |
| BOOLEAN | SFMFilterValidHandle (H_SfmInstance sfm, void *hBuffer) |
| H_DsmResource | SFMFilterDsmResource (H_SfmInstance sfm, U16BIT dsmref) |
Section Filter Manasger (SFM): filters.
| void* SFM_DsmccFilterAdd | ( | H_SfmInstance | sfm, |
| pclDsmSFilter_t | pFilter, | ||
| clDsmSFRef_t | dsmSfRef | ||
| ) |
Add DSM-CC section filter. Called by DSM-CC component. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection. It assumes that this function is entered on the same task as SFM_DelectionFilter.
Add DSM-CC section filter. Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection.
| H_SfmInstance | sfm SFM instance handle. |
| pclDsmSFilter_t | pFilter Pointer to DSM-CC filter details |
| clDsmSFRef_t | dsmSfRef DSM-CC SF reference handle |
| void SFM_DsmccFilterDelete | ( | H_SfmInstance | sfm, |
| void * | filterHandle, | ||
| clDsmSFRef_t | dsmSfRef | ||
| ) |
Delete DSM-CC section filter. Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection.
| H_SfmInstance | sfm SFM instance handle. |
| void* | filterHandle SFM Filter handle |
| clDsmSFRef_t | dsmSfRef DSM-CC reference handle |
| void SFM_DsmccFilterPriorityChange | ( | H_SfmInstance | sfm, |
| void * | filterHandle, | ||
| clDsmSFRef_t | dsmSfRef, | ||
| clDsmSFPriority_t | priority | ||
| ) |
Change DSM-CC section filter priority Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection. This function should be in same tthread as add and remove.
Change DSM-CC section filter priority Called by DSM-CC component, and given in clDsmSysCreate setup. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_RequireSection.
| H_SfmInstance | sfm SFM instance handle. |
| void* | filterHandle SFM Filter handle |
| clDsmSFRef_t | dsmSfRef DSM-CC SF reference handle |
| clDsmSFPriority_t | priority New filter priority |
| void SFM_FilterUpdate | ( | H_SfmInstance | sfm, |
| H_DmxPidFilter | pPF | ||
| ) |
Update SFM PID filter to configure HW for latest requirements.
| H_SfmInstance | sfm SFM instance handle. |
| H_DmxPidFilter | pPF Handle to SFM pid filter |
| BOOLEAN SFMFilterCreateResources | ( | H_SfmInstance | sfm | ) |
Create Filter resources for Section Filter Manager instance.
| H_SfmInstance | sfm SFM instance handle. |
| void SFMFilterDestroyResources | ( | H_SfmInstance | sfm | ) |
Destroy Filter resources for Section Filter Manager instance.
| H_SfmInstance | sfm SFM instance handle. |
| void SFMFilterInitCaching | ( | H_SfmInstance | sfm | ) |
Initialise caching references.
| H_SfmInstance | sfm SFM instance handle. |
| void SFMFilterProcessSection | ( | H_SfmInstance | sfm, |
| U8BIT * | pSection, | ||
| H_DsmResource | pDsmRes | ||
| ) |
Get DSM-CC filter request and pass section buffer to DSM-CC with it's filter handle This should only be called after calling SFM_FilterRequiresSection with it returning SFM_UPDATE_LOW or SFM_UPDATE_HIGH.
| H_SfmInstance | sfm SFM instance handle. |
| U8BIT* | pSection Pointer to whole section data buffer |
| void* | hBuffer SFM section handle returned by SFM_FilterRequiresSection |
| E_SFM_STATUS SFMFilterRequiresSection | ( | H_SfmInstance | sfm, |
| PIDFILT | pfid, | ||
| U16BIT | teid, | ||
| U8BIT | tid, | ||
| U8BIT | vers, | ||
| void ** | phBuffer | ||
| ) |
This function performs minimal checking of section header data to find out whether SFM requires this section. Number of header bytes required is SECTION_HEADER_LENGTH. It assumes CRC has been checked and is passing valid DSM-CC sections So the first byte of data must be table id 0x3B, 0x3C or 0x3D. Note for multi-tasking: this function uses mutex locking to protect shared data with SFM_AddSectionFilter and SFM_DelSectionFilter. It does NOT call any DSM-CC core functions.
| H_SfmInstance | sfm SFM instance handle. |
| PIDFILT | pfid PID filter with incoming section |
| U8BIT* | pHeader Pointer to section header (min 8 bytes) |
| void** | phBuffer Pointer to SFM section buffer handle |
1.8.6