#ifndef _SCTE_SI_H_ #define _SCTE_SI_H_ #ifndef DST_ATSC_PSIP_H #include "dsthalPsiAtscPsip.h" #endif #ifndef _DSTHALERROR_H_ #include "dsthalerror.h" #endif #ifdef __cplusplus extern "C" { #endif /* * SI Section syntax macro definitions */ #define SECTION_NIT_SUBTYPE 6 /*Network Info Table - table_subtype*/ #define SECTION_NIT_SUBTYPE_MASK 0x00ff /*NIT table_subtype mask*/ #define SECTION_SVCT_SUBTYPE 4 /*Shortform Virtual Channel Table - table_subtype*/ #define SECTION_SVCT_SUBTYPE_MASK 0x00ff /*SVCT table_subtype mask*/ typedef enum { ver_cds , ver_mms , ver_vcm , ver_icm , ver_sns , ver_dcm }SI_table_version_k; /*in the Network Information Table...*/ typedef enum { st_CDS = 0x01, st_MMS }SI_nit_subtype_k; /*in the CDS...*/ typedef enum { fu_10Khz = 0x00, fu_125Khz = 0x01 }SI_frequency_unit_k; /*in the MMS...*/ typedef enum { icm_rate_5_11_coding = 0x00, icm_rate_1_2_coding = 0x01, /*reserved*/ icm_rate_3_5_coding = 0x03, /*reserved*/ icm_rate_2_3_coding = 0x05, /*reserved*/ icm_rate_3_4_coding = 0x07, icm_rate_4_5_coding = 0x08, icm_rate_5_6_coding = 0x09, /*reserved*/ icm_rate_7_8_coding = 0x0B, /*reserved 12-14*/ icm_rate_none = 0x0f /*indicates the waveform does not use concaternated coding*/ }SI_inner_coding_mode_k; /*in the MMS...*/ typedef enum{ mf_unknown = 0, /*The modulation format is unknown.*/ mf_QPSK = 1, /*The modulation format is Quadrature Phase Shift Keying.*/ mf_BPSK = 2, /*The modulation format is Binary Phase Shift Keying.*/ mf_OQPSK = 3, /*The modulation format is offset QPSK.*/ mf_VSB8 = 4, /*The modulation format is 8-level Vestigial Sideband.*/ mf_VSB16 = 5, /*The modulation format is 16-level Vstigial Sideband.*/ mf_QAM16 = 6, /*Modulation format 16-level Quadrature Amplitude Modulation(QAM).*/ mf_QAM32 = 7, /*32-level QAM*/ mf_QAM64 = 8, /*64-level QAM*/ mf_QAM80 = 9, /*80-level QAM*/ mf_QAM96 = 10, /*96-level QAM*/ mf_QAM112 = 11, /*112-level QAM*/ mf_QAM128 = 12, /*128-level QAM*/ mf_QAM160 = 13, /*160-level QAM*/ mf_QAM192 = 14, /*192-level QAM*/ mf_QAM224 = 15, /*224-level QAM*/ mf_QAM256 = 16, /*256-level QAM*/ mf_QAM320 = 17, /*320-level QAM*/ mf_QAM384 = 18, /*384-level QAM*/ mf_QAM448 = 19, /*448-level QAM*/ mf_QAM512 = 20, /*512-level QAM*/ mf_QAM640 = 21, /*640-level QAM*/ mf_QAM768 = 22, /*768-level QAM*/ mf_QAM896 = 23, /*896-level QAM*/ mf_QAM1024 = 24, /*1024-level QAM*/ }SI_modulation_format_k; typedef struct generalDescriptor { DS_U8 descriptor_tag; DS_U8 descriptor_length; DS_U8* descriptor_data; } generalDescriptor_t , *generalDescriptorPtr_t; /*define a set of carrier frequencies.*/ typedef struct CarrierDefinitionSubtable { DS_U8 number_of_carriers; /*8bits*/ DS_U8 spacing_unit; /*1bit */ /*zero : 1bit*/ DS_U16 frequency_spacing; /*14bits*/ DS_U8 frequency_unit; /*1bit */ DS_U16 first_carrier_frequency;/*15bits*/ DS_U8 descriptors_count; generalDescriptor_t *descriptor_structure; // DS_U8 *descriptor; } CDS_t , *CDSPtr_t; typedef struct ModulationModeSubtable { DS_U8 transmission_system; /*4bits*/ SI_inner_coding_mode_k inner_coding_mode; /*4bits*/ DS_U8 split_bitstream_mode; /*1bit*/ /*zero : 2bits*/ SI_modulation_format_k modulation_format; /*5bits*/ /*zero : 4bits*/ DS_U32 symbol_rate; /*28bits*/ DS_U8 descriptors_count; generalDescriptor_t *descriptor_structure; // DS_U8 *descriptor; } MMS_t , *MMSPtr_t; typedef struct NetworkInfoTableSection { /*½ÇÁ¦·Ð ¾øÁö¸¸, °ü¸®»ó ÆíÀǸ¦ À§Çؼ­ Ãß°¡ ÇÑ´Ù.... ÀÌ Á¤º¸´Â Revision Detection Descriptor(if exists)·ÎºÎÅÍ °¡Á® ¿Â´Ù.*/ DS_U8 table_version_number; /*5bits*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ /******************************************************************/ DS_U8 protocol_version; /*5bits*/ DS_U8 first_index; /*8bits*/ DS_U8 number_of_records; /*8bits*/ DS_U8 transmission_medium; /*4bits*/ SI_nit_subtype_k table_subtype; /*4bits*/ CDS_t * CDSs; MMS_t * MMSs; DS_U8 descriptors_length; /*8bits*/ DS_U8 *descriptor; DS_U32 CRC32; } nitSection_t , *nitSectionPtr_t; typedef struct NetworkInfoTable { DS_U8 table_version_number; DS_U8 protocol_version; /*5bits*/ DS_U8 first_index; /*8bits*/ DS_U8 number_of_records; /*8bits*/ DS_U8 transmission_medium; /*4bits*/ SI_nit_subtype_k table_subtype; /*4bits*/ CDS_t * CDSs; MMS_t * MMSs; DS_U8 descriptors_length; /*8bits*/ DS_U8 *descriptor; DS_U32 CRC32; } nit_t , *nitPtr_t; /*in the Network Text Table...*/ typedef enum { st_SNS = 0x06 /*source name subtable*/ }SI_ntt_subtype_k; typedef struct SnsRecord { DS_U8 application_type; /*1bit*/ /*zero : 7bits*/ DS_U16 application_ID; /*16bits*/ DS_U16 source_ID; /*16bits*/ DS_U8 name_length; /*8bits*/ DS_U8 *source_name; DS_U8 SNS_descriptors_count; /*8bits*/ generalDescriptor_t *descriptor_structure; } snsRecord_t, *snsRecordPtr_t; typedef struct NetworkTextTableSection { /*½ÇÁ¦·Ð ¾øÁö¸¸, °ü¸®»ó ÆíÀǸ¦ À§Çؼ­ Ãß°¡ ÇÑ´Ù.... ÀÌ Á¤º¸´Â Revision Detection Descriptor(if exists)·ÎºÎÅÍ °¡Á® ¿Â´Ù.*/ DS_U8 table_version_number; /*5bits*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ /******************************************************************/ DS_U8 protocol_version; /*5bits*/ DS_U32 ISO_639_language_code; /*24bits*/ DS_U8 transmission_medium; /*4bits*/ SI_ntt_subtype_k table_subtype; /*4bits*/ DS_U8 number_of_SNS_records; /*8bits*/ snsRecord_t *SNS_records; DS_U8 descriptors_length; DS_U8 *descriptor; DS_U32 CRC32; } nttSection_t , *nttSectionPtr_t; typedef struct NetworkTextTable { DS_U8 table_version_number; DS_U8 protocol_version; /*5bits*/ DS_U32 ISO_639_language_code; /*24bits*/ DS_U8 transmission_medium; /*4bits*/ SI_ntt_subtype_k table_subtype; /*4bits*/ DS_U8 number_of_SNS_records; /*8bits*/ snsRecord_t *SNS_records; DS_U8 descriptors_length; DS_U8 *descriptor; DS_U32 CRC32; } ntt_t , *nttPtr_t; typedef enum { st_VCM = 0x00, /*Virtual Channel Map*/ st_DCM = 0x01, /*Defined Channel Map*/ st_ICM = 0x02 /*Inverse Channel Map*/ } SI_svct_subtype_k; typedef enum{ ps_path_1 = 0x00, ps_path_2 = 0x01 } SI_svct_pathselect_k; typedef enum{ tt_MPEG2_transport = 0x00, tt_non_MPEG2_transport = 0x01 } SI_svct_transporttype_k; typedef enum { ct_normal = 0x00, /*indicates that the record is a regular virtual channel record.*/ ct_hidden = 0x01 /*indicated that the record identifies a virtual channel that may not be accessed by the user by direct entry of the channel number.*/ } SI_svct_channeltype_k; typedef enum { vs_NTSC = 0x00, vs_PAL625 = 0x01, vs_PAL525 = 0x02, vs_SECAM = 0x03, vs_MAC = 0x04 } SI_svct_videostandard_k; typedef struct DcmData { DS_U8 range_defined; /*1bit*/ DS_U8 channels_count; /*7bits*/ } dcm_data_t , *dcm_dataPtr_t; typedef struct DefinedChannelMap { DS_U16 first_virtual_channel; /*12bits*/ DS_U8 DCM_data_length; /*7bits*/ dcm_data_t * DCM_data; } DCM_t, *DCMPtr_t; typedef struct VirtualChannel { DS_U16 virtual_channel_number; /*12bits*/ DS_U8 application_virtual_channel;/*1bit*/ /*zero : 1bit */ SI_svct_pathselect_k path_select; /*1bit*/ SI_svct_transporttype_k transport_type; /*1bit*/ SI_svct_channeltype_k channel_type; /*4bits*/ /*if application_virtual_channel*/ DS_U16 application_ID; /*16bits*/ /*esle*/ DS_U16 source_ID; /*16bits*/ /*if transport == MEPG_2*/ DS_U8 CDS_reference; /*8bits : range 1-255*/ DS_U16 program_number; /*16bits*/ DS_U8 MMS_reference; /*8bits : range 1-255*/ /*else : non-MPEG_2*/ DS_U8 scrambled; /*1bit*/ /*zero : 3bits*/ SI_svct_videostandard_k video_standard; /*4bits*/ DS_U8 descriptors_count; /*8bits*/ generalDescriptor_t *descriptor_structure; // DS_U8 *descriptor; } virtualChannel_t , *virtualChannelPtr_t; typedef struct VirtualChannelMap { DS_U8 descriptors_included; /*1bit*/ /*zero : 5bits*/ DS_U8 splice; /*1bit*/ /*zero : 7bits*/ DS_U32 activation_time; /*32bits*/ DS_U8 number_of_VC_records; /*8bits*/ virtualChannel_t *virtual_channel; } VCM_t , *VCMPtr_t; typedef struct icmRecord { DS_U16 source_ID; /*16bits*/ /*zero : 4bits*/ DS_U16 virtual_channel_number; /*12bits*/ } icmRecord_t , *icmRecordPtr_t; typedef struct InverseChannelMap { DS_U16 first_map_index; /*12bits*/ /*zero : 1bit*/ DS_U8 record_count; /*7bits*/ icmRecord_t * icmRecords; } ICM_t , *ICMPtr_t; typedef struct ShortformVirtualChannelTableSection { /*½ÇÁ¦·Ð ¾øÁö¸¸, °ü¸®»ó ÆíÀǸ¦ À§Çؼ­ Ãß°¡ ÇÑ´Ù.... ÀÌ Á¤º¸´Â Revision Detection Descriptor(if exists)·ÎºÎÅÍ °¡Á® ¿Â´Ù.*/ DS_U8 table_version_number; /*5bits*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ /******************************************************************/ DS_U8 protocol_version; /*5bits*/ DS_U8 transmission_medium; /*4bits*/ SI_svct_subtype_k table_subtype; /*4bits*/ DS_U16 VCT_ID; /*16bits*/ DCM_t *DCM; VCM_t *VCM; ICM_t *ICM; DS_U8 descriptors_length; DS_U8 *descriptor; DS_U32 CRC32; /*descriptors*/ } svctSection_t , *svctSectionPtr_t; typedef struct ShortformVirtualChannelTable { DS_U8 table_version_number; DS_U8 protocol_version; /*5bits*/ DS_U8 transmission_medium; /*4bits*/ SI_svct_subtype_k table_subtype; /*4bits*/ DS_U16 VCT_ID; /*16bits*/ DCM_t *DCM; VCM_t *VCM; ICM_t *ICM; DS_U8 descriptors_length; DS_U8 *descriptor; DS_U32 CRC32; }svct_t , *svctPtr_t; /*in the mgt*/ typedef enum { tt_lf_VCT_cni_1 = 0x02, /*Long-form Virtual Channel Table with current_next_indicator = 1.*/ tt_lf_VCT_cni_0 = 0x03, /*Long-form Virtual Channel Table with current_next_indicator = 0.*/ tt_sf_VCT_vcm = 0x10, /*Short-form Virtual Channel Table with--VCM Subtype.*/ tt_sf_VCT_dcm = 0x11, /*Short-form Virtual Channel Table with--DCM Subtype.*/ tt_sf_VCT_icm = 0x12, /*Short-form Virtual Channel Table with--ICM subtype.*/ tt_NIT_cds = 0x20, /*Network Information Table-CDS Table Subtype.*/ tt_NIT_mms = 0x21, /*Network Information Table-MMS Table Subtype.*/ tt_NTT = 0x30, /*Network Text Table--SNS Subtype*/ /*rrt is defined in ATSC....*/ tt_AEIT_0 = 0x1000, /*Aggregate Event Information Table with MGT_tag 0.*/ tt_AEIT_255 = 0x10FF, /*Aggregate Event Information Table with MGT_tag 255.*/ tt_AETT_0 = 0x1100, /*Aggregate Extended Text Table with MGT_tag 0.*/ tt_AETT_255 = 0x11FF, /*Aggregate Extended Text Table with MGT_tag 255.*/ } SI_table_type_k; /*in the NIT, NTT , SVCT...*/ typedef struct revisionDetectionDescriptor { DS_U8 table_version_number; /*5bits*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ } revisionDetectionDescriptor_t , *revisionDetectionDescriptorPtr_t; /*in the virtual_channel() record, contained in the VCM_structure.*/ typedef struct twoPartChannelNumberDescriptor { DS_U16 major_channel_number; /*10 bits : 0~999*/ DS_U16 minor_channel_number; /*10 bits : 0~999*/ } twoPartChannelNumberDescriptor_t , *twoPartChannelNumberDescriptorPtr_t; /*in the virtual_channel() record, contained in the VCM_structure.*/ typedef struct channelPropertiesDescriptor { DS_U16 channel_TSID; /*16 bits*/ DS_U8 out_of_band_channel; /*1 bit*/ DS_U8 access_controlled; /*1 bit*/ DS_U8 hide_guide; /*1 bit*/ DS_U8 service_type; /*6 bits*/ } channelPropertiesDescriptor_t , *channelPropertiesDescriptorPtr_t; typedef struct daylightSavingsTimeDescriptor { DS_U8 DS_status; /*1bit*/ DS_U8 DS_day_of_month;/*5bits*/ DS_U8 DS_hour; /*8bits*/ } daylightSavingsTimeDescriptor_t , *daylightSavingsTimeDescriptorPtr_t; typedef enum { tid_network_information_table = 0xC2, tid_network_text_table = 0xC3, tid_shortform_virtual_channel_table = 0xC4, tid_si_master_guide_table = 0xc7, /*same with MGT*/ tid_si_system_time_table = 0xC5, tid_lf_virtual_channel_table = 0xC9, /*It is same with CVCT*/ tid_si_rating_region_table = 0xCA, /*same with RRT*/ tid_aggregate_event_information_table = 0xD6, tid_aggregate_extended_text_table = 0xD7, tid_cable_emergency_alert_message = 0xD8 } SI_table_id_k; typedef struct systemTimeTableSection { DS_U8 protocol_version; /*5bits*/ DS_U32 system_time; /*32bits*/ DS_U8 GPS_UTC_offset; /*8bits*/ DS_U8 descriptors_length; /*no bits*/ DS_U8 *descriptor; /*variable*/ } SI_sttSection_t , * SI_sttSectionPtr_t; typedef struct siEvent { DS_U16 event_ID; /*14bits*/ DS_U32 start_time; /*32bits*/ DS_U8 ETM_present; /*2bits*/ DS_U32 duration; /*32bits*/ DS_U8 title_length; /*8bits*/ DS_U8 *title_text; DS_U16 descriptors_length; /*12bits*/ DS_U8 *descriptor; } SI_event_t , *SI_eventPtr_t; typedef struct siEventInformationTableSection { DS_U16 source_ID; /*16bits*/ DS_U8 num_events; /*8bits*/ SI_eventPtr_t events; } SI_eitSection_t , *SI_eitSectionPtr_t; typedef struct aggregateEventInformationTableSection { DS_U8 AEIT_subtype; /*8bits*/ DS_U8 MGT_tag; /*8bits*/ DS_U8 version_number; /*5bits*/ DS_U8 current_next_indicator; /*1bit*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ DS_U8 num_sources_in_section; /*8bits*/ SI_eitSectionPtr_t eits; DS_U32 CRC32; } aeitSection_t , *aeitSectionPtr_t; typedef struct aggregateEventInformationTable { DS_U8 AEIT_subtype; /*8bits*/ DS_U8 MGT_tag; /*8bits*/ DS_U8 version_number; /*5bits*/ DS_U8 num_sources; SI_eitSectionPtr_t eits; DS_U32 CRC32; } aeit_t , *aeitPtr_t; typedef struct siExtendedTextTableSection { DS_U32 ETM_ID; DS_U16 extended_text_length; DS_U8 *extended_text_message; } SI_ettSection_t , *SI_ettSectionPtr_t; typedef struct aggregageExtendedTextTableSection { DS_U8 AETT_subtype; /*8bits*/ DS_U8 MGT_tag; /*8bits*/ DS_U8 version_number; /*5bits*/ DS_U8 current_next_indicator; /*1bit*/ DS_U8 section_number; /*8bits*/ DS_U8 last_section_number; /*8bits*/ DS_U8 num_blocks_in_section; /*8bits*/ DS_U32 CRC32; SI_ettSectionPtr_t etts; } aettSection_t , *aettSectionPtr_t; typedef struct aggregateExtendedTextTable { DS_U8 AETT_subtype; /*8bits*/ DS_U8 MGT_tag; /*8bits*/ DS_U8 version_number; /*8bits*/ DS_U8 num_blocks; SI_ettSectionPtr_t etts; DS_U32 CRC32; } aett_t , *aettPtr_t; /*SI descriptor tag*/ #define Revision_Detection_Descriptor_tag 0x93 #define Two_Part_Channel_Number_Descriptor_tag 0x94 #define Channel_Properties_Descriptor_tag 0x95 #define Daylight_Savings_Time_Descriptor_tag 0x96 DHL_RESULT DHL_PSI_ParseAett(DS_U8 **sectionArr, aettPtr_t *aettPtr); DHL_RESULT DHL_PSI_ParseAettSection(DS_U8 *section, aettSectionPtr_t *aettSectionPtr); void DHL_PSI_FreeSISection (void *sectionPtr); DHL_RESULT DHL_PSI_MonitorNit ( PSIMode siMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorNit_Ex ( SI_nit_subtype_k subType , PSIMode siMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorNtt ( PSIMode siMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE* psiCtl); DHL_RESULT DHL_PSI_MonitorNtt_Ex ( SI_ntt_subtype_k subType , PSIMode siMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorSvct ( PSIMode siMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorSvct_Ex ( SI_nit_subtype_k subType , PSIMode psiMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *returnPSICtl); DHL_RESULT DHL_PSI_MonitorSiStt ( PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorSiMgt ( PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorLvct( PSIMode psiMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorAeit ( DS_U32 pid , PSIMode psiMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorAett ( DS_U32 pid , PSIMode psiMode, PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_MonitorSiRrt ( DS_U8 region , PSIUpdateMode updateMode, PSIEventProc_f eventProc, DS_U32 userParam, DHL_TBL_HANDLE *psiCtl); DHL_RESULT DHL_PSI_GetSiSttSection ( SI_sttSectionPtr_t *sttSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetSiMgtSection ( mgtSectionPtr_t *mgtSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetSiRrtSection (DS_U8 region , rrtSectionPtr_t *rrtSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetNitSection ( nitSectionPtr_t *nitSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetNttSection ( nttSectionPtr_t *nttSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetLvct ( cvctPtr_t *lvctSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetSvctSection ( svctSectionPtr_t *svctSectPtr, int timeOut); DHL_RESULT DHL_PSI_ParseRevisionDetectionDescriptor (DS_U8* p, revisionDetectionDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseTwoPartChannelNumberDescriptor (DS_U8* p, twoPartChannelNumberDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseChannelPropertiesDescriptor (DS_U8* p, channelPropertiesDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseDaylightSavingsTimeDescriptor (DS_U8* p, daylightSavingsTimeDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_GetSvctSection_Ex ( SI_svct_subtype_k subType , svctSectionPtr_t *svctSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetNitSection_Ex ( SI_nit_subtype_k subType , nitSectionPtr_t *nitSectPtr, int timeOut); DHL_RESULT DHL_PSI_GetNttSection_Ex ( SI_ntt_subtype_k subType , nttSectionPtr_t *nttSectPtr, int timeOut); void DHL_PSI_GetInfoFromRevisionDetectionDescriptor (DS_U8 *pDescriptorDump , int iDescriptorLength , DS_U8* sectionNumber , DS_U8* lastSectionNumber , DS_U8* versionNumber ); DHL_RESULT DHL_PSI_ParseNtt ( DS_U8 **sectionArr ,nttPtr_t *nttPtr ); DHL_RESULT DHL_PSI_ParseNit ( DS_U8 **sectionArr, nitPtr_t *nitPtr ); DHL_RESULT DHL_PSI_ParseSvct (DS_U8 **sectionArr , svctPtr_t *svctPtr); DHL_RESULT DHL_PSI_ParseNitSection (DS_U8 *section, nitSectionPtr_t *nitSectPtr ); DHL_RESULT DHL_PSI_ParseNttSection (DS_U8 *section, nttSectionPtr_t *nttSectionPtr); DHL_RESULT DHL_PSI_ParseSvctSection (DS_U8 *section, svctSectionPtr_t *svctSectPtr ); DHL_RESULT DHL_PSI_ParseSiSttSection (DS_U8 *section, SI_sttSectionPtr_t *sttSectionPtr); DHL_RESULT DHL_PSI_ParseAett(DS_U8 **sectionArr, aettPtr_t *aettPtr); DHL_RESULT DHL_PSI_ParseAettSection(DS_U8 *section, aettSectionPtr_t *aettSectionPtr); DHL_RESULT DHL_PSI_ParseAeitSection(DS_U8 *section, aeitSectionPtr_t *aeitSectionPtr); DHL_RESULT DHL_PSI_ParseAeit(DS_U8 **sectionArr, aeitPtr_t *aeitPtr); void DHL_PSI_ParseMultipleTextString( unsigned char *pInText , unsigned int iInSize , unsigned char **pOutText , unsigned int *iOutSize , unsigned char* nMode ); void DHL_PSI_FreeSISection (void *sectionPtr); void DHL_PSI_FreeSITable (void *tablePtr); void DHL_PSI_FreeSIDescriptor ( void *descriptorPtr ); DHL_RESULT DHL_PSI_ParseRevisionDetectionDescriptor (DS_U8* p, revisionDetectionDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseTwoPartChannelNumberDescriptor (DS_U8* p, twoPartChannelNumberDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseChannelPropertiesDescriptor (DS_U8* p, channelPropertiesDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseDaylightSavingsTimeDescriptor (DS_U8* p, daylightSavingsTimeDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseTwoPartChannelNumberDescriptor_Ex (generalDescriptorPtr_t genDescPtr , twoPartChannelNumberDescriptorPtr_t *descripPtr); DHL_RESULT DHL_PSI_ParseChannelPropertiesDescriptor_Ex ( generalDescriptorPtr_t genDescPtr , channelPropertiesDescriptorPtr_t *descripPtr); void DHL_PSI_PrintNit( nitPtr_t pNit ); void DHL_PSI_PrintNitSection( nitSectionPtr_t pNit ); void DHL_PSI_PrintVCM ( VCMPtr_t pvcm ); void DHL_PSI_PrintDCM( DCMPtr_t pDcm ); void DHL_PSI_PrintICM( ICMPtr_t pIcm ); void DHL_PSI_PrintSvct ( svctPtr_t pSvct ); void DHL_PSI_PrintSvctSection ( svctSectionPtr_t pSvct ); void DHL_PSI_PrintSiSttSection( SI_sttSectionPtr_t pSiStt ); void DHL_PSI_PrintNtt( nttPtr_t pNttSect ); void DHL_PSI_PrintNttSection( nttSectionPtr_t pNttSect ); void DHL_PSI_PrintAeit ( aeitPtr_t pAeit ); void DHL_PSI_PrintAett( aettPtr_t pAett ); void DHL_PSI_PrintRevisionDetectionDescriptor ( revisionDetectionDescriptorPtr_t pRDD ); void DHL_PSI_PrintTwoPartChannelNumberDescriptor( twoPartChannelNumberDescriptorPtr_t pTPCN ); void DHL_PSI_PrintChannelPropertiesDescriptor ( channelPropertiesDescriptorPtr_t pCPD ); void DHL_PSI_PrintSiMgtSection ( mgtSectionPtr_t mgtSectPtr ); #ifdef __cplusplus } #endif #endif //#ifndef _SCTE_SI_H_