📄 dvb_si.h
字号:
0x1012: Nine Network Australia
0x1013: Seven Network Limited
0x1014: Network TEN Limited
0x1015: WIN Television Pty Ltd
0x1016: Prime Television Limited
0x1017: Southern Cross Broadcasting (Australia) Limited
0x1018: Telecasters Australia Limited
0x1019: NBN Limited
0x101A: Imparja Television Australia
0x101B~0x101F: (Reserved for Australian broadcasters)
***********************************************/
ONID_AUSTRALIAN_MAX = 0x101F,
ONID_ANDORRA_DTT = 0x2014, // STA (Servei de Telecomucaciones d'Andorra)
ONID_AUSTRALIAN_DTT = 0x2024, // Australian Broadcasting Authority
ONID_AUSTRIAN_DTT = 0x2028, // ORS - Austrian Broadcasting Services
ONID_BELGIAN_DTT = 0x2038, // BIPT
ONID_TAIWANESE_DTT = 0x209E, // Directorate General of Telecommunications
ONID_CZECH_DTT = 0x20CB, // Czech Digital Group
ONID_DANISH_DTT = 0x20D0, // National Telecom Agency Denmark
ONID_ESTONIAN_DTT = 0x20E9, // Estonian National Communications Board
ONID_FINNISH_DTT = 0x20F6, // Telecommunicatoins Administratoin Centre, Finland
ONID_FRENCH_DTT = 0x20FA, // Conseil Superieur de l'AudioVisuel
ONID_GERMAN_DTT = 0x2114, // IRT on behalf of the German DVB-T broadcasts
ONID_IRISH_DTT = 0x2174, // Irish Telecommunications Regulator
ONID_ISRAELI_DTT = 0x2178, // BEZEQ (The Israel Telecommunication Corp Ltd .)
ONID_ITALIAN_DTT = 0x217C, //
ONID_ITALIAN_MEDIASET_DTT = 0x0110, // Mediaset the main Italian commercial television network with headquarters in Milan, Lombardy.
ONID_ITALIAN_EUTELSAT_1 = 0x013E, // Eutelsat Satellite System 13E (1)
ONID_ITALIAN_EUTELSAT_2 = 0x013F, // Eutelsat Satellite System 13E (2)
ONID_NETHERLANDS_DTT = 0x2210, // Nozema
ONID_NORWEGIAN_DTT = 0x2242, // Norwegian Regulator
ONID_SINGAPORE_DTT = 0x22BE, // Singapore Broadcasting Authority
ONID_SLOVENIA_DTT = 0x22C1, // APEK - Slovenia
ONID_SPANISH_DTT = 0x22D4, // Spanish Broadcasting Regulator
ONID_SWEDISH_DTT = 0x22F1, // Swedish Broadcasting Regulator
ONID_SWISS_DTT = 0x22F4, // OFCOM
ONID_UK_DTT = 0x233A // Independent Television Commission
};
/**
* Define parser status.
*/
typedef enum
{
EN_PARSER_NO_ERROR,
EN_PARSER_USER_ABORT,
EN_PARSER_TIMEOUT,
EN_PARSER_ERROR
}EN_PARSER_STATUS;
/**
* Define table type following DVB standard.
*/
typedef enum
{
EN_PAT,
EN_CAT,
EN_PMT,
EN_SDT,
EN_NIT,
EN_EIT,
EN_TDT
}EN_SI_TABLE;
#ifdef ENABLE_LCN_SUPPORT
/**
* Define LCN mode.
*/
typedef enum
{
LCN_NORDIG_MODE, /* This mode normally use in Europe */
LCN_AUSTRALIA_MODE, /* This mode only support in Australia */
GERMANY_MAPPING_MODE, /* This mode only support in Australia */
LCN_NULL_MODE /* This mode is not support LCN */
}EN_LCN_MODE;
#endif
typedef enum
{
MPG,
AC3
}PERFER_AUDIO_TYPE;
EN_PARSER_STATUS DVB_SI_ParserTP (bool8 b8AutoScanMode);
/*! \fn EN_PARSER_STATUS DVB_SI_ParserTP (bool8 b8AutoScanMode)
\brief start to parser a transponder.
\param b8AutoScanMode (Input) timeout in autoscan mode will be shorter.
\return EN_PARSER_STATUS see definition.
*/
u8 DVB_SI_GetTotalService(void);
/*! \fn u8 DVB_SI_GetTotalService(void)
\brief get totle service in the transponder.
\return number of service in the transponder.
*/
bool8 DVB_SI_GetServiceItem(u8 u8idx, EN_SERVICE_TYPE* penSrvType, DB_SrvDetail *pstService);
/*! \fn bool8 DVB_SI_GetServiceItem(u8 u8idx, EN_SERVICE_TYPE* penSrvType, DB_SrvDetail *pstService)
\brief get a service item in the transponder.
\param u8idx (Input) index of service item in the transponder.
\param penSrvType (Output) a point to service type of the item.
\param pstService (Output) a point to service item.
\return TRUE - got a service item.
\return FALSE - this service is not available.
*/
void DVB_SI_GetNetworkItem(DB_NetDetail *pstNetItem);
/* ! \fn void DVB_SI_GetNetworkItem(DB_NetDetail *pstNetItem)
\brief get a network item.
\param pstNetItem (Output) a point to network item.
*/
void DVB_SI_EndOfParserTP(void);
/*! \fn void DVB_SI_EndOfParserTP(void)
\brief free memory used in DVB_SI_ParserTP().
*/
void DVB_SI_SetPreferAudio(u8 u8Priority, u8* pu8LangCode);
/*! \fn void DVB_SI_SetPrefer(u8 u8Priority, u8* pu8LangCode)
\brief Set prefer audio language when parser audio PID.
\param u8Priority (Input) only two priority, 1 or 2.
\param pu8LangCode (Input) a point of string which follow ISO 639-2. disable it when string length is zero.
*/
void DVB_SI_TriggerTDT(void);
/*! \fn void DVB_SI_TriggerTDT(void)
\brief start to receive TDT.
*/
void DVB_SI_StopTDT(void);
/*! \fn void DVB_SI_StopTDT(void)
\brief stop to receive TDT.
*/
#ifndef ATSC_SYSTEM
void DVB_ParserEitLoop(ST_EIT_EVENT *pstEvent, u8 *pu8LoopData, u8 u8ParseExDesNum);
/*! \fn void DVB_ParserEitLoop(ST_EIT_EVENT *pstEvent, u8 *pu8LoopData)
\brief parser a event loop in EIT.
\param pstEvent (Output) a point for eit event.
\param pu8LoopData (Input) start point of event loop.
\param u8ParseExDesNum (Input) The extended event descriptor you want to parse. 0xFF: parse short or extended 0.
*/
#endif
u8* DVB_ParserFindTag(u8 *pu8Descriptor, u8 u8Tag, s16 s16TotalLength);
/*! \fn u8* DVB_ParserFindTag(u8 *pu8Descriptor, u8 u8Tag, s16 s16TotalLength)
\brief find tag in descriptor loop.
\param pu8Descriptor (Input) start point of descriptor loop.
\param u8Tag (Input) target tag(descriptor).
\param s16TotalLength (Input) total descriptor length.
\return pointer to target tad, NULL for search fail.
*/
//u8* DVB_ParserFindNextTag(u8 *pu8CurrentDescriptor, u8 *pu8FirstDescriptor, s16 s16TotalLength);
//u8* DVB_ParserFindSpecificTag(u8 *pu8Section, EN_SI_TABLE enTable, u16 u16LoopID, u8 u8Tag);
u8* DVB_ParserFindLoop(u8 *pu8Section, EN_SI_TABLE enTable, u16 u16LoopID);
/*! \fn u8* DVB_ParserFindLoop(u8 *pu8Section, EN_SI_TABLE enTable, u16 u16LoopID)
\brief find loop ID in a section.
\param pu8Section (Input) pointer to whole section.
\param enTable (Input) table type of the section.
\param u16LoopID (Input) target loop ID.
\return pointer to target loop, NULL for search fail.
*/
u8* DVB_ParserFindFirstLoop(u8 *pu8Section, EN_SI_TABLE enTable );
/*! \fn u8* DVB_ParserFindFirstLoop(u8 *pu8Section, EN_SI_TABLE enTable )
\brief find first loop in a section.
\param pu8Section (Input) pointer to whole section.
\param enTable (Input) table type of the section.
\return pointer to first loop, NULL for search fail.
*/
u8* DVB_ParserFindNextLoop(u8 *pu8Section, u8 *pu8Loop, EN_SI_TABLE enTable );
/*! \fn bool8 DVB_FilterCheckAvailableSection (u8 u8FID)
\brief find next loop in a section.
\param pu8Section (Input) pointer to whole section.
\param pu8Loop (Input) pointer to currently loop.
\param enTable (Input) table type of the section.
\return pointer to next loop, NULL for search fail.
*/
void DVB_SI_TriggerTOT(void);
void DVB_SI_StopTOT(void);
void DVB_SI_SetPerferAudioType(PERFER_AUDIO_TYPE PerferAudioType );
PERFER_AUDIO_TYPE DVB_SI_GetPerferAudioType(void);
void DVB_SI_GetPMTbyServiceID( u16 u16ServiceID, void (*sec_cb)(u8 u8FID, EN_FILTER_STATUS enStatus));
void DVB_SI_GetPMTbyServiceID_Term(void);
#ifdef ENABLE_LCN_SUPPORT
void DVB_SI_SetLCNMode (EN_LCN_MODE enMode);
EN_LCN_MODE DVB_SI_GetLCNMode (void);
bool8 DVB_SI_GetLCNStatus (void);
u16 DVB_SI_GetLCNMask (void);
u16 DVB_SI_GetLCNFreeNum (EN_SERVICE_TYPE tvRadioMode);
bool8 DVB_SI_SetLCNNumber (DB_SrvDetail *pstService);
#ifdef LCN_COUNTRY_CHECK_DISABLE
u16 DVB_SI_Get_MaxLCN_In_DB(EN_SERVICE_TYPE enServiceType);
void DVB_SI_CheckMaxLCN(u16 *pu16MaxVideoLCN, u16 *pu16MaxAudioLCN);
#else
u16 DVB_SI_CheckMaxLCN(void);
#endif
#endif
void DVB_SI_SetMsgLanguage(u8* pu8LangCode);
void DVB_SI_GetTPInfo( u16 *u16OriginalNID, u16 *u16TransportStreamID );
#ifdef CI_ENABLE
bool8 DVB_SI_GetCAPMTInit(void);
bool8 DVB_SI_GetCAPMTbyPMTPID( u16 u16PMTPid, u8 **pu8CAPMTSection, u16 *pu16CAPMTSecLen );
bool8 DVB_SI_GetCAPMTbyProgrmIDX( EN_SERVICE_TYPE enSrvType, u16 u16PgmIdx, u8 **pu8CAPMTSection, u16 *pu16CAPMTSecLen );
#ifdef PVR_ENABLE
void DVB_SI_SetCIca_pmt_list_management(u8 u8value);
#endif
/***added by linda20070322 ****/
void DVB_SI_GetSystemID_end(void );
void DVB_SI_SetServiceInfo(EN_SERVICE_TYPE enType, u16 u16Srvidx);
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -