![]() |
DVBCore
22.11.0
Open Source DVB Engine
|
STB layer SI filter handling. More...
#include <stdio.h>
#include <string.h>
#include <techtype.h>
#include <dbgfuncs.h>
#include "stberc.h"
#include "stbhwdmx.h"
#include "stbhwos.h"
#include "stbllist.h"
#include "stbheap.h"
#include "stbdpc.h"
#include "stbsic.h"
#include "stbsiflt.h"
#include "stbsipmt.h"
#include "ca_glue.h"
Classes | |
struct | table_list_entry |
struct | filter_status |
struct | cntrl_task_msg |
Typedefs | |
typedef struct table_list_entry | TABLE_LIST_ENTRY |
typedef struct filter_status | FILTER_STATUS |
typedef struct cntrl_task_msg | CNTRL_TASK_MSG |
Functions | |
void | STB_SITerrInitialise (void) |
Initialises STB layer SI engine - terrestrial version. | |
void | STB_SITerrSendEvent (U8BIT path, U32BIT events) |
Sends an event to STB layer SI Terrestrial engine. More... | |
E_STB_SI_STATUS | STB_SITerrGetStatus (U8BIT path) |
Reads the SI status. More... | |
void | STB_SIRegisterPmtObserver (F_PmtObserver func_ptr) |
Registers a function to be called when the PMT changes. More... | |
void | STB_SIUnregisterPmtObserver (F_PmtObserver func_ptr) |
Registers a function to be called when the PMT changes. More... | |
F_AppSiEventHandler | STB_SIRegisterAppSiEventHandler (void(*func_ptr)(U8BIT, E_APP_SI_EVENT_TYPE)) |
Registers a function to be called to handle SI events. More... | |
void * | STB_SIRequestTable (U8BIT path, U16BIT pid, U8BIT tid_match, U8BIT tid_mask, E_SI_TABLE_FORMAT_TYPE format, U16BIT expected_tables, U16BIT xtid_match, U16BIT xtid_mask, E_SI_REQUEST_TYPE req_type, U16BIT buff_size, BOOLEAN crc, BOOLEAN low_priority, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param) |
Sets up filter for SI table. More... | |
void | STB_SICancelTableRequest (void *filter_handle) |
Stops filtering for SI table. More... | |
void | STB_SIModifyTableRequest (void *filter_handle, U8BIT tid_match, U8BIT tid_mask, U16BIT xtid_match, U16BIT xtid_mask, U16BIT expected_tables) |
modifies the section filtering on an existing filter More... | |
void | STB_SIRestartTableRequest (void *filter_handle) |
restarts the section filtering on an existing filter without changing and pid or match/mask filter settings More... | |
void | STB_SIReleaseTableRecord (SI_TABLE_RECORD *table_rec) |
Frees the memory used in a table record passed to the application. More... | |
void | STB_SISearchComplete (U8BIT path, BOOLEAN success, void *event_data, U32BIT data_size) |
Indicates SI search is complete. More... | |
void | STB_SIReportCurrentPmt (U16BIT service_id, SI_TABLE_RECORD *table_rec, BOOLEAN new_serv, BOOLEAN new_pmt_version) |
Reports current pmt has arrived so that it can be passed on to interested parties. More... | |
BOOLEAN | STB_SIReportCat (SI_TABLE_RECORD *table_rec) |
Reports the CAT has been received so it can be passed on to other modules. More... | |
BOOLEAN | STB_SIReportBat (SI_TABLE_RECORD *table_rec) |
Reports the BAT has been received so it can be passed on to other modules. More... | |
BOOLEAN | STB_SIReportNit (SI_TABLE_RECORD *table_rec) |
Reports the NIT has been received so it can be passed on to other modules. More... | |
STB layer SI filter handling.
void STB_SICancelTableRequest | ( | void * | filter_handle | ) |
Stops filtering for SI table.
filter_handle |
void STB_SIModifyTableRequest | ( | void * | filter_handle, |
U8BIT | tid_match, | ||
U8BIT | tid_mask, | ||
U16BIT | xtid_match, | ||
U16BIT | xtid_mask, | ||
U16BIT | expected_tables | ||
) |
modifies the section filtering on an existing filter
filter_handle | - handle of the filter to be modified |
tid_match | - required match byte for the tid in the match/mask filter |
tid_mask | - required mask byte for the tid in the match/mask filter |
xtid_match | - required match byte for the extended tid in the match/mask filter |
xtid_mask | - required mask byte for the extended tid in the match/mask filter |
expected_tables | - number of tables expected. Used to decide when multi-table filter is complete |
F_AppSiEventHandler STB_SIRegisterAppSiEventHandler | ( | void(*)(U8BIT, E_APP_SI_EVENT_TYPE) | func_ptr | ) |
Registers a function to be called to handle SI events.
func_ptr | function being registered to handle SI events |
void STB_SIRegisterPmtObserver | ( | F_PmtObserver | func_ptr | ) |
Registers a function to be called when the PMT changes.
func_ptr | - pointer to the function to be called |
void STB_SIReleaseTableRecord | ( | SI_TABLE_RECORD * | table_rec | ) |
Frees the memory used in a table record passed to the application.
table_rec | - pointer to the table record to be freed |
BOOLEAN STB_SIReportBat | ( | SI_TABLE_RECORD * | table_rec | ) |
Reports the BAT has been received so it can be passed on to other modules.
table_rec | - table record containing the BAT section data |
BOOLEAN STB_SIReportCat | ( | SI_TABLE_RECORD * | table_rec | ) |
Reports the CAT has been received so it can be passed on to other modules.
table_rec | - table record containing the CAT section data |
void STB_SIReportCurrentPmt | ( | U16BIT | service_id, |
SI_TABLE_RECORD * | table_rec, | ||
BOOLEAN | new_serv, | ||
BOOLEAN | new_pmt_version | ||
) |
Reports current pmt has arrived so that it can be passed on to interested parties.
table_rec | - table record containing the pmt details |
new_serv | - if TRUE this pmt is for a new service, if FALSE it is a new version for the same service as last time. |
BOOLEAN STB_SIReportNit | ( | SI_TABLE_RECORD * | table_rec | ) |
Reports the NIT has been received so it can be passed on to other modules.
table_rec | - table record containing the NIT section data |
void* STB_SIRequestTable | ( | U8BIT | path, |
U16BIT | pid, | ||
U8BIT | tid_match, | ||
U8BIT | tid_mask, | ||
E_SI_TABLE_FORMAT_TYPE | format, | ||
U16BIT | expected_tables, | ||
U16BIT | xtid_match, | ||
U16BIT | xtid_mask, | ||
E_SI_REQUEST_TYPE | req_type, | ||
U16BIT | buff_size, | ||
BOOLEAN | crc, | ||
BOOLEAN | low_priority, | ||
void(*)(void *, U32BIT, SI_TABLE_RECORD *) | callback, | ||
U32BIT | ret_param | ||
) |
Sets up filter for SI table.
path | - the demux path to use |
pid | - required pid |
tid_match | - required match byte for the tid in the match/mask filter |
tid_mask | - required mask byte for the tid in the match/mask filter |
format | - format of the table i.e. single or multiple section |
expected_tables | - number of tables expected. Used to decide when multi-table filter is complete |
xtid_match | - required match byte for the extended tid in the match/mask filter |
xtid_mask | - required mask byte for the extended tid in the match/mask filter |
req_type | - ONE_SHOT or CONTINUOUS request |
buff_size | - size of buffer to be used |
crc | - TRUE if crc checking required, FALSE otherwise |
low_priority | - TRUE if request is lower priority |
callback | - pointer to callback function for return of table |
ret_param | - parameter to be returned to callback function |
void STB_SIRestartTableRequest | ( | void * | filter_handle | ) |
restarts the section filtering on an existing filter without changing and pid or match/mask filter settings
filter_handle | - handle of the filter to be modified |
void STB_SISearchComplete | ( | U8BIT | path, |
BOOLEAN | success, | ||
void * | event_data, | ||
U32BIT | data_size | ||
) |
Indicates SI search is complete.
path | - the path for which searching is complete |
E_STB_SI_STATUS STB_SITerrGetStatus | ( | U8BIT | path | ) |
Reads the SI status.
U8BIT | path - the ID of the decode path to use |
void STB_SITerrSendEvent | ( | U8BIT | path, |
U32BIT | events | ||
) |
Sends an event to STB layer SI Terrestrial engine.
U32BIT | events - event mask |
void STB_SIUnregisterPmtObserver | ( | F_PmtObserver | func_ptr | ) |
Registers a function to be called when the PMT changes.
func_ptr | - pointer to the function to be called |