12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364 |
- /******************************************************************************/
- /**
- * \file mid_siutil_dvb.h
- *
- * \brief header for dvb SI
- *
- * \note Copyright (C) 2006 SunMedia Co, chengdu \n
- * Author anlzhao@sunmedia.com.cn \n
- * The source code in this file is written by anlzhao referring to \n
- * ETSI EN 300 468 and owned by SunMedia Coporation. The header defines all \n
- * the macro and common struct. You should include it in all file.
- *
- * \author Unknow
- *
- *
- ******************************************************************************/
- #ifndef _MID_SIUTIL_DVB_H
- #define _MID_SIUTIL_DVB_H
- #include <string.h>
- #include <types.h>
- //#include "drivers/drv_demux.h"
- #include "mid_common.h"
- #include "mid_siutil.h" //[kiwi 20090213]
- #define INVALID_ORGNETID 0xffff
- #define INVALID_TSID 0xffff
- /* Packet Identifier Value */
- #define PID_NIT 0x0010 /**<\brief PID of Network Information Table */
- #define PID_SDT 0x0011 /**<\brief PID of Service Description Table */
- #define PID_BAT 0x0011 /**<\brief PID of Bouquet Association Table */
- #define PID_EIT 0x0012 /**<\brief PID of Event Information Table */
- #define PID_RST 0x0013 /**<\brief PID of Running Status Table */
- #define PID_TDT 0x0014 /**<\brief PID of Time and Date Table */
- #define PID_TOT 0x0014 /**<\brief PID of Time Offset Table */
- #define PID_DIT 0x001E /**<\brief PID of Discontinuity Information Table*/
- #define PID_SIT 0x001F /**<\brief PID of Selection Information Table*/
- /* Table Identifier Value */
- /* 0x04 ~ 0x3F is reserved */
- #define TABLE_ID_NIT_ACT 0x40 /**<\brief table_id of actual Network Information Section*/
- #define TABLE_ID_NIT_OTH 0x41 /**<\brief table_id of other Network Information Section*/
- #define TABLE_ID_SDT_ACT 0x42 /**<\brief table_id of Service Description Section actual*/
- /* 0x43 ~ 0x45 is reserved */
- #define TABLE_ID_SDT_OTH 0x46 /**<\brief table_id of Service Description Section other*/
- /* 0x47 ~ 0x49 is reserved */
- #define TABLE_ID_BAT 0x4A /**<\brief table_id of Bouquet Association Section */
- /* 0x4B ~ 0x4D is reserved */
- #define TABLE_ID_EIT_ACT 0x4E /**<\brief table_id of Event Information Section actual, present/following */
- #define TABLE_ID_EIT_OTH 0x4F /**<\brief table_id of Event Information Section other, present/following */
- #define TABLE_ID_EIT_ACT_SCH_FIRSR 0x50 /**<\brief table_id of Event Information Section actual schedule */
- #define TABLE_ID_EIT_ACT_SCH_LAST 0x5F /**<\brief table_id of Event Information Section actual schedule */
- #define TABLE_ID_EIT_OTH_SCH_FIRST 0x60 /**<\brief table_id of Event Information Section other schedule */
- #define TABLE_ID_EIT_OTH_SCH_LAST 0x6F /**<\brief table_id of Event Information Section other schedule */
- #define TABLE_ID_TDT 0x70 /**<\brief table_id of Time adn Date Section */
- #define TABLE_ID_RST 0x71 /**<\brief table_id of Running Status Section*/
- #define TABLE_ID_TOT 0x73 /**<\brief table_id of Time Offset Section */
- #ifdef CONFIG_SUPPORT_HBBTV
- #define TABLE_ID_AIT 0x74 /**<\brief table_id of Application Information Section */
- #endif
- #ifdef SUPPORT_ASTRA_LCN
- #define TABLE_ID_SGT 0x91 /**<\brief table_id of service guide Section */
- #endif
- /* 0x80 ~ 0xFE,User defined;0xFF Reserved */
- #ifdef CONFIG_SUPPORT_FAST_SCANNING
- #define TABLE_ID_FNT 0xBC /**<\brief table_id of Fast Scan Network Table */
- #define TABLE_ID_FST 0xBD /**<\brief table_id of Fast Scan Service Table */
- #endif
- /*
- * Descriptor Tag Value of SSU UNT descriptors
- * defined by ETSI TS 102 006 V1.3.1 Table 19
- * begin
- */
- #define DESCR_SCHEDULING 0x01 /**<\brief descriptor_tag of scheduling_descriptor*/
- #define DESCR_UPDATE 0x02 /**<\brief descriptor_tag of update_descriptor*/
- #define DESCR_SSU_LOCATION 0x03 /**<\brief descriptor_tag of ssu_location_descriptor*/
- #define DESCR_MESSAGE 0x04 /**<\brief descriptor_tag of message_descriptor*/
- #define DESCR_SSU_EVENT_NAME 0x05 /**<\brief descriptor_tag of ssu_event_name_descriptor*/
- #define DESCR_TARGET_SMARTCARD 0x06 /**<\brief descriptor_tag of target_smartcard_descriptor*/
- #define DESCR_TARGET_MAC_ADD 0x07 /**<\brief descriptor_tag of target_MAC_descriptor*/
- #define DESCR_TARGET_SERIAL_NUM 0x08 /**<\brief descriptor_tag of target_serial_number_descriptor*/
- #define DESCR_TARGET_IP_ADD 0x09 /**<\brief descriptor_tag of target_IP_address_descriptor*/
- #define DESCR_TARGET_IPV6_ADD 0x0A /**<\brief descriptor_tag of target_IPv6_descriptor*/
- #define DESCR_SSU_SUBGROUP 0x0B /**<\brief descriptor_tag of ssu_subgroup_association_descriptor*/
- /*
- * reverver 0x00
- * reserved for future SSU use 0x0c to 0x3f
- * in the scope of DVB SI 0x40 to 0x7f
- * telephone_descriptor 0x57
- * private_data_specifier_descriptor 0x5f
- * user private 0x80 to 0xfe
- * reverved 0xff
- * end
- */
- /*
- * Descriptor Tag Value
- * defined by ETSI EN 300 468 Table 12
- */
- #define DESCR_NW_NAME 0x40 /**<\brief tag of network_name_descriptor */
- #define DESCR_SERVICE_LIST 0x41 /**<\brief tag of service_list_descriptor */
- #define DESCR_STUFFING 0x42 /**<\brief tag of stuffing_descriptor */
- #define DESCR_SAT_DEL_SYS 0x43 /**<\brief tag of satellite_delivery_system_descriptor*/
- #define DESCR_CABLE_DEL_SYS 0x44 /**<\brief tag of cable_delivery_system_descriptor*/
- #define DESCR_VBI_DATA 0x45 /**<\brief tag of VBI_data_descriptor*/
- #define DESCR_VBI_TELETEXT 0x46 /**<\brief tag of VBI_teletext_descriptor*/
- #define DESCR_BOUQUET_NAME 0x47 /**<\brief tag of bouquet_name_descriptor*/
- #define DESCR_SERVICE 0x48 /**<\brief tag of service_descriptor*/
- #define DESCR_COUNTRY_AVAIL 0x49 /**<\brief tag of country_availability_descriptor*/
- #define DESCR_LINKAGE 0x4A /**<\brief tag of linkage_descriptor*/
- #define DESCR_NVOD_REF 0x4B /**<\brief tag of NVOD_reference_descriptor*/
- #define DESCR_TIME_SHIFTED_SERVICE 0x4C /**<\brief tag of time_shifted_service_descriptor*/
- #define DESCR_SHORT_EVENT 0x4D /**<\brief tag of short_event_descriptor*/
- #define DESCR_EXTENDED_EVENT 0x4E /**<\brief tag of extended_event_descriptor*/
- #define DESCR_TIME_SHIFTED_EVENT 0x4F /**<\brief tag of time_shifted_event_descriptor*/
- #define DESCR_COMPONENT 0x50 /**<\brief tag of component_descriptor*/
- #define DESCR_MOSAIC 0x51 /**<\brief tag of mosaic_descriptor*/
- #define DESCR_STREAM_ID 0x52 /**<\brief tag of stream_identifier_descriptor*/
- #define DESCR_CA_IDENT 0x53 /**<\brief tag of CA_identifier_descriptor*/
- #define DESCR_CONTENT 0x54 /**<\brief tag of content_descriptor*/
- #define DESCR_PARENTAL_RATING 0x55 /**<\brief tag of parental_rating_descriptor*/
- #define DESCR_TELETEXT 0x56 /**<\brief tag of teletext_descriptor*/
- #define DESCR_TELEPHONE 0x57 /**<\brief tag of telephone_descriptor*/
- #define DESCR_LOCAL_TIME_OFF 0x58 /**<\brief tag of local_time_offset_descriptor*/
- #define DESCR_SUBTITLING 0x59 /**<\brief tag of subtitling_descriptor*/
- #define DESCR_TERR_DEL_SYS 0x5A /**<\brief tag of terrestrial_delivery_system_descriptor */
- #define DESCR_ML_NW_NAME 0x5B /**<\brief tag of multilingual_network_name_descriptor*/
- #define DESCR_ML_BQ_NAME 0x5C /**<\brief tag of multilingual_bouquet_name_descriptor*/
- #define DESCR_ML_SERVICE_NAME 0x5D /**<\brief tag of multilingual_service_name_descriptor*/
- #define DESCR_ML_COMPONENT 0x5E /**<\brief tag of multilingual_component_descriptor*/
- #define DESCR_PRIV_DATA_SPEC 0x5F /**<\brief tag of private_data_specifier_descriptor*/
- #define DESCR_SERVICE_MOVE 0x60 /**<\brief tag of service_move_descriptor*/
- #define DESCR_SHORT_SMOOTH_BUF 0x61 /**<\brief tag of short_smoothing_buffer_descriptor*/
- #define DESCR_FREQUENCY_LIST 0x62 /**<\brief tag of frequency_list_descriptor*/
- #define DESCR_PARTIAL_TP_STREAM 0x63 /**<\brief tag of partial_transport_stream_descriptor (Only found in Partial Transport Streams)*/
- #define DESCR_DATA_BROADCAST 0x64 /**<\brief tag of data_broadcast_descriptor*/
- #define DESCR_CA_SYSTEM 0x65 /**<\brief tag of scrambling_descriptor*/
- #define DESCR_DATA_BROADCAST_ID 0x66 /**<\brief tag of data_broadcast_id_descriptor*/
- #define DESCR_TRANSPORT_STREAM 0x67 /**<\brief tag of transport_stream_descriptor (Only in the TSDT (Transport Streams Description Table))*/
- #define DESCR_DSNG 0x68 /**<\brief tag of DSNG_descriptor (Only in the TSDT (Transport Streams Description Table))*/
- #define DESCR_PDC 0x69 /**<\brief tag of PDC_descriptor*/
- #define DESCR_AC3 0x6A /**<\brief tag of AC-3_descriptor*/
- #define DESCR_ANCILLARY_DATA 0x6B /**<\brief tag of ancillary_data_descriptor*/
- #define DESCR_CELL_LIST 0x6C /**<\brief tag of cell_list_descriptor*/
- #define DESCR_CELL_FREQ_LINK 0x6D /**<\brief tag of cell_frequency_link_descriptor*/
- #define DESCR_ANNOUNCEMENT_SUPPORT 0x6E /**<\brief tag of announcement_support_descriptor*/
- #define DESCR_APPLICATION_SIGNALLING 0x6F /**<\brief tag of application_signalling_descriptor*/
- #define DESCR_APPLICATION_FIELD_DATA 0x70 /**<\brief tag of adaptation_field_data_descriptor*/
- #define DESCR_SERVICEIDENTIFIER 0x71 /**<\brief tag of service_identifier_descriptor*/
- #define DESCR_SERVICE_AVAILABILITY 0x72 /**<\brief tag of service_availability_descriptor*/
- #define DESCR_DEFAULT_AUTHORITY 0x73 /**<\brief tag of default_authority_descriptor*/
- #define DESCR_CONTENT_IDENTIFIER 0x76 /**<\brief tag of content_identifier_descriptor*/
- #define DESCR_EAC3 0x7A /**<\brief tag of enhanced_AC-3_descriptor*/
- #define DESCR_AAC 0x7C /**<\brief tag of AAC_descriptor*/
- #define DESCR_FTA_CONTENT_MGR 0x7E /**<\brief tag of FTA_content_management_descriptor*/
- #define DESCR_EXTENSION 0x7F /**<\brief tag of extension_descriptor*/
- #define TABLE_ID_EWS 0x80 /**<\brief table_id of Indonesia EWS Table */
- #define PID_EWS 0x038F /**<\brief PID of Indonesia EWS Table*/
- #if defined(DVB_C)
- #define DESCR_BAT_LCN 0x82
- #define DESCR_VOLUME_COMPENSATING 0x83
- #endif
- #define DESCR_LCN 0x83 /**<\brief tag of LCN_descriptor */
- #define DESCR_LCN_B0 0xB0 /**<\brief tag of LCN_descriptor with 0xB0 */
- #define DESCR_LCN_V2 0x87 /**<\brief tag of LCN_Version 2_descriptor */
- #define DESCR_LCN_9C 0x9C /**<\brief tag of LCN_descriptor for KDG */
- #define DESCR_HD_SIMULCAST_LCN 0x88 /**<\brief tag of HD_simulcast_LCN_descriptor */
- #define DESCR_PREFERRED_NAME_LIST 0x84 /**<\brief tag of preffered_name_list_descriptor */
- #define DESCR_PREFERRED_NAME_IDENTIFIER 0x85 /**<\brief tag of preffered_name_identifier_descriptor */
- #define DESCR_SERVICE_ATTRIBUTE 0x86 /**<\brief tag of service_attribute_descriptor */
- #define DESCR_SERVICE_LIST_NAME 0x88 /**<\brief tag of service_list_name_descriptor */
- #define DESCR_BOUQUET_LIST 0x93 /**<\brief tag of bouquet_list_descriptor */
- #define DESCR_VIRTUAL_SERVICE_ID 0xD1 /**<\brief tag of virtual_service_id_descriptor */
- #ifdef CONFIG_DTMB_SYSTEM
- #define DESCR_DRA_REGISTRATION 0x05 /**<\brief tag of DRA_Registration_Descriptor */
- #define DESCR_DRA_AUDIO_STREAM 0xA0 /**<\brief tag of DRA_audio_stream_descriptor */
- #else
- #define DESCR_CONTENT_PROTECTION 0xA0 /**<\brief tag of content_protection_descriptor for Nordig */
- #endif
- #define DESCR_TFCAS 0xA1
- #define DESCR_CI_PROTECTION_DESC 0xCE /**<\brief tag of CI Protection descriptor */
- #define DESCR_PARTIAL_RECEPTION 0xFB
- #ifdef CONFIG_ISDB_SYSTEM
- #define DESCR_TS_INFORMATION 0xCD
- #define DESCR_LOGO_TRANSMISSION 0xCF /**<\brief tag of logo transmission descriptor */
- #define DESCR_DIGITAL_COPY_CTR 0xC1 /**<\brief tag of Digital copy control descriptor */
- #define DESCR_CONTENT_AVAILABILITY 0xDE /**<\brief tag of Content availability descriptor */
- #ifdef SUPPORT_PREFER_ADDIO_DESC//2010/06/09 yhong 0090319 Desc prefer audio.
- #define DESCR_AUDIO_COMPONENT 0xC4 /**<\brief tag of Content availability descriptor */
- #endif
- #endif
- /*
- * Extension Descriptor Tag Value
- * defined by ETSI EN 300 468 Table 101
- */
- #define DESCR_EXT_TARGET_REGION 0x09 /**<\brief extension tag of tartget region descriptor */
- #define DESCR_EXT_TARGET_REGION_NAME 0x0A /**<\brief extension tag of tartget region name descriptor */
- #define DESCR_EXT_T2SYSTEM 0X04 /**<\brief extension tag of T2_delivery_system_descriptor */
- /* Max section size */
- #define MAX_SECTION_SIZE_NIT 1024 /**<\brief max size of NIT section */
- #define MAX_SECTION_SIZE_BAT 1024 /**<\brief max size of BAT section */
- #define MAX_SECTION_SIZE_EIT 4096 /**<\brief max size of EIT section */
- #define MAX_SECTION_SIZE_SDT 1024 /**<\brief max size of SDT section */
- #define MAX_SECTION_SIZE_TDT 8 /**<\brief max size of TDTsection */
- #define MAX_SECTION_SIZE_TOT 1024 /**<\brief max size of TOTsection */
- // service type coding defined in Service descriptor(0x48)
- #define SERVICE_RESERVED_FOR_FUTURE 0x00 /**<\brief service type of RESERVED_FOR_FUTURE*/
- #define SERVICE_DIGITAL_TELEVISION 0x01/**<\brief service type of DIGITAL_TELEVISION */
- #define SERVICE_DIGITAL_RADIO 0x02 /**<\brief service type of DIGITAL_RADIO*/
- #define SERVICE_TELETEXT 0x03 /**<\brief service type of TELETEXT*/
- #define SERVICE_NVOD_REFERENCE 0x04 /**<\brief service type of NVOD_REFERENCE*/
- #define SERVICE_NVOD_TIMESHIFT 0x05 /**<\brief service type of NVOD_TIMESHIFT*/
- #define SERVICE_MOSAIC 0x06 /**<\brief service type of MOSAIC*/
- #define SERVICE_PAL_CODED_SIGNAL 0x07 /**<\brief service type of PAL_CODED_SIGNAL*/
- #define SERVICE_SECAM_CODED_SIGNAL 0x08 /**<\brief service type of SECAM_CODED_SIGNAL*/
- #define SERVICE_D_D2_MAC 0x09 /**<\brief service type of D_D2_MAC*/
- #define SERVICE_ADVANCED_DIGITAL_RADIO 0x0A /**<\brief service type of ADVANCED_DIGITAL_RADIO*/
- #define SERVICE_NTSC_CODED_SIGNAL 0x0B /**<\brief service type of NTSC_CODED_SIGNAL*/
- #define SERVICE_DATABROADCAST 0x0C /**<\brief service type of DATABROADCAST*/
- #define SERVICE_COMMON_INTERFACE 0x0D /**<\brief service type of COMMON_INTERFACE*/
- #define SERVICE_RCS_MAP 0x0E /**<\brief service type of RCS_MAP*/
- #define SERVICE_RCS_FLS 0x0F /**<\brief service type of RCS_FLS*/
- #define SERVICE_DVB_MHP 0x10 /**<\brief service type of DVB_MHP*/
- #define SERVICE_MPEG2_HD_DIGITAL_TELEVISION 0x11 /**<\brief service type of MPEG2_HD_DIGITAL_TELEVISION*/
- #define SERVICE_ADVANCED_SD_DIGITAL_TV 0x16 /**<\brief service type of ADVANCED_SD_DIGITAL_TV*/
- #define SERVICE_ADVANCED_HD_DIGITAL_TV 0x19 /**<\brief service type ofn ADVANCED_HD_DIGITAL_TV*/
- #define SERVICE_ADVANCED_HD_NVOD_TIMESHIFT 0x1A /**<\brief service type of ADVANCED_HD_NVOD_TIMESHIFT*/
- #define SERVICE_ADVANCED_HD_NVOD_REFERENCE 0x1B /**<\brief service type of ADVANCED_HD_NVOD_REFERENCE*/
- #define SERVICE_HEVC 0x1F /**<\brief service type of HEVC*/
- //BRAD : we use only 6-bits to presernt service_type in SDT
- #define SERVICE_MAX_VALUE_FOR_6BIT 0x3D/**<\brief service type of MAX_VALUE_FOR_6BIT*/
- //BRAD : Used to indicate that SDT does not include this service
- #define SERVICE_NOT_IN_SDT 0x3E /**<\brief service type of NOT_IN_SDT*/
- //BRAD : Used to indicate that there is no SDT in current channel
- #define SERVICE_NO_SDT 0x3F/**<\brief service type of NO_SDT*/
- #define SERVICE_USEER_DEFINE 0xd3 /**<\brief service type of user define*/
- /**
- * zhongbaoxing added the following service types according to ABNTNBR 15603-2 begin
- */
- #define SERVICE_SPECIAL_VIDEO 0xA1/**<\brief service type of SPECIAL_VIDEO*/
- #define SERVICE_SPECIAL_AUDIO 0xA2/**<\brief service type of SPECIAL_AUDIO*/
- #define SERVICE_SPECIAL_DATA 0xA3/**<\brief service type of SPECIAL_DATA*/
- #define SERVICE_ENGINEERING 0xA4/**<\brief service type of ENGINEERING, such as software upgrade*/
- #define SERVICE_PROMOTIONAL_VIDEO 0xA5/**<\brief service type of PROMOTIONAL_VIDEO*/
- #define SERVICE_PROMOTIONAL_AUDIO 0xA6/**<\brief service type of PROMOTIONAL_AUDIO*/
- #define SERVICE_PROMOTIONAL_DATA 0xA7/**<\brief service type of PROMOTIONAL_DATA*/
- #define SERVICE_DATA_FOR_ANTICIPATED_STORAGE 0xA8/**<\brief service type of DATA_FOR_ANTICIPATED_STORAGE*/
- #define SERVICE_EXCLUSIVE_DATA_FOR_STORAGE 0xA9/**<\brief service type of EXCLUSIVE_DATA_FOR_STORAGE*/
- #define SERVICE_BOOKMARK_SERVICE_LIST 0xAA/**<\brief service type of BOOKMARK_SERVICE_LIST*/
- #define SERVICE_SIMULTANEOUS_SERVER 0xAB/**<\brief service type of SIMULTANEOUS_SERVER*/
- #define SERVICE_INDEPENDENT_FILE 0xAC/**<\brief service type of INDEPENDENT_FILE*/
- #define SERVICE_DATA 0xC0/**<\brief service type of DATA*/
- /**
- * zhongbaoxing added the following service types according to ABNTNBR 15603-2 end
- */
- // service flag
- // 0000 0001 // from service attribute descriptor
- #define SERVICE_NON_VISIBLE 0x01 /**<\brief SERVICE_NON_VISIBLE*/
- // 0000 0010
- #define SERVICE_TEMP 0x02 /**<\brief SERVICE_TEMP*/
- // 0000 0100
- #define SERVICE_SCRAMBLED 0x04 /**<\brief SERVICE_SCRAMBLED*/
- // 0000 1000 // from service attribute descriptor
- #define SERVICE_NON_SELECTABLE 0x08 /**<\brief SERVICE_NON_SELECTABLE*/
- // 0001 0000 // EI_present_folllowing_flag
- #define SERVICE_EIT_PF 0x10 /**<\brief SERVICE_EIT_PF*/
- // 0010 0000 // free_CA_mode
- #define SERVICE_FREE_CA_MODE 0x20 /**<\brief SERVICE_FREE_CA_MODE*/
- // 0100 0000 // invalid
- #define SERVICE_INVALID 0x40 /**<\brief SERVICE_INVALID*/
- #define SERVICE_NOT_ENABLE 0X80
- //running status
- #define RS_NOT_RUNNING 0x1 /**<\brief RS_NOT_RUNNING*/
- #define RS_START_IN_FEW_SECONDS 0x2/**<\brief RS_START_IN_FEW_SECONDS*/
- #define RS_PAUSING 0x3 /**<\brief RS_PAUSING*/
- #define RS_RUNNING 0x4 /**<\brief RS_RUNNING*/
- #define RS_SERVICE_OFF_AIR 0x5 /**<\brief RS_SERVICE_OFF_AIR*/
- /* ci shunning data define */
- #define CI_SHUNNING_INVALID 0x0 /**<\brief shunning data invalid*/
- #define CI_SHUNNING_PRESENT 0x1 /**<\brief shunning data PRESENT*/
- #define CI_SHUNNING_ABSENT 0x2 /**<\brief shunning data ABSENT*/
- /* Timeout */
- #undef SDT_TIMEOUT
- #define SDT_TIMEOUT 1500 /**<\brief SDT_TIMEOUT*/
- #undef NIT_TIMEOUT
- #define NIT_TIMEOUT 1500 /**<\brief NIT_TIMEOUT*/
- #undef TDT_TIMEOUT
- #define TDT_TIMEOUT 4000 /**<\brief TDT_TIMEOUT*/
- #undef TOT_TIMEOUT
- #define TOT_TIMEOUT 4000 /**<\brief TOT_TIMEOUT*/
- #define DTGCMG_TBL_NONE 0x00 /**<\brief DTGCMG_TBL_NONE*/
- #define DTGCMG_TBL_NIT_1ST_LOOP 0x10/**<\brief DTGCMG_TBL_NIT_1ST_LOOP*/
- #define DTGCMG_TBL_NIT_2ND_LOOP 0x20/**<\brief DTGCMG_TBL_NIT_2ND_LOOP*/
- #define DTGCMG_TBL_SDT 0x40 /**<\brief DTGCMG_TBL_SDT*/
- #define DTGCMG_TBL_EIT 0x80 /**<\brief DTGCMG_TBL_EIT*/
- /*
- *TDT structure
- */
- #define MjdToEpochTime(x) (((x##_hi << 8 | x##_lo)-40587)*86400) /**<\brief MjdToEpochTime*/
- #define BcdTimeToSeconds(x) ((3600 * ((10*((x##_h & 0xF0)>>4)) + \
- (x##_h & 0xF))) + \
- (60 * ((10*((x##_m & 0xF0)>>4)) + \
- (x##_m & 0xF))) + \
- ((10*((x##_s & 0xF0)>>4)) + (x##_s & 0xF))) /**<\brief BcdTimeToSeconds*/
- #define BCDToDecimal(x) (10*((x & 0xF0)>>4)) + (x & 0xF) /**<\brief BCDToDecimal*/
- #define BCD2DEC(x) ((((x & 0xF0) >> 4) * 10) + (x & 0x0F)) /**<\brief BCD2DEC*/
- // ================ TDT related ======================= //
- #define TDT_LEN 8 /**<\brief TDT_LEN*/
- /**
- * \brief TDT structure
- */
- typedef struct _mid_siutil_tdt_t
- {
- UINT8 table_id :8; /**<\brief 0x70*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved :3; /**<\brief reserved */
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator*/
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 utc_mjd_hi :8; /**<\brief utc_mjd high bit*/
- UINT8 utc_mjd_lo :8; /**<\brief utc_mjd low bit*/
- UINT8 utc_time_h :8; /**<\brief utc_time hour*/
- UINT8 utc_time_m :8; /**<\brief utc_time minute*/
- UINT8 utc_time_s :8; /**<\brief utc_time second*/
- }MID_SiutilTdt_t, *LP_MID_SiutilTdt_t; /**<\brief LP_MID_SiutilTdt_t*/
- /**
- * \brief ASC Time
- */
- typedef struct _mid_siutil_time_date_t
- {
- int Year; /**<\brief Year;*/
- char Month; /**<\brief Month*/
- char Day; /**<\brief Day*/
- char Hour; /**<\brief Hour*/
- char Min; /**<\brief Minute*/
- char Second; /**<\brief Second*/
- }MID_SiutilTimeDate_t, *LP_MID_SiutilTimeDate_t;/**<\brief LP_MID_SiutilTimeDate_t*/
- /**
- * \brief TDT and TOT struct
- */
- typedef struct _mid_siutil_tdt_tot_t
- {
- INT8 table_id; /**<\brief TDT:0x70 TOT:0x73*/
- INT32 curtime; /**<\brief current time*/
- MID_SiutilTimeDate_t asc_time; /**<\brief ASC time*/
- char RawUTC[5]; ///<20100301 JennyLee added for mantis 80113 /**<\brief RawUTC*/
- UINT16 descLen; /**<\brief only TOT used*/
- UINT8 *p_descr; /**<\brief p_descr*/
- }MID_SiutilTdtTot_t, *LP_MID_SiutilTdtTot_t;/**<\brief LP_MID_SiutilTdtTot_t*/
- // ================ SDT related ======================= //
- #define SDT_LEN 11 /**<\brief SDT_LEN*/
- /**
- * \brief SDT structure
- */
- typedef struct _mid_siutil_sdt_t
- {
- UINT8 table_id :8; /**<\brief Actual:0x42 Other:0x46*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved :3; /**<\brief reserved */
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator */
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 transport_stream_id_hi :8; /**<\brief transport_stream_id high bit */
- UINT8 transport_stream_id_lo :8; /**<\brief low bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator */
- UINT8 version_number :5; /**<\brief version_number */
- UINT8 reserved1 :2; /**<\brief reserved */
- UINT8 section_number :8; /**<\brief section_number*/
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- UINT8 original_network_id_hi :8; /**<\brief original_network_id high bit */
- UINT8 original_network_id_lo :8; /**<\brief original_network_id low bit */
- UINT8 reserved2 :8; /**<\brief reserved */
- }MID_SiutilSdt_t, *LP_MID_SiutilSdt_t;/**<\brief LP_MID_SiutilSdt_t*/
- #define SDT_DESCR_LEN 5 /**<\brief SDT_DESCR_LEN*/
- /**
- * \brief one program info structure in SDT
- */
- typedef struct _mid_siutil_sdt_descr_t
- {
- UINT8 service_id_hi :8; /**<\brief service_id high bit */
- UINT8 service_id_lo :8; /**<\brief service_id low bit */
- UINT8 eit_present_following_flag :1; /**<\brief eit_present_following_flag */
- UINT8 eit_schedule_flag :1; /**<\brief eit_schedule_flag*/
- UINT8 reserved :6; /**<\brief reserved */
- UINT8 descriptors_loop_length_hi :4; /**<\brief descriptors_loop_length high bit */
- UINT8 free_ca_mode :1; /**<\brief free_ca_mode */
- UINT8 running_status :3; /**<\brief running_status */
- UINT8 descriptors_loop_length_lo :8; /**<\brief descriptors_loop_length low bit */
- }MID_SiutilSdtDescr_t, *LP_MID_SiutilSdtDescr_t;/**<\brief LP_MID_SiutilSdtDescr_t*/
- /**
- * \brief one program service_descr structure in SDT
- */
- typedef struct _mid_siutil_sdt_service_descr_t
- {
- MID_SiutilSdtDescr_t sdt_service;/**<\brief sdt_service */
- UINT16 descLen;/**<\brief descLen */
- UINT8 *p_descr;/**<\brief p_descr */
- }MID_SiutilSdtServiceDescr_t, *LP_MID_SiutilSdtServiceDescr_t; /**<\brief LP_MID_SiutilSdtServiceDescr_t*/
- /**
- * \brief one program info_t structure in SDT
- */
- typedef struct _mid_siutil_sdt_info_t
- {
- UINT16 transport_stream_id;/**<\brief transport_stream_id */
- UINT16 original_network_id;/**<\brief original_network_ide */
- UINT8 table_id;/**<\brief table_id */
- UINT8 version_number;/**<\brief version_number */
- UINT16 services_count;/**<\brief services_count */
- MID_SiutilSdtServiceDescr_t *p_sdt_descr_t; /**<\brief p_sdt_descr_t */
- }MID_SiutilSdtInfo_t, *LP_MID_SiutilSdtInfo_t;/**<\brief LP_MID_SiutilSdtInfo_t*/
- // ================ NIT related ======================= //
- #define NIT_LEN 10 /**<\brief NIT_LEN*/
- /**
- * \brief NIT structure
- */
- typedef struct _mid_siutil_nit_t
- {
- UINT8 table_id :8; /**<\brief Actual:0x40 Other:0x41*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved1 :3; /**<\brief reserved*/
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator */
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 network_id_hi :8; /**<\brief network_id high bit */
- UINT8 network_id_lo :8; /**<\brief network_id low bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator */
- UINT8 version_number :5; /**<\brief version_number */
- UINT8 reserved2 :2; /**<\brief reserved*/
- UINT8 section_number :8; /**<\brief section_number */
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- UINT8 network_descriptor_length_hi :4; /**<\brief network_descriptor_length high bit*/
- UINT8 reserved3 :4; /**<\brief reserved*/
- UINT8 network_descriptor_length_lo :8; /**<\brief network_descriptor_length low bit*/
- }MID_SiutilNit_t, *LP_MID_SiutilNit_t; /**<\brief LP_MID_SiutilNit_t*/
- #define NIT_TS_LEN 6 /**<\brief NIT_TS_LEN*/
- /**
- * \brief NIT TS structure
- */
- typedef struct _mid_siutil_nit_ts_t
- {
- UINT8 transport_stream_id_hi :8; /**<\brief transport_stream_id high bit*/
- UINT8 transport_stream_id_lo :8; /**<\brief transport_stream_id low bit*/
- UINT8 original_network_id_hi :8; /**<\brief original_network_id high bit*/
- UINT8 original_network_id_lo :8; /**<\brief original_network_id low bit*/
- UINT8 transport_descriptors_length_hi :4; /**<\brief transport_descriptors_length high bit*/
- UINT8 reserved :4; /**<\brief reserved*/
- UINT8 transport_descriptors_length_lo :8; /**<\brief transport_descriptors_length low bit*/
- }MID_SiutilNitTs_t, *LP_MID_SiutilNitTs_t;/**<\brief LP_MID_SiutilNitTs_t*/
- /**
- * \brief NIT TS descriptor structure
- */
- typedef struct _mid_siutil_nit_ts_desc_t
- {
- UINT16 trans_id; /**<\brief transport_stream_id */
- UINT16 original_network_id; /**<\brief original_network_id */
- UINT16 trans_descLen; /**<\brief descriptor length */
- UINT8 *p_transDescr; /**<\brief pointer to descriptors */
- }MID_SiutilNitTsDescr_t, *LP_MID_SiutilNitTsDescr_t;/**<\brief LP_MID_SiutilNitTsDescr_t*/
- /**
- * \brief NIT info structure
- */
- typedef struct _mid_siutil_nit_info_t
- {
- UINT16 network_id; /**<\brief network_id */
- UINT8 version_number; /**<\brief version_number */
- UINT16 descLen; /**<\brief network descriptor length */
- UINT8 *p_descr; /**<\brief pointer to descriptor */
- #ifdef SUPPORT_MONITOR_ONLY_NIT_OTHER
- UINT8 table_id;
- #endif
- /* transport streams */
- UINT16 trans_count; /**<\brief trans_count */
- MID_SiutilNitTsDescr_t *p_trans; /**<\brief p_trans */
- }MID_SiutilNitInfo_t, *LP_MID_SiutilNitInfo_t; /**<\brief LP_MID_SiutilNitInfo_t */
- //=============================Bat related========================
- #define BAT_LEN 10
- typedef struct _mid_siutil_bat_t
- {
- UINT8 table_id :8;
- UINT8 section_length_hi :4;
- UINT8 :3;
- UINT8 section_syntax_indicator :1;
- UINT8 section_length_lo :8;
- UINT8 bouquet_id_hi :8;
- UINT8 bouquet_id_lo :8;
- UINT8 current_next_indicator :1;
- UINT8 version_number :5;
- UINT8 :2;
- UINT8 section_number :8;
- UINT8 last_section_number :8;
- UINT8 bouquet_descriptor_length_hi :4;
- UINT8 :4;
- UINT8 bouquet_descriptor_length_lo :8;
- } MID_SiutilBat_t, *LP_MID_SiutilBat_t;
- #define BAT_TS_LEN 6
- typedef struct _mid_siutil_bat_info_t
- {
- UINT16 bouquet_id;
- UINT8 version_number;
- /* bouquet descriptor length */
- UINT16 descLen;
- UINT8 *p_descr;
- /* transport streams */
- UINT16 trans_count;
- MID_SiutilNitTsDescr_t *p_trans;
- } MID_SiutilBatInfo_t,*LP_MID_SiutilBatInfo_t;
- #ifdef CONFIG_SUPPORT_INDONESIA_EWS
- //=============================TxDW related========================
- #define TXDW_LEN 8 /**<\brief TXDW_LEN*/
- /**
- * \brief TxDW structure
- */
- typedef struct _mid_siutil_txdw_t
- {
- UINT8 table_id :8; /**<\brief 0x80 */
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved1 :2; /**<\brief reserved*/
- UINT8 private_indicator :1; /**<\brief private_indicator */
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator */
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 table_id_ext_hi :8; /**<\brief table_id_extension high bit */
- UINT8 table_id_ext_lo :8; /**<\brief table_id_extension low bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator */
- UINT8 version_number :5; /**<\brief version_number */
- UINT8 reserved2 :2; /**<\brief reserved*/
- UINT8 section_number :8; /**<\brief section_number */
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- }MID_SiutilTxdw_t, *LP_MID_SiutilTxdw_t; /**<\brief LP_MID_SiutilTxdw_t*/
- #define TRDW_LEN 5 /**<\brief TRDW_LEN*/
- /**
- * \brief TRDW structure
- */
- typedef struct _mid_siutil_trdw_t
- {
- UINT8 disaster_code_hi :8; /**<\brief disaster_code high bit*/
- UINT8 disaster_code_lo :8; /**<\brief disaster_code low bit */
- UINT8 location_type_code :8; /**<\brief location_type_code */
- UINT8 package_id :8; /**<\brief package_id */
- UINT8 number_of_location :8; /**<\brief number_of_location_code */
- }MID_SiutilTrdw_t, *LP_MID_SiutilTrdw_t; /**<\brief LP_MID_SiutilTrdw_t*/
- #define TRDW_REGION_LEN 4 /**<\brief TRDW_REGION_LEN*/
- /**
- * \brief TRDW region structure
- */
- typedef struct _mid_siutil_trdw_region_t
- {
- UINT8 location_code_hi :8; /**<\brief location_code high bit*/
- UINT8 location_code_mi :8; /**<\brief location_code middle bit*/
- UINT8 location_code_lo :8; /**<\brief location_code low bit */
- UINT8 length_location_code :8; /**<\brief length_location_code*/
- }MID_SiutilTrdwRegion_t, *LP_MID_SiutilTrdwRegion_t; /**<\brief LP_MID_SiutilTrdwRegion_t*/
- #define TCDW_LEN 1 /**<\brief TCDW_LEN*/
- /**
- * \brief TCDW structure
- */
- typedef struct _mid_siutil_tcdw_t
- {
- UINT8 number_of_disaster :8; /**<\brief number_of_disaster_code */
- }MID_SiutilTcdw_t, *LP_MID_SiutilTcdw_t; /**<\brief LP_MID_SiutilTcdw_t*/
- #define TCDW_CODE_LEN 4 /**<\brief TCDW_CODE_LEN*/
- /**
- * \brief TCDW code structure
- */
- typedef struct _mid_siutil_tcdw_code_t
- {
- UINT8 package_id :8; /**<\brief package_id*/
- UINT8 authority :8; /**<\brief authority*/
- UINT8 disaster_code_hi :8; /**<\brief disaster_code high bit*/
- UINT8 disaster_code_lo :8; /**<\brief disaster_code low bit */
- }MID_SiutilTcdwCode_t, *LP_MID_SiutilTcdwCode_t; /**<\brief LP_MID_SiutilTcdwCode_t*/
- #define TMDW_LEN 2 /**<\brief TMDW_LEN*/
- /**
- * \brief TMDW structure
- */
- typedef struct _mid_siutil_tmdw_t
- {
- UINT8 location_type_code :8; /**<\brief location_type_code */
- UINT8 package_id :8; /**<\brief package_id */
- }MID_SiutilTmdw_t, *LP_MID_SiutilTmdw_t; /**<\brief LP_MID_SiutilTmdw_t*/
- #define TMDW_MSG_LEN 4 /**<\brief TMDW_MSG_LEN*/
- /**
- * \brief TMDW message structure
- */
- typedef struct _mid_siutil_tmdw_msg_code_t
- {
- UINT8 length_info_message_hi :8; /**<\brief length_information_message high bit*/
- UINT8 length_info_message_lo :8; /**<\brief length_information_message low bit */
- }MID_SiutilTmdwMsg_t, *LP_MID_SiutilTmdwMsg_t; /**<\brief LP_MID_SiutilTcdwCode_t*/
- typedef struct si_string
- {
- UINT16 nbytes;
- UINT8* str_ptr;
- } SI_STRING_DESC;
- typedef struct
- {
- UINT32 location_code;
- SI_STRING_DESC* location_name;
- } SI_EWS_TRDW_LOCATION;
- typedef struct _mid_siutil_trdw_info_t
- {
- UINT16 disaster_code;
- UINT8 location_type_code;
- UINT8 package_id;
- UINT8 number_locations;
- SI_EWS_TRDW_LOCATION* locations;
- }MID_SiutilTrdwInfo_t, *LP_MID_SiutilTrdwInfo_t; /**<\brief LP_MID_SiutilTrdwInfo_t*/
- typedef struct _mid_siutil_tcdw_info_t
- {
- UINT8 package_id;
- UINT8 authority;
- UINT16 disaster_code;
- SI_STRING_DESC* disaster_name;
- SI_STRING_DESC* disaster_position;
- SI_STRING_DESC* disaster_date;
- SI_STRING_DESC* disaster_characteristic;
- }MID_SiutilTcdwInfo_t, *LP_MID_SiutilTcdwInfo_t; /**<\brief LP_MID_SiutilTcdwInfo_t*/
- typedef struct _mid_siutil_tmdw_info_t
- {
- UINT8 location_type_code;
- UINT8 package_id;
- UINT8 num_messages;
- SI_STRING_DESC** messages;
- }MID_SiutilTmdwInfo_t, *LP_MID_SiutilTmdwInfo_t; /**<\brief LP_MID_SiutilTmdwInfo_t*/
- /* table_type */
- #define SI_EWS_TABLE_TRDW 0x01
- #define SI_EWS_TABLE_TCDW 0x02
- #define SI_EWS_TABLE_TMDW 0x03
- typedef struct _mid_siutil_txdw_info_t
- {
- UINT16 table_type;
- UINT8 version;
- UINT8 num_entries;
- UINT32 crc32;
- union {
- void *generic_entry;
- MID_SiutilTrdwInfo_t *trdw_entry;
- MID_SiutilTcdwInfo_t *tcdw_entry;
- MID_SiutilTmdwInfo_t *tmdw_entry;
- };
- }MID_SiutilTxdwInfo_t, *LP_MID_SiutilTxdwInfo_t; /**<\brief LP_MID_SiutilTxdwInfo_t*/
- CHAN_INDEX MID_SIUTIL_OpenTRDW(GL_Queue_t hChanEventQueueHdl, UINT16 pid);
- CHAN_INDEX MID_SIUTIL_OpenTCDW(GL_Queue_t hChanEventQueueHdl, UINT16 pid);
- CHAN_INDEX MID_SIUTIL_OpenTMDW(GL_Queue_t hChanEventQueueHdl, UINT16 pid);
- CHAN_INDEX MID_SIUTIL_OpenTxDWEx(LIVE_INPUT_UNIT InputUnit, GL_Queue_t hChanEventQueueHdl);
- void MID_SIUTIL_FreeTxDW(MID_SiutilTxdwInfo_t ** ppTXDW);
- MID_SiutilTxdwInfo_t *MID_SIUTIL_ParseTxDWEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit);
- MID_SiutilTxdwInfo_t *MID_SIUTIL_ParseTxDW(CHAN_INDEX chn_index);
- #endif // CONFIG_SUPPORT_INDONESIA_EWS
- #ifdef SUPPORT_ASTRA_LCN
- // ================ SGT related ======================= //
- #define MAX_SGT_PID_NUM 5
- #define MAX_SGT_SEVLIST_NUM 10
- #define SGT_LEN 12 /**<\brief SGT_LEN*/
- /**
- * \brief SGT structure
- */
- typedef struct _mid_siutil_sgt_t
- {
- UINT8 table_id :8; /**<\brief 0x91*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved1 :3; /**<\brief reserved*/
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator */
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 service_list_id_hi :8; /**<\brief service_list_id high bit */
- UINT8 service_list_id_lo :8; /**<\brief service_list_id low bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator */
- UINT8 version_number :5; /**<\brief version_number */
- UINT8 reserved2 :2; /**<\brief reserved*/
- UINT8 section_number :8; /**<\brief section_number */
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- UINT8 reserved3 :8; /**<\brief reserved*/
- UINT8 reserved4 :8; /**<\brief reserved*/
- UINT8 service_list_descriptor_length_hi :4; /**<\brief service_list_descriptor_length high bit*/
- UINT8 reserved5 :4; /**<\brief reserved*/
- UINT8 service_list_descriptor_length_lo :8; /**<\brief service_list_descriptor_length low bit*/
- }MID_SiutilSgt_t, *LP_MID_SiutilSgt_t; /**<\brief LP_MID_SiutilNit_t*/
- #define SGT_SRV_LEN 12
- /**
- * \brief SGT service structure
- */
- typedef struct _mid_siutil_srv_t
- {
- UINT8 service_id_hi :8; /**<\brief service_id high bit*/
- UINT8 service_id_lo :8; /**<\brief service_id low bit*/
- UINT8 transport_stream_id_hi :8; /**<\brief transport_stream_id high bit*/
- UINT8 transport_stream_id_lo :8; /**<\brief transport_stream_id low bit*/
- UINT8 original_network_id_hi :8; /**<\brief original_network_id high bit*/
- UINT8 original_network_id_lo :8; /**<\brief original_network_id low bit*/
- UINT8 logical_channel_number_hi :8;
- UINT8 new_service_flag :1;
- UINT8 visible_service_flag :1;
- UINT8 logical_channel_number_lo :6;
- UINT8 genre_code_hi :8;
- UINT8 genre_code_lo :8;
- UINT8 service_descriptors_length_hi :4; /**<\brief service_descriptors_length high bit*/
- UINT8 reserved :4; /**<\brief reserved*/
- UINT8 service_descriptors_length_lo :8; /**<\brief service_descriptors_length low bit*/
- }MID_SiutilSgtSrv_t, *LP_MID_SiutilSgtSrv_t;/**<\brief LP_MID_SiutilSgtSrv_t*/
- /**
- * \brief one program service structure in SGT
- */
- typedef struct _mid_siutil_sgt_service_descr_t
- {
- MID_SiutilSgtSrv_t sgt_service;/**<\brief sdt_service */
- UINT16 srv_descLen;/**<\brief descLen */
- UINT8 *p_srv_descr;/**<\brief p_descr */
- }MID_SiutilSgtServiceDescr_t, *LP_MID_SiutilSgtServiceDescr_t; /**<\brief LP_MID_SiutilSgtServiceDescr_t*/
- /**
- * \brief service list structure in SGT
- */
- typedef struct _mid_siutil_sgt_info_t
- {
- UINT16 pid;
- UINT16 service_list_id;/**<\brief service_list_id */
- UINT8 version_number;/**<\brief version_number */
- UINT8 section_number;
- UINT8 last_section_number;
-
- UINT16 descLen; /**<\brief service list descriptor length */
- UINT8 *p_descr; /**<\brief pointer to descriptor */
- UINT16 services_count;/**<\brief services_count */
- MID_SiutilSgtServiceDescr_t *p_srv; /**<\brief service info */
- }MID_SiutilSgtInfo_t, *LP_MID_SiutilSgtInfo_t;/**<\brief LP_MID_SiutilSdtInfo_t*/
- CHAN_INDEX MID_SIUTIL_OpenSGT(GL_Queue_t hChanEventQueueHdl, UINT16 pid, bool bIsMultiSection);
- CHAN_INDEX MID_SIUTIL_OpenSGTEx(LIVE_INPUT_UNIT InputUnit,GL_Queue_t hChanEventQueueHdl, UINT16 pid);
- void MID_SIUTIL_FreeSGT(MID_SiutilSgtInfo_t ** ppSGT, bool bFreeSrvDes, bool bFreeSrvLisDes);
- MID_SiutilSgtInfo_t *MID_SIUTIL_ParseSGT(CHAN_INDEX chn_index, UINT16 pid,
- UINT8 * p_SrvListDesc, INT16 SrvList_DescLen, UINT16 * p_service,
- INT16 srv_len, UINT8 * p_SrvDesc, INT16 Srv_DescLen);
- MID_SiutilSgtInfo_t *MID_SIUTIL_ParseSGTEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit,
- UINT16 pid, UINT8 * p_SrvListDesc, INT16 SrvList_DescLen, UINT16 * p_service,
- INT16 srv_len, UINT8 * p_SrvDesc, INT16 Srv_DescLen);
- #endif
- #ifdef CONFIG_SUPPORT_HBBTV
- /**
- * \brief service list structure in AIT
- */
- /**
- * \brief AIT structure
- */
- typedef struct _mid_siutil_ait_t
- {
- UINT8 table_id :8; /**<\brief 0x74*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 reserved1 :3; /**<\brief reserved*/
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator */
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 application_type_hi :7; /**<\brief application_type high bit */
- UINT8 test_application_flag :1; /**<\brief test_application_flag */
- UINT8 application_type_lo :8; /**<\brief application_type low bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator */
- UINT8 version_number :5; /**<\brief version_number */
- UINT8 reserved2 :2; /**<\brief reserved*/
- UINT8 section_number :8; /**<\brief section_number */
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- UINT8 common_des_length_hi :4; /**<\brief section_length low bit */
- UINT8 reserved3 :4; /**<\brief application_type high bit */
- UINT8 common_des_length_lo :8; /**<\brief application_type low bit */
- } MID_SiutilAit_t, *LP_MID_SiutilAit_t; /**<\brief LP_MID_SiutilAit_t*/
- #define AIT_LEN (10)
- /**
- * \brief AIT descriptor structure
- */
- typedef struct MID_SiutilAitApp_s
- {
- UINT32 organization_id;
- UINT8 application_id_hi :8;
- UINT8 application_id_lo :8;
- UINT8 application_control_code :8;
- UINT8 application_descriptors_loop_length_hi :4;
- UINT8 reserved_future_use :4;
- UINT8 application_descriptors_loop_length_lo :8;
- } MID_SiutilAitApp_t, *LP_MID_SiutilAitApp_t;/**<\brief LP_MID_SiutilNitTsDescr_t*/
- #define AIT_APPDES_LEN (9) /**<\brief AIT_APPDES_LEN*/
- /**
- * \brief AIT TS descriptor structure
- */
- typedef struct _mid_siutil_ait_appdesc_s
- {
- UINT32 organization_id;
- UINT16 application_id;
- UINT8 application_control_code;
- UINT8 appDec_len;
- UINT8 *p_AppDescr; /**<\brief pointer to descriptors */
- } MID_SiutilAitAppDescr_t, *LP_MID_SiutilAitAppDescr_t;/**<\brief LP_MID_SiutilNitTsDescr_t*/
- typedef struct _mid_siutil_ait_info_s
- {
- //MID_SiutilAit_t Ait_header;
- UINT8 test_applicatio_flag;
- UINT16 application_type;
- UINT8 version_number;
-
- UINT16 descLen;
- UINT8 *p_descr;
-
- UINT16 app_count;
- MID_SiutilAitAppDescr_t *p_Apps;
-
- } MID_SiutilAitInfo_t, *LP_MID_SiutilAitInfo_t;/**<\brief LP_MID_SiutilSdtInfo_t*/
- CHAN_INDEX MID_SIUTIL_OpenAIT(GL_Queue_t hChanEventQueueHdl, UINT16 pid, UINT16 App_Type);
- CHAN_INDEX MID_SIUTIL_OpenAITEx(LIVE_INPUT_UNIT InputUnit,GL_Queue_t hChanEventQueueHdl, UINT16 pid, UINT16 App_Type);
- void MID_SIUTIL_FreeAIT(MID_SiutilAitInfo_t ** ppAIT);
- MID_SiutilAitInfo_t *MID_SIUTIL_ParseAITEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit, UINT16 pid, UINT8 * p_aitDesc, INT16 ait_descLen,
- UINT16 * p_AppId, INT16 AppIdLen, UINT8 * p_Innerdesc, INT16 InnerdescLen);
- MID_SiutilAitInfo_t *MID_SIUTIL_ParseAIT(CHAN_INDEX chn_index, UINT16 pid, UINT8 *p_aitDesc, INT16 ait_descLen,
- UINT16 *p_AppId, INT16 AppIdLen, UINT8 *p_Innerdesc, INT16 InnerdescLen);
- #endif
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenSDT(GL_Queue_t hChanEventQueueHdl,
- * UINT8 bAct)
- *
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped SDT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenSDT(GL_Queue_t hChanEventQueueHdl,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenSDTEx(LIVE_INPUT_UNIT InputUnit,
- * GL_Queue_t hChanEventQueueHdl,
- * UINT8 bAct)
- *
- * \param InputUnit : demux unit
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped SDT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenSDTEx(LIVE_INPUT_UNIT InputUnit,
- GL_Queue_t hChanEventQueueHdl,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenSDT2Tbl(GL_Queue_t hChanEventQueueHdl,
- * UINT8 bAct)
- *
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped SDT
- *
- * \note it's opened to receive two types of SDT table. actual & other at the same time.
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenSDT2Tbl(GL_Queue_t hChanEventQueueHdl, bool bIsMultiSection);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenSDT2TblEx(LIVE_INPUT_UNIT InputUnit,
- * GL_Queue_t hChanEventQueueHdl,
- * UINT8 bAct)
- *
- * \param InputUnit : demux unit
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped SDT
- *
- * \note it's opened to receive two types of SDT table. actual & other at the same time.
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenSDT2TblEx(LIVE_INPUT_UNIT InputUnit,
- GL_Queue_t hChanEventQueueHdl,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn void MID_SIUTIL_FreeSDT(MID_SiutilSdtInfo_t **ppSDT)
- *
- * \param ppSDT : pointer to MID_SiutilSdtInfo_t which store information of SDT
- *
- * \return none
- *
- ************************************************************************************/
- void MID_SIUTIL_FreeSDT(MID_SiutilSdtInfo_t **ppSDT);
- /************************************************************************************/
- /**
- * \fn MID_SiutilSdtInfo_t* MID_SIUTIL_ParseSDT(CHAN_INDEX chn_index,
- * UINT16 *p_service,
- * INT16 serLen,
- * UINT8 *p_desc,
- * INT16 descLen,
- * UINT8 bAct)
- *
- * \param chn_index : index of channel handle which is mapped SDT
- * \param p_service : pointer to service array
- * \param serLen : length of service array
- * \param p_desc : pointer to descriptor array
- * \param descLen : length of descriptor array
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return the structure which store information of SDT
- *
- ************************************************************************************/
- MID_SiutilSdtInfo_t* MID_SIUTIL_ParseSDT(CHAN_INDEX chn_index,
- UINT16 *p_service,
- INT16 serLen,
- UINT8 *p_desc,
- INT16 descLen,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn MID_SiutilSdtInfo_t* MID_SIUTIL_ParseSDTEx(CHAN_INDEX chn_index,
- * LIVE_INPUT_UNIT InputUnit,
- * UINT16 *p_service,
- * INT16 serLen,
- * UINT8 *p_desc,
- * INT16 descLen,
- * UINT8 bAct)
- *
- * \param chn_index : index of channel handle which is mapped SDT
- * \param InputUnit : primary or secondary demux
- * \param p_service : pointer to service array
- * \param serLen : length of service array
- * \param p_desc : pointer to descriptor array
- * \param descLen : length of descriptor array
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return the structure which store information of SDT
- *
- ************************************************************************************/
- MID_SiutilSdtInfo_t* MID_SIUTIL_ParseSDTEx(CHAN_INDEX chn_index,
- LIVE_INPUT_UNIT InputUnit,
- UINT16 *p_service,
- INT16 serLen,
- UINT8 *p_desc,
- INT16 descLen,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenNIT(GL_Queue_t hChanEventQueueHdl, UINT8 bAct)
- *
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped NIT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenNIT(GL_Queue_t hChanEventQueueHdl
- , UINT8 bAct);
- CHAN_INDEX MID_SIUTIL_OpenNIT2Table(GL_Queue_t hChanEventQueueHdl);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenNITEx(LIVE_INPUT_UNIT InputUnit,
- * GL_Queue_t hChanEventQueueHdl,
- * UINT8 bAct)
- *
- * \param InputUnit : demux unit
- * \param hChanEventQueueHdl : event queue handle
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return index of channel handle which is mapped NIT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenNITEx(LIVE_INPUT_UNIT InputUnit,
- GL_Queue_t hChanEventQueueHdl,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn void MID_SIUTIL_FreeNIT(MID_SiutilNitInfo_t **ppNIT)
- *
- * \param ppNIT : pointer to MID_SiutilNitInfo_t which store information of NIT
- *
- * \return none
- *
- ************************************************************************************/
- void MID_SIUTIL_FreeNIT(MID_SiutilNitInfo_t **ppNIT);
- /************************************************************************************/
- /**
- * \fn MID_SiutilNitInfo_t* MID_SIUTIL_ParseNIT(CHAN_INDEX chn_index,
- * UINT8 *p_netDesc,
- * INT16 net_descLen,
- * UINT16 *p_tranID,
- * INT16 tranID_len,
- * UINT8 *p_transDesc,
- * INT16 trans_descLen,
- * UINT8 bAct)
- *
- * \param chn_index : index of channel handle which is mapped NIT
- * \param p_netDesc : pointer to descriptor array
- * \param net_descLen : length of descriptor array
- * \param p_tranID : pointer to transport_stream_id array
- * \param tranID_len : length of transport_stream_id array
- * \param p_transDesc : pointer to descriptor array
- * \param trans_descLen : length of descriptor array
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return the structure which store information of NIT
- *
- ************************************************************************************/
- MID_SiutilNitInfo_t* MID_SIUTIL_ParseNIT(CHAN_INDEX chn_index,
- UINT8 *p_netDesc,
- INT16 net_descLen,
- UINT16 *p_tranID,
- INT16 tranID_len,
- UINT8 *p_transDesc,
- INT16 trans_descLen,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn MID_SiutilNitInfo_t* MID_SIUTIL_ParseNITEx(CHAN_INDEX chn_index,
- * LIVE_INPUT_UNIT InputUnit,
- * UINT8 *p_netDesc,
- * INT16 net_descLen,
- * UINT16 *p_tranID,
- * INT16 tranID_len,
- * UINT8 *p_transDesc,
- * INT16 trans_descLen,
- * UINT8 bAct)
- *
- * \param chn_index : index of channel handle which is mapped NIT
- * \param InputUnit : primary or secondary demux
- * \param p_netDesc : pointer to descriptor array
- * \param net_descLen : length of descriptor array
- * \param p_tranID : pointer to transport_stream_id array
- * \param tranID_len : length of transport_stream_id array
- * \param p_transDesc : pointer to descriptor array
- * \param trans_descLen : length of descriptor array
- * \param bAct : TRUE for actual, FALSE for others
- *
- * \return the structure which store information of NIT
- *
- ************************************************************************************/
- MID_SiutilNitInfo_t* MID_SIUTIL_ParseNITEx(CHAN_INDEX chn_index,
- LIVE_INPUT_UNIT InputUnit,
- UINT8 *p_netDesc,
- INT16 net_descLen,
- UINT16 *p_tranID,
- INT16 tranID_len,
- UINT8 *p_transDesc,
- INT16 trans_descLen,
- UINT8 bAct);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenTDT(GL_Queue_t hChanEventQueueHdl)
- *
- * \param hChanEventQueueHdl : event queue handle
- *
- * \return index of channel handle which is mapped TDT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenTDT(GL_Queue_t hChanEventQueueHdl);
- /************************************************************************************/
- /**
- * \fn CHAN_INDEX MID_SIUTIL_OpenTDTEx(LIVE_INPUT_UNIT InputUnit, GL_Queue_t hChanEventQueueHdl)
- *
- * \param InputUnit : demux unit
- * \param hChanEventQueueHdl : event queue handle
- *
- * \return index of channel handle which is mapped TDT
- *
- ************************************************************************************/
- CHAN_INDEX MID_SIUTIL_OpenTDTEx(LIVE_INPUT_UNIT InputUnit, GL_Queue_t hChanEventQueueHdl);
- /************************************************************************************/
- /**
- * \fn void MID_SIUTIL_FreeTDT(MID_SiutilTdtTot_t **ppTDT)
- *
- * \param ppTDT : pointer to MID_SiutilTdtTot_t which store information of TDT
- *
- * \return none
- *
- ************************************************************************************/
- void MID_SIUTIL_FreeTDT(MID_SiutilTdtTot_t **ppTDT);
- /************************************************************************************/
- /**
- * \fn MID_SiutilTdtTot_t* MID_SIUTIL_ParseTDT(CHAN_INDEX chn_index, UINT8 *p_desc, INT16 descLen)
- *
- * \param chn_index : index of channel handle which is mapped TDT
- * \param p_desc : pointer to descriptor array
- * \param descLen : length of descriptor array
- *
- * \return the structure which store information of TDT
- *
- ************************************************************************************/
- MID_SiutilTdtTot_t* MID_SIUTIL_ParseTDT(CHAN_INDEX chn_index, UINT8 *p_desc, INT16 descLen);
- /************************************************************************************/
- /**
- * \fn MID_SiutilTdtTot_t* MID_SIUTIL_ParseTDTEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit, UINT8 *p_desc, INT16 descLen)
- *
- * \param chn_index : index of channel handle which is mapped TDT
- * \param InputUnit : primary or secondary demux
- * \param p_desc : pointer to descriptor array
- * \param descLen : length of descriptor array
- *
- * \return the structure which store information of TDT
- *
- ************************************************************************************/
- MID_SiutilTdtTot_t* MID_SIUTIL_ParseTDTEx(CHAN_INDEX chn_index,LIVE_INPUT_UNIT InputUnit, UINT8 *p_desc, INT16 descLen);
- CHAN_INDEX MID_SIUTIL_OpenBAT(GL_Queue_t hChanEventQueueHdl, UINT16 u16BouquetId); //100705 cw.huang modified
- MID_SiutilBatInfo_t *MID_SIUTIL_ParseBAT(CHAN_INDEX chn_index,
- UINT8 *p_batDesc,
- INT16 bat_descLen,
- UINT16 *p_tranID,
- INT16 tranID_len,
- UINT8 *p_transDesc,
- INT16 trans_descLen);
- void MID_SIUTIL_FreeBAT(MID_SiutilBatInfo_t **ppBAT);
- #ifdef CONFIG_SUPPORT_FAST_SCANNING
- //=============================FNT related========================
- #define FNT_LEN 10
- typedef struct _mid_siutil_fnt_t
- {
- UINT8 table_id :8; /**<\brief 0xBC*/
- UINT8 section_length_hi :4;
- UINT8 :3;
- UINT8 section_syntax_indicator :1;
- UINT8 section_length_lo :8;
- UINT8 operator_network_id_hi :8;
- UINT8 operator_network_id_lo :8;
- UINT8 current_next_indicator :1;
- UINT8 version_number :5;
- UINT8 :2;
- UINT8 section_number :8;
- UINT8 last_section_number :8;
- UINT8 network_descriptor_length_hi :4; /**<\brief network_descriptor_length high bit*/
- UINT8 reserved :4; /**<\brief reserved*/
- UINT8 network_descriptor_length_lo :8; /**<\brief network_descriptor_length low bit*/
- } MID_SiutilFnt_t, *LP_MID_SiutilFnt_t;
- #define FNT_TS_LEN 6 /**<\brief FNT_TS_LEN*/
- /**
- * \brief FNT TS structure
- */
- typedef struct _mid_siutil_fnt_ts_t
- {
- UINT8 transport_stream_id_hi :8; /**<\brief transport_stream_id high bit*/
- UINT8 transport_stream_id_lo :8; /**<\brief transport_stream_id low bit*/
- UINT8 original_network_id_hi :8; /**<\brief original_network_id high bit*/
- UINT8 original_network_id_lo :8; /**<\brief original_network_id low bit*/
- UINT8 transport_descriptors_length_hi :4; /**<\brief transport_descriptors_length high bit*/
- UINT8 reserved :4; /**<\brief reserved*/
- UINT8 transport_descriptors_length_lo :8; /**<\brief transport_descriptors_length low bit*/
- }MID_SiutilFntTs_t, *LP_MID_SiutilFntTs_t;/**<\brief LP_MID_SiutilFntTs_t*/
- /**
- * \brief FNT TS descriptor structure
- */
- typedef struct _mid_siutil_fnt_ts_desc_t
- {
- UINT16 trans_id; /**<\brief transport_stream_id */
- UINT16 original_network_id; /**<\brief original_network_id */
- UINT16 trans_descLen; /**<\brief descriptor length */
- UINT8 *p_transDescr; /**<\brief pointer to descriptors */
- }MID_SiutilFntTsDescr_t, *LP_MID_SiutilFntTsDescr_t;/**<\brief LP_MID_SiutilFntTsDescr_t*/
- /**
- * \brief FNT info structure
- */
- typedef struct _mid_siutil_fnt_info_t
- {
- UINT16 operator_network_id; /**<\brief operator_network_id */
- UINT8 version_number; /**<\brief version_number */
- UINT16 descLen; /**<\brief network descriptor length */
- UINT8 *p_descr; /**<\brief pointer to descriptor */
- /* transport streams */
- UINT16 trans_count; /**<\brief trans_count */
- MID_SiutilFntTsDescr_t *p_trans; /**<\brief p_trans */
- }MID_SiutilFntInfo_t, *LP_MID_SiutilFntInfo_t; /**<\brief LP_MID_SiutilFntInfo_t */
- //=============================FST related========================
- #define FST_LEN 8
- /**
- * \brief FST structure
- */
- typedef struct _mid_siutil_fst_t
- {
- UINT8 table_id :8; /**<\brief 0xBD*/
- UINT8 section_length_hi :4; /**<\brief section_length high bit */
- UINT8 :2;
- UINT8 dummy :1; /**<\brief has to be 0 */
- UINT8 section_syntax_indicator :1; /**<\brief section_syntax_indicator*/
- UINT8 section_length_lo :8; /**<\brief section_length low bit */
- UINT8 operator_network_id_hi :8; /**<\brief operator_network_id low bit */
- UINT8 operator_network_id_lo :8; /**<\brief operator_network_id high bit */
- UINT8 current_next_indicator :1; /**<\brief current_next_indicator*/
- UINT8 version_number :5; /**<\brief version_number*/
- UINT8 :2;
- UINT8 section_number :8; /**<\brief section_number*/
- UINT8 last_section_number :8; /**<\brief last_section_number*/
- }MID_SiutilFst_t, *LP_MID_SiutilFst_t;
- #define FST_SRV_LEN 18 /**<\brief information length of each service in FST*/
- /**
- * \brief SIUTIL FST service structure
- */
- typedef struct _mid_siutil_fst_srv_t
- {
- UINT8 original_network_id_hi :8; /**<\brief original_network_id high bit*/
- UINT8 original_network_id_lo :8; /**<\brief original_network_id low bit*/
- UINT8 transport_stream_id_hi :8; /**<\brief transport_stream_id high bit*/
- UINT8 transport_stream_id_lo :8; /**<\brief transport_stream_id low bit*/
- UINT8 service_id_hi :8; /**<\brief service_id high bit*/
- UINT8 service_id_lo :8; /**<\brief service_id low bit*/
- UINT8 default_video_pid_hi :8; /**<\brief default_video_pid high bit*/
- UINT8 default_video_pid_lo :8; /**<\brief default_video_pid low bit*/
- UINT8 default_audio_pid_hi :8; /**<\brief default_audio_pid high bit*/
- UINT8 default_audio_pid_lo :8; /**<\brief default_audio_pid low bit*/
- UINT8 default_video_ecm_pid_hi :8; /**<\brief default_video_ecm_pid high bit*/
- UINT8 default_video_ecm_pid_lo :8; /**<\brief default_video_ecm_pid low bit*/
- UINT8 default_audio_ecm_pid_hi :8; /**<\brief default_audio_ecm_pid high bit*/
- UINT8 default_audio_ecm_pid_lo :8; /**<\brief default_audio_ecm_pid low bit*/
- UINT8 default_pcr_pid_hi :8; /**<\brief default_pcr_pid high bit*/
- UINT8 default_pcr_pid_lo :8; /**<\brief default_pcr_pid low bit*/
- UINT8 descriptors_loop_length_hi :4; /**<\brief descriptors_loop_length high bit */
- UINT8 reserved :4; /**<\brief reserved */
- UINT8 descriptors_loop_length_lo :8; /**<\brief descriptors_loop_length low bit */
- }MID_SiutilFstSrv_t, *LP_MID_SiutilFstSrv_t;
- /**
- * \brief one program service_descr structure in FST
- */
- typedef struct _mid_siutil_fst_service_descr_t
- {
- MID_SiutilFstSrv_t fst_service;/**<\brief fst_service */
- UINT16 descLen;/**<\brief descLen */
- UINT8 *p_descr;/**<\brief p_descr */
- }MID_SiutilFstServiceDescr_t, *LP_MID_SiutilFstServiceDescr_t; /**<\brief LP_MID_SiutilFstServiceDescr_t*/
- /**
- * \brief one program info_t structure in FST
- */
- typedef struct _mid_siutil_fst_info_t
- {
- UINT16 operator_network_id;
- UINT8 version_number;/**<\brief version_number */
- UINT16 services_count;/**<\brief services_count */
- MID_SiutilFstServiceDescr_t *p_fst_descr_t; /**<\brief p_sdt_descr_t */
- }MID_SiutilFstInfo_t, *LP_MID_SiutilFstInfo_t;/**<\brief LP_MID_SiutilFstInfo_t*/
- CHAN_INDEX MID_SIUTIL_OpenFNT(GL_Queue_t hChanEventQueueHdl, UINT16 u16Pid);
- CHAN_INDEX MID_SIUTIL_OpenFNTEx( LIVE_INPUT_UNIT InputUnit, GL_Queue_t hChanEventQueueHdl, UINT16 u16Pid);
- void MID_SIUTIL_FreeFNT(MID_SiutilFntInfo_t ** ppFNT);
- MID_SiutilFntInfo_t *MID_SIUTIL_ParseFNTEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit, UINT8 * p_netDesc, INT16 net_descLen, UINT16 * p_tranID,
- INT16 tranID_len, UINT8 * p_transDesc, INT16 trans_descLen, UINT16 u16Pid);
- MID_SiutilFntInfo_t *MID_SIUTIL_ParseFNT(CHAN_INDEX chn_index, UINT8 * p_netDesc, INT16 net_descLen, UINT16 * p_tranID,
- INT16 tranID_len, UINT8 * p_transDesc, INT16 trans_descLen, UINT16 u16Pid);
- CHAN_INDEX MID_SIUTIL_OpenFST(GL_Queue_t hChanEventQueueHdl, UINT16 u16Pid);
- CHAN_INDEX MID_SIUTIL_OpenFSTEx( LIVE_INPUT_UNIT InputUnit, GL_Queue_t hChanEventQueueHdl, UINT16 u16Pid);
- void MID_SIUTIL_FreeFST(MID_SiutilFstInfo_t ** ppFST);
- MID_SiutilFstInfo_t *MID_SIUTIL_ParseFSTEx(CHAN_INDEX chn_index, LIVE_INPUT_UNIT InputUnit, UINT8 * p_desc, INT16 descLen, UINT16 u16Pid);
- MID_SiutilFstInfo_t *MID_SIUTIL_ParseFST(CHAN_INDEX chn_index, UINT8 * p_desc, INT16 descLen, UINT16 u16Pid);
- #endif
- #endif /* #ifndef _MID_SIUTIL_DVB_H */
|