17 #ifndef LIBSI_HEADERS_H
18 #define LIBSI_HEADERS_H
24 typedef unsigned char u_char;
26 struct SectionHeader {
28 #if BYTE_ORDER == BIG_ENDIAN
40 struct ExtendedSectionHeader {
42 #if BYTE_ORDER == BIG_ENDIAN
54 #if BYTE_ORDER == BIG_ENDIAN
67 struct DescriptorHeader {
93 #if BYTE_ORDER == BIG_ENDIAN
107 #if BYTE_ORDER == BIG_ENDIAN
120 #define PAT_PROG_LEN 4
125 #if BYTE_ORDER == BIG_ENDIAN
150 #if BYTE_ORDER == BIG_ENDIAN
164 #if BYTE_ORDER == BIG_ENDIAN
191 #if BYTE_ORDER == BIG_ENDIAN
205 #if BYTE_ORDER == BIG_ENDIAN
216 #if BYTE_ORDER == BIG_ENDIAN
224 #if BYTE_ORDER == BIG_ENDIAN
235 #define PMT_INFO_LEN 5
239 #if BYTE_ORDER == BIG_ENDIAN
247 #if BYTE_ORDER == BIG_ENDIAN
272 #if BYTE_ORDER == BIG_ENDIAN
286 #if BYTE_ORDER == BIG_ENDIAN
313 #if BYTE_ORDER == BIG_ENDIAN
325 #if BYTE_ORDER == BIG_ENDIAN
336 #if BYTE_ORDER == BIG_ENDIAN
347 #define SIZE_NIT_MID 2
350 #if BYTE_ORDER == BIG_ENDIAN
360 #define SIZE_NIT_END 4
373 #if BYTE_ORDER == BIG_ENDIAN
415 #if BYTE_ORDER == BIG_ENDIAN
427 #if BYTE_ORDER == BIG_ENDIAN
443 #define GetSDTTransportStreamId(x) (HILO(((sdt_t *) x)->transport_stream_id))
444 #define GetSDTOriginalNetworkId(x) (HILO(((sdt_t *) x)->original_network_id))
446 #define SDT_DESCR_LEN 5
451 #if BYTE_ORDER == BIG_ENDIAN
484 #if BYTE_ORDER == BIG_ENDIAN
496 #if BYTE_ORDER == BIG_ENDIAN
515 #define EIT_EVENT_LEN 12
528 #if BYTE_ORDER == BIG_ENDIAN
552 #if BYTE_ORDER == BIG_ENDIAN
573 #if BYTE_ORDER == BIG_ENDIAN
596 #if BYTE_ORDER == BIG_ENDIAN
626 #if BYTE_ORDER == BIG_ENDIAN
641 #if BYTE_ORDER == BIG_ENDIAN
695 #if BYTE_ORDER == BIG_ENDIAN
707 #if BYTE_ORDER == BIG_ENDIAN
718 #if BYTE_ORDER == BIG_ENDIAN
728 #define SIZE_AIT_MID 2
731 #if BYTE_ORDER == BIG_ENDIAN
741 #define SIZE_AIT_END 4
747 #define AIT_APP_LEN 9
761 #if BYTE_ORDER == BIG_ENDIAN
778 #if BYTE_ORDER == BIG_ENDIAN
792 #if BYTE_ORDER == BIG_ENDIAN
813 #if BYTE_ORDER == BIG_ENDIAN
842 #define DESCR_GEN_LEN 2
848 #define GetDescriptorTag(x) (((descr_gen_t *) x)->descriptor_tag)
849 #define GetDescriptorLength(x) (((descr_gen_t *) x)->descriptor_length+DESCR_GEN_LEN)
853 #define DESCR_CA_LEN 6
859 #if BYTE_ORDER == BIG_ENDIAN
871 #define DESCR_ISO_639_LANGUAGE_LEN 5
872 struct descr_iso_639_language {
877 struct descr_iso_639_language_loop {
886 #define DESCR_CAROUSEL_IDENTIFIER_LEN 7
887 struct descr_carousel_identifier {
900 #define DESCR_NETWORK_NAME_LEN 2
901 struct descr_network_name {
908 #define DESCR_SERVICE_LIST_LEN 2
909 struct descr_service_list {
914 #define DESCR_SERVICE_LIST_LOOP_LEN 3
915 struct descr_service_list_loop {
923 #define DESCR_STUFFING_LEN XX
924 struct descr_stuffing {
932 #define DESCR_SATELLITE_DELIVERY_SYSTEM_LEN 13
933 struct descr_satellite_delivery_system {
942 #if BYTE_ORDER == BIG_ENDIAN
958 #if BYTE_ORDER == BIG_ENDIAN
969 #define DESCR_CABLE_DELIVERY_SYSTEM_LEN 13
970 struct descr_cable_delivery_system {
978 #if BYTE_ORDER == BIG_ENDIAN
989 #if BYTE_ORDER == BIG_ENDIAN
1000 #define DESCR_VBI_DATA_LEN XX
1001 struct descr_vbi_data {
1009 #define DESCR_VBI_TELETEXT_LEN XX
1010 struct descr_vbi_teletext {
1018 #define DESCR_BOUQUET_NAME_LEN 2
1019 struct descr_bouquet_name {
1026 #define DESCR_SERVICE_LEN 4
1027 struct descr_service {
1034 struct descr_service_mid {
1040 #define DESCR_COUNTRY_AVAILABILITY_LEN 3
1041 struct descr_country_availability {
1044 #if BYTE_ORDER == BIG_ENDIAN
1055 #define DESCR_LINKAGE_LEN 9
1056 struct descr_linkage {
1068 #define DESCR_LINKAGE_8_LEN 3
1069 struct descr_linkage_8 {
1070 #if BYTE_ORDER == BIG_ENDIAN
1085 #define DESCR_NVOD_REFERENCE_LEN 2
1086 struct descr_nvod_reference {
1091 #define ITEM_NVOD_REFERENCE_LEN 6
1092 struct item_nvod_reference {
1103 #define DESCR_TIME_SHIFTED_SERVICE_LEN 4
1104 struct descr_time_shifted_service {
1113 #define DESCR_SHORT_EVENT_LEN 6
1114 struct descr_short_event {
1123 struct descr_short_event_mid {
1129 #define DESCR_EXTENDED_EVENT_LEN 7
1130 struct descr_extended_event {
1134 #if BYTE_ORDER == BIG_ENDIAN
1147 struct descr_extended_event_mid {
1151 #define ITEM_EXTENDED_EVENT_LEN 1
1152 struct item_extended_event {
1156 struct item_extended_event_mid {
1162 #define DESCR_TIME_SHIFTED_EVENT_LEN 6
1163 struct descr_time_shifted_event {
1174 #define DESCR_COMPONENT_LEN 8
1175 struct descr_component {
1178 #if BYTE_ORDER == BIG_ENDIAN
1194 #define DESCR_MOSAIC_LEN XX
1195 struct descr_mosaic {
1203 #define DESCR_STREAM_IDENTIFIER_LEN 3
1204 struct descr_stream_identifier {
1212 #define DESCR_CA_IDENTIFIER_LEN 2
1213 struct descr_ca_identifier {
1220 #define DESCR_CONTENT_LEN 2
1221 struct descr_content {
1226 struct nibble_content {
1227 #if BYTE_ORDER == BIG_ENDIAN
1234 #if BYTE_ORDER == BIG_ENDIAN
1245 #define DESCR_PARENTAL_RATING_LEN 2
1246 struct descr_parental_rating {
1251 #define PARENTAL_RATING_LEN 4
1252 struct parental_rating {
1261 #define DESCR_TELETEXT_LEN 2
1262 struct descr_teletext {
1267 #define ITEM_TELETEXT_LEN 5
1268 struct item_teletext {
1272 #if BYTE_ORDER == BIG_ENDIAN
1284 #define DESCR_TELEPHONE_LEN XX
1285 struct descr_telephone {
1293 #define DESCR_LOCAL_TIME_OFFSET_LEN 2
1294 struct descr_local_time_offset {
1299 #define LOCAL_TIME_OFFSET_ENTRY_LEN 15
1300 struct local_time_offset_entry {
1304 #if BYTE_ORDER == BIG_ENDIAN
1326 #define DESCR_SUBTITLING_LEN 2
1327 struct descr_subtitling {
1332 #define ITEM_SUBTITLING_LEN 8
1333 struct item_subtitling {
1346 #define DESCR_TERRESTRIAL_DELIVERY_SYSTEM_LEN XX
1347 struct descr_terrestrial_delivery {
1354 #if BYTE_ORDER == BIG_ENDIAN
1367 #if BYTE_ORDER == BIG_ENDIAN
1376 #if BYTE_ORDER == BIG_ENDIAN
1395 #define DESCR_MULTILINGUAL_NETWORK_NAME_LEN XX
1396 struct descr_multilingual_network_name {
1401 struct entry_multilingual_name {
1410 #define DESCR_MULTILINGUAL_BOUQUET_NAME_LEN XX
1411 struct descr_multilingual_bouquet_name {
1418 #define DESCR_MULTILINGUAL_SERVICE_NAME_LEN XX
1419 struct descr_multilingual_service_name {
1424 struct entry_multilingual_service_name_mid {
1430 #define DESCR_MULTILINGUAL_COMPONENT_LEN XX
1431 struct descr_multilingual_component {
1439 #define DESCR_PRIVATE_DATA_SPECIFIER_LEN XX
1440 struct descr_private_data_specifier {
1451 #define DESCR_SERVICE_MOVE_LEN XX
1452 struct descr_service_move {
1465 #define DESCR_SHORT_SMOOTHING_BUFFER_LEN XX
1466 struct descr_short_smoothing_buffer {
1474 #define DESCR_FREQUENCY_LIST_LEN XX
1475 struct descr_frequency_list {
1478 #if BYTE_ORDER == BIG_ENDIAN
1489 #define DESCR_PARTIAL_TRANSPORT_STREAM_LEN XX
1490 struct descr_partial_transport_stream {
1498 #define DESCR_DATA_BROADCAST_LEN XX
1499 struct descr_data_broadcast {
1507 #define DESCR_SCRAMBLING_LEN XX
1508 struct descr_scrambling {
1516 #define DESCR_DATA_BROADCAST_ID_LEN XX
1517 struct descr_data_broadcast_id {
1525 #define DESCR_TRANSPORT_STREAM_LEN XX
1526 struct descr_transport_stream {
1534 #define DESCR_DSNG_LEN XX
1543 #define DESCR_PDC_LEN 5
1554 #define DESCR_AC3_LEN 3
1558 #if BYTE_ORDER == BIG_ENDIAN
1579 #define DESCR_ANCILLARY_DATA_LEN 3
1580 struct descr_ancillary_data {
1588 #define DESCR_CELL_LIST_LEN XX
1589 struct descr_cell_list {
1597 #define DESCR_CELL_FREQUENCY_LINK_LEN XX
1598 struct descr_cell_frequency_link {
1606 #define DESCR_ANNOUNCEMENT_SUPPORT_LEN XX
1607 struct descr_announcement_support {
1615 #define DESCR_APPLICATION_SIGNALLING_LEN 2
1616 struct descr_application_signalling {
1621 #define APPLICATION_SIGNALLING_ENTRY_LEN 3
1622 struct application_signalling_entry {
1625 #if BYTE_ORDER == BIG_ENDIAN
1636 struct descr_service_identifier {
1643 struct descr_service_availbility {
1646 #if BYTE_ORDER == BIG_ENDIAN
1657 struct descr_default_authority {
1664 struct descr_related_content {
1671 struct descr_tva_id {
1678 struct descr_content_identifier {
1683 struct content_identifier_entry {
1684 #if BYTE_ORDER == BIG_ENDIAN
1703 struct descr_time_slice_fec_identifier {
1706 #if BYTE_ORDER == BIG_ENDIAN
1718 #if BYTE_ORDER == BIG_ENDIAN
1729 struct descr_ecm_repetition_rate {
1740 struct descr_s2_satellite_delivery_system {
1743 #if BYTE_ORDER == BIG_ENDIAN
1756 struct descr_scrambling_sequence_selector {
1757 #if BYTE_ORDER == BIG_ENDIAN
1770 struct descr_enhanced_ac3 {
1773 #if BYTE_ORDER == BIG_ENDIAN
1799 #if BYTE_ORDER == BIG_ENDIAN
1826 #if BYTE_ORDER == BIG_ENDIAN
1836 struct descr_extension {
1844 struct descr_t2_delivery_system {
1851 #if BYTE_ORDER == BIG_ENDIAN
1875 #define DESCR_APPLICATION_LEN 3
1877 struct descr_application {
1883 #define DESCR_APPLICATION_END_LEN 2
1885 struct descr_application_end {
1886 #if BYTE_ORDER == BIG_ENDIAN
1899 #define APPLICATION_PROFILE_ENTRY_LEN 5
1901 struct application_profile_entry {
1911 #define DESCR_APPLICATION_NAME_LEN 2
1913 struct descr_application_name {
1918 #define APPLICATION_NAME_ENTRY_LEN 4
1920 struct descr_application_name_entry {
1930 #define DESCR_TRANSPORT_PROTOCOL_LEN 5
1932 struct descr_transport_protocol {
1941 struct descr_url_extension_entry {
1946 #define TRANSPORT_VIA_OC_LEN 1
1948 struct transport_via_oc {
1949 #if BYTE_ORDER == BIG_ENDIAN
1961 #define TRANSPORT_VIA_OC_REMOTE_END_LEN 7
1963 struct transport_via_oc_remote_end {
1973 #define TRANSPORT_VIA_OC_END_LEN 1
1975 struct transport_via_oc_end {
1979 #define TRANSPORT_VIA_HTTP_LEN 1
1981 struct transport_via_http {
1987 #define DESCR_DVBJ_APPLICATION_LEN 2
1989 struct descr_dvbj_application {
1994 #define DESCR_DVBJ_APPLICATION_ENTRY_LEN 1
1996 struct descr_dvbj_application_entry {
2003 #define DESCR_DVBJ_APPLICATION_LOCATION_LEN 3
2005 struct descr_dvbj_application_location {
2012 #define DESCR_DVBJ_APPLICATION_LOCATION_MID_LEN 1
2014 struct descr_dvbj_application_location_mid {
2020 #define DESCR_APPLICATION_ICONS_LEN 3
2022 struct descr_application_icons_descriptor {
2029 #define DESCR_APPLICATION_ICONS_END_LEN 2
2031 struct descr_application_icons_descriptor_end {
2038 #define DESCR_SIMPLE_APPLICATION_LOCATION_LEN 3
2040 struct descr_simple_application_location_descriptor {
2050 #define DESCR_PREMIERE_CONTENT_TRANSMISSION_LEN 8
2052 struct descr_premiere_content_transmission {
2063 #define ITEM_PREMIERE_CONTENT_TRANSMISSION_DAY_LEN 3
2065 struct item_premiere_content_transmission_day {
2071 #define ITEM_PREMIERE_CONTENT_TRANSMISSION_TIME_LEN 3
2073 struct item_premiere_content_transmission_time {
2081 #define DESCR_REGISTRATION_LEN 6
2082 struct descr_registration {
2093 #endif //LIBSI_HEADERS_H