descriptor.h 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. /*
  2. * section and descriptor parser
  3. *
  4. * Copyright (C) 2005 Kenneth Aafloy (kenneth@linuxtv.org)
  5. * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net)
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * This library is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this library; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  20. */
  21. #ifndef _UCSI_DVB_DESCRIPTOR_H
  22. #define _UCSI_DVB_DESCRIPTOR_H 1
  23. #ifdef __cplusplus
  24. extern "C"
  25. {
  26. #endif
  27. #include <libucsi/dvb/ac3_descriptor.h>
  28. #include <libucsi/dvb/adaptation_field_data_descriptor.h>
  29. #include <libucsi/dvb/ancillary_data_descriptor.h>
  30. #include <libucsi/dvb/announcement_support_descriptor.h>
  31. #include <libucsi/dvb/application_signalling_descriptor.h>
  32. #include <libucsi/dvb/bouquet_name_descriptor.h>
  33. #include <libucsi/dvb/ca_identifier_descriptor.h>
  34. #include <libucsi/dvb/cable_delivery_descriptor.h>
  35. #include <libucsi/dvb/cell_frequency_link_descriptor.h>
  36. #include <libucsi/dvb/cell_list_descriptor.h>
  37. #include <libucsi/dvb/component_descriptor.h>
  38. #include <libucsi/dvb/content_descriptor.h>
  39. #include <libucsi/dvb/content_identifier_descriptor.h>
  40. #include <libucsi/dvb/country_availability_descriptor.h>
  41. #include <libucsi/dvb/data_broadcast_descriptor.h>
  42. #include <libucsi/dvb/data_broadcast_id_descriptor.h>
  43. #include <libucsi/dvb/default_authority_descriptor.h>
  44. #include <libucsi/dvb/dsng_descriptor.h>
  45. #include <libucsi/dvb/extended_event_descriptor.h>
  46. #include <libucsi/dvb/frequency_list_descriptor.h>
  47. #include <libucsi/dvb/ip_mac_platform_name_descriptor.h>
  48. #include <libucsi/dvb/ip_mac_platform_provider_name_descriptor.h>
  49. #include <libucsi/dvb/ip_mac_stream_location_descriptor.h>
  50. #include <libucsi/dvb/linkage_descriptor.h>
  51. #include <libucsi/dvb/local_time_offset_descriptor.h>
  52. #include <libucsi/dvb/mosaic_descriptor.h>
  53. #include <libucsi/dvb/multilingual_bouquet_name_descriptor.h>
  54. #include <libucsi/dvb/multilingual_component_descriptor.h>
  55. #include <libucsi/dvb/multilingual_network_name_descriptor.h>
  56. #include <libucsi/dvb/multilingual_service_name_descriptor.h>
  57. #include <libucsi/dvb/network_name_descriptor.h>
  58. #include <libucsi/dvb/nvod_reference_descriptor.h>
  59. #include <libucsi/dvb/parental_rating_descriptor.h>
  60. #include <libucsi/dvb/partial_transport_stream_descriptor.h>
  61. #include <libucsi/dvb/pdc_descriptor.h>
  62. #include <libucsi/dvb/private_data_specifier_descriptor.h>
  63. #include <libucsi/dvb/related_content_descriptor.h>
  64. #include <libucsi/dvb/satellite_delivery_descriptor.h>
  65. #include <libucsi/dvb/s2_satellite_delivery_descriptor.h>
  66. #include <libucsi/dvb/scrambling_descriptor.h>
  67. #include <libucsi/dvb/service_availability_descriptor.h>
  68. #include <libucsi/dvb/service_descriptor.h>
  69. #include <libucsi/dvb/service_identifier_descriptor.h>
  70. #include <libucsi/dvb/service_list_descriptor.h>
  71. #include <libucsi/dvb/service_move_descriptor.h>
  72. #include <libucsi/dvb/short_event_descriptor.h>
  73. #include <libucsi/dvb/short_smoothing_buffer_descriptor.h>
  74. #include <libucsi/dvb/stream_identifier_descriptor.h>
  75. #include <libucsi/dvb/stuffing_descriptor.h>
  76. #include <libucsi/dvb/subtitling_descriptor.h>
  77. #include <libucsi/dvb/target_ip_address_descriptor.h>
  78. #include <libucsi/dvb/target_ipv6_address_descriptor.h>
  79. #include <libucsi/dvb/target_ip_slash_descriptor.h>
  80. #include <libucsi/dvb/target_ip_source_slash_descriptor.h>
  81. #include <libucsi/dvb/target_ipv6_slash_descriptor.h>
  82. #include <libucsi/dvb/target_ipv6_source_slash_descriptor.h>
  83. #include <libucsi/dvb/telephone_descriptor.h>
  84. #include <libucsi/dvb/teletext_descriptor.h>
  85. #include <libucsi/dvb/terrestrial_delivery_descriptor.h>
  86. #include <libucsi/dvb/time_shifted_event_descriptor.h>
  87. #include <libucsi/dvb/time_shifted_service_descriptor.h>
  88. #include <libucsi/dvb/time_slice_fec_identifier_descriptor.h>
  89. #include <libucsi/dvb/transport_stream_descriptor.h>
  90. #include <libucsi/dvb/tva_id_descriptor.h>
  91. #include <libucsi/dvb/vbi_data_descriptor.h>
  92. #include <libucsi/dvb/vbi_teletext_descriptor.h>
  93. #include <libucsi/endianops.h>
  94. /**
  95. * The following are disabled because support is incomplete just now.
  96. */
  97. /*
  98. #include <libucsi/dvb/rnt_rar_over_dvb_stream_descriptor.h>
  99. #include <libucsi/dvb/rnt_rar_over_ip_descriptor.h>
  100. #include <libucsi/dvb/rnt_rnt_scan_descriptor.h>
  101. #include <libucsi/dvb/ait_application_descriptor.h>
  102. #include <libucsi/dvb/ait_application_name_descriptor.h>
  103. #include <libucsi/dvb/ait_external_application_authorisation_descriptor.h>
  104. #include <libucsi/dvb/ait_application_icons_descriptor.h>
  105. */
  106. /**
  107. * The following are not implemented just now
  108. */
  109. /*
  110. #include <libucsi/dvb/ait_transport_protocol_descriptor.h>
  111. #include <libucsi/dvb/ait_dvb_j_application_descriptor.h>
  112. #include <libucsi/dvb/ait_dvb_j_application_location_descriptor.h>
  113. #include <libucsi/dvb/ait_dvb_html_application_descriptor.h>
  114. #include <libucsi/dvb/ait_dvb_html_application_location_descriptor.h>
  115. #include <libucsi/dvb/ait_dvb_html_application_boundary_descriptor.h>
  116. #include <libucsi/dvb/ait_prefetch_descriptor.h>
  117. #include <libucsi/dvb/ait_dii_location_descriptor.h>
  118. #include <libucsi/dvb/ait_ip_signalling_descriptor.h>
  119. */
  120. /**
  121. * Enumeration of DVB descriptor tags.
  122. */
  123. enum dvb_descriptor_tag {
  124. dtag_dvb_network_name = 0x40,
  125. dtag_dvb_service_list = 0x41,
  126. dtag_dvb_stuffing = 0x42,
  127. dtag_dvb_satellite_delivery_system = 0x43,
  128. dtag_dvb_cable_delivery_system = 0x44,
  129. dtag_dvb_vbi_data = 0x45,
  130. dtag_dvb_vbi_teletext = 0x46,
  131. dtag_dvb_bouquet_name = 0x47,
  132. dtag_dvb_service = 0x48,
  133. dtag_dvb_country_availability = 0x49,
  134. dtag_dvb_linkage = 0x4a,
  135. dtag_dvb_nvod_reference = 0x4b,
  136. dtag_dvb_time_shifted_service = 0x4c,
  137. dtag_dvb_short_event = 0x4d,
  138. dtag_dvb_extended_event = 0x4e,
  139. dtag_dvb_time_shifted_event = 0x4f,
  140. dtag_dvb_component = 0x50,
  141. dtag_dvb_mosaic = 0x51,
  142. dtag_dvb_stream_identifier = 0x52,
  143. dtag_dvb_ca_identifier = 0x53,
  144. dtag_dvb_content = 0x54,
  145. dtag_dvb_parental_rating = 0x55,
  146. dtag_dvb_teletext = 0x56,
  147. dtag_dvb_telephone = 0x57,
  148. dtag_dvb_local_time_offset = 0x58,
  149. dtag_dvb_subtitling = 0x59,
  150. dtag_dvb_terrestial_delivery_system = 0x5a,
  151. dtag_dvb_multilingual_network_name = 0x5b,
  152. dtag_dvb_multilingual_bouquet_name = 0x5c,
  153. dtag_dvb_multilingual_service_name = 0x5d,
  154. dtag_dvb_multilingual_component = 0x5e,
  155. dtag_dvb_private_data_specifier = 0x5f,
  156. dtag_dvb_service_move = 0x60,
  157. dtag_dvb_short_smoothing_buffer = 0x61,
  158. dtag_dvb_frequency_list = 0x62,
  159. dtag_dvb_partial_transport_stream = 0x63,
  160. dtag_dvb_data_broadcast = 0x64,
  161. dtag_dvb_scrambling = 0x65,
  162. dtag_dvb_data_broadcast_id = 0x66,
  163. dtag_dvb_transport_stream = 0x67,
  164. dtag_dvb_dsng = 0x68,
  165. dtag_dvb_pdc = 0x69,
  166. dtag_dvb_ac3 = 0x6a,
  167. dtag_dvb_ancillary_data = 0x6b,
  168. dtag_dvb_cell_list = 0x6c,
  169. dtag_dvb_cell_frequency_link = 0x6d,
  170. dtag_dvb_announcement_support = 0x6e,
  171. dtag_dvb_application_signalling = 0x6f,
  172. dtag_dvb_adaptation_field_data = 0x70,
  173. dtag_dvb_service_identifier = 0x71,
  174. dtag_dvb_service_availability = 0x72,
  175. dtag_dvb_default_authority = 0x73,
  176. dtag_dvb_related_content = 0x74,
  177. dtag_dvb_tva_id = 0x75,
  178. dtag_dvb_content_identifier = 0x76,
  179. dtag_dvb_time_slice_fec_identifier = 0x77,
  180. dtag_dvb_ecm_repetition_rate = 0x78,
  181. dtag_dvb_s2_satellite_delivery_descriptor= 0x79,
  182. dtag_dvb_enhanced_ac3_descriptor = 0x7a,
  183. dtag_dvb_dts_descriptor = 0x7b,
  184. dtag_dvb_aac_descriptor = 0x7c,
  185. dtag_dvb_extension_descriptor = 0x7f,
  186. /* descriptors which may only appear in an RNT */
  187. dtag_dvb_rnt_rar_over_dvb_stream = 0x40,
  188. dtag_dvb_rnt_rar_over_ip = 0x41,
  189. dtag_dvb_rnt_rnt_scan = 0x42,
  190. /* descriptors which may only appear in an AIT */
  191. dtag_dvb_ait_application = 0x00,
  192. dtag_dvb_ait_application_name = 0x01,
  193. dtag_dvb_ait_transport_protocol = 0x02,
  194. dtag_dvb_ait_dvb_j_application = 0x03,
  195. dtag_dvb_ait_dvb_j_application_location = 0x04,
  196. dtag_dvb_ait_external_application_authorisation = 0x05,
  197. dtag_dvb_ait_dvb_html_application = 0x08,
  198. dtag_dvb_ait_dvb_html_application_location = 0x09,
  199. dtab_dvb_ait_dvb_html_application_boundary = 0x0a,
  200. dtag_dvb_ait_application_icons = 0x0b,
  201. dtag_dvb_ait_prefetch = 0x0c,
  202. dtag_dvb_ait_dii_location = 0x0d,
  203. dtag_dvb_ait_ip_signalling = 0x11,
  204. /* descriptors which may only appear in INT */
  205. dtag_dvb_target_ip_address = 0x09,
  206. dtag_dvb_target_ipv6_address = 0x0a,
  207. dtag_dvb_ip_mac_platform_name = 0x0c,
  208. dtag_dvb_ip_mac_platform_provider_name = 0x0d,
  209. dtag_dvb_target_ip_slash = 0x0f,
  210. dtag_dvb_target_ip_source_slash = 0x10,
  211. dtag_dvb_target_ipv6_slash = 0x11,
  212. dtag_dvb_target_ipv6_source_slash = 0x12,
  213. dtag_dvb_ip_mac_stream_location = 0x13,
  214. };
  215. #ifdef __cplusplus
  216. }
  217. #endif
  218. #endif