descriptors.h File Reference
Digital TV table parsing

Provides a way to handle MPEG-TS descriptors found on Digital TV streams. More...

`#include <unistd.h>`
`#include <stdint.h>`
`#include <arpa/inet.h>`

Go to the source code of this file.

## Data Structures

struct | dvb_desc
| Linked list containing the several descriptors found on a MPEG-TS table. More...
struct | dvb_descriptor
| Contains the parser information for the MPEG-TS parser code. More...

## Macros

#define | DVB_MAX_PAYLOAD_PACKET_SIZE
| Maximum size of a table session to be parsed.
#define | DVB_CRC_SIZE
| number of bytes for the descriptor's CRC check
#define | TS_Information_descriptior

## Typedefs

typedef void(* | dvb_table_init_func) (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, void **table)
| Function prototype for a function that initializes the descriptors parsing on a table.
typedef int(* | dvb_desc_init_func) (struct dvb_v5_fe_parms *parms, const uint8_t *buf, struct dvb_desc *desc)
| Function prototype for the descriptors parsing init code.
typedef void(* | dvb_desc_print_func) (struct dvb_v5_fe_parms *parms, const struct dvb_desc *desc)
| Function prototype for the descriptors parsing print code.
typedef void(* | dvb_desc_free_func) (struct dvb_desc *desc)
| Function prototype for the descriptors memory free code.

## Enumerations

enum

descriptors {
video_stream_descriptor , audio_stream_descriptor , hierarchy_descriptor , registration_descriptor ,
ds_alignment_descriptor , target_background_grid_descriptor , video_window_descriptor , conditional_access_descriptor ,
iso639_language_descriptor , system_clock_descriptor , multiplex_buffer_utilization_descriptor , copyright_descriptor ,
maximum_bitrate_descriptor , private_data_indicator_descriptor , smoothing_buffer_descriptor , std_descriptor ,
ibp_descriptor , mpeg4_video_descriptor , mpeg4_audio_descriptor , iod_descriptor ,
sl_descriptor , fmc_descriptor , external_es_id_descriptor , muxcode_descriptor ,
fmxbuffersize_descriptor , multiplexbuffer_descriptor , content_labeling_descriptor , metadata_pointer_descriptor ,
metadata_descriptor , metadata_std_descriptor , AVC_video_descriptor , ipmp_descriptor ,
AVC_timing_and_HRD_descriptor , mpeg2_aac_audio_descriptor , flexmux_timing_descriptor , network_name_descriptor ,
service_list_descriptor , stuffing_descriptor , satellite_delivery_system_descriptor , cable_delivery_system_descriptor ,
VBI_data_descriptor , VBI_teletext_descriptor , bouquet_name_descriptor , service_descriptor ,
country_availability_descriptor , linkage_descriptor , NVOD_reference_descriptor , time_shifted_service_descriptor ,
short_event_descriptor , extended_event_descriptor , time_shifted_event_descriptor , component_descriptor ,
mosaic_descriptor , stream_identifier_descriptor , CA_identifier_descriptor , content_descriptor ,
parental_rating_descriptor , teletext_descriptor , telephone_descriptor , local_time_offset_descriptor ,
subtitling_descriptor , terrestrial_delivery_system_descriptor , multilingual_network_name_descriptor , multilingual_bouquet_name_descriptor ,
multilingual_service_name_descriptor , multilingual_component_descriptor , private_data_specifier_descriptor , service_move_descriptor ,
short_smoothing_buffer_descriptor , frequency_list_descriptor , partial_transport_stream_descriptor , data_broadcast_descriptor ,
scrambling_descriptor , data_broadcast_id_descriptor , transport_stream_descriptor , DSNG_descriptor ,
PDC_descriptor , AC_3_descriptor , ancillary_data_descriptor , cell_list_descriptor ,
cell_frequency_link_descriptor , announcement_support_descriptor , application_signalling_descriptor , adaptation_field_data_descriptor ,
service_identifier_descriptor , service_availability_descriptor , default_authority_descriptor , related_content_descriptor ,
TVA_id_descriptor , content_identifier_descriptor , time_slice_fec_identifier_descriptor , ECM_repetition_rate_descriptor ,
S2_satellite_delivery_system_descriptor , enhanced_AC_3_descriptor , DTS_descriptor , AAC_descriptor ,
XAIT_location_descriptor , FTA_content_management_descriptor , extension_descriptor , CUE_identifier_descriptor ,
extended_channel_name , service_location , component_name_descriptor , logical_channel_number_descriptor ,
carousel_id_descriptor , association_tag_descriptor , deferred_association_tags_descriptor , hierarchical_transmission_descriptor ,
digital_copy_control_descriptor , network_identifier_descriptor , partial_transport_stream_time_descriptor , audio_component_descriptor ,
hyperlink_descriptor , target_area_descriptor , data_contents_descriptor , video_decode_control_descriptor ,
download_content_descriptor , CA_EMM_TS_descriptor , CA_contract_information_descriptor , CA_service_descriptor ,
TS_Information_descriptor , extended_broadcaster_descriptor , logo_transmission_descriptor , basic_local_event_descriptor ,
reference_descriptor , node_relation_descriptor , short_node_information_descriptor , STC_reference_descriptor ,
series_descriptor , event_group_descriptor , SI_parameter_descriptor , broadcaster_Name_Descriptor ,
component_group_descriptor , SI_prime_TS_descriptor , board_information_descriptor , LDT_linkage_descriptor ,
connected_transmission_descriptor , content_availability_descriptor , service_group_descriptor , carousel_compatible_composite_descriptor ,
conditional_playback_descriptor , ISDBT_delivery_system_descriptor , partial_reception_descriptor , emergency_information_descriptor ,
data_component_descriptor , system_management_descriptor , atsc_stuffing_descriptor , atsc_ac3_audio_descriptor ,
atsc_caption_service_descriptor , atsc_content_advisory_descriptor , atsc_extended_channel_descriptor , atsc_service_location_descriptor ,
atsc_time_shifted_service_descriptor , atsc_component_name_descriptor , atsc_DCC_departing_request_descriptor , atsc_DCC_arriving_request_descriptor ,
atsc_redistribution_control_descriptor , atsc_ATSC_private_information_descriptor , atsc_genre_descriptor
}

## Functions

uint32_t | dvb_bcd (uint32_t bcd)
| Converts from BCD to CPU integer internal representation.
void | dvb_hexdump (struct dvb_v5_fe_parms *parms, const char *prefix, const unsigned char *buf, int len)
| dumps data into the logs in hexadecimal format
int | dvb_desc_parse (struct dvb_v5_fe_parms *parms, const uint8_t *buf, uint16_t buflen, struct dvb_desc **head_desc)
| parse MPEG-TS descriptors
void | dvb_desc_free (struct dvb_desc **list)
| frees a dvb_desc linked list
void | dvb_desc_print (struct dvb_v5_fe_parms *parms, struct dvb_desc *desc)
| prints the contents of a struct dvb_desc linked list

## Variables

const dvb_table_init_func | dvb_table_initializers [256]
| Table with all possible descriptors.
const struct dvb_descriptor | dvb_descriptors []
| Contains the parsers for the several descriptors.

## Detailed Description

Provides a way to handle MPEG-TS descriptors found on Digital TV streams.

Copyright
  GNU Lesser General Public License version 2.1 (LGPLv2.1)

Author
  Mauro Carvalho Chehab
  Andre Roth

Relevant specs
  The descriptors herein are defined on the following specs:
  - ISO/IEC 13818-1
  - ETSI EN 300 468 V1.11.1 (2010-04)
  - SCTE 35 2004
  - http://www.etherguidesystems.com/Help/SDOs/ATSC/Semantics/Descriptors/Default.aspx
  - http://www.coolstf.com/tsreader/descriptors.html
  - ABNT NBR 15603-1 2007
  - ATSC A/65:2009 spec

Bug Report
  Please submit bug reports and patches to linux.nosp@m.-med.nosp@m.ia@vg.nosp@m.er.k.nosp@m.ernel.nosp@m..org

Definition in file descriptors.h.

## Macro Definition Documentation

## TS_Information_descriptior

#define TS_Information_descriptior

Definition at line 776 of file descriptors.h.

## Enumeration Type Documentation

## descriptors

enum descriptors

Enumerator
video_stream_descriptor | video_stream descriptor - ISO/IEC 13818-1
audio_stream_descriptor | audio_stream descriptor - ISO/IEC 13818-1
hierarchy_descriptor | hierarchy descriptor - ISO/IEC 13818-1
registration_descriptor | registration descriptor - ISO/IEC 13818-1
ds_alignment_descriptor | ds_alignment descriptor - ISO/IEC 13818-1
target_background_grid_descriptor | target_background_grid descriptor - ISO/IEC 13818-1
video_window_descriptor | video_window descriptor - ISO/IEC 13818-1
conditional_access_descriptor | conditional_access descriptor - ISO/IEC 13818-1
iso639_language_descriptor | iso639_language descriptor - ISO/IEC 13818-1
system_clock_descriptor | system_clock descriptor - ISO/IEC 13818-1
multiplex_buffer_utilization_descriptor | multiplex_buffer_utilization descriptor - ISO/IEC 13818-1
copyright_descriptor | copyright descriptor - ISO/IEC 13818-1
maximum_bitrate_descriptor | maximum_bitrate descriptor - ISO/IEC 13818-1
private_data_indicator_descriptor | private_data_indicator descriptor - ISO/IEC 13818-1
smoothing_buffer_descriptor | smoothing_buffer descriptor - ISO/IEC 13818-1
std_descriptor | std descriptor - ISO/IEC 13818-1
ibp_descriptor | ibp descriptor - ISO/IEC 13818-1
mpeg4_video_descriptor | mpeg4_video descriptor - ISO/IEC 13818-1
mpeg4_audio_descriptor | mpeg4_audio descriptor - ISO/IEC 13818-1
iod_descriptor | iod descriptor - ISO/IEC 13818-1
sl_descriptor | sl descriptor - ISO/IEC 13818-1
fmc_descriptor | fmc descriptor - ISO/IEC 13818-1
external_es_id_descriptor | external_es_id descriptor - ISO/IEC 13818-1
muxcode_descriptor | muxcode descriptor - ISO/IEC 13818-1
fmxbuffersize_descriptor | fmxbuffersize descriptor - ISO/IEC 13818-1
multiplexbuffer_descriptor | multiplexbuffer descriptor - ISO/IEC 13818-1
content_labeling_descriptor | content_labeling descriptor - ISO/IEC 13818-1
metadata_pointer_descriptor | metadata_pointer descriptor - ISO/IEC 13818-1
metadata_descriptor | metadata descriptor - ISO/IEC 13818-1
metadata_std_descriptor | metadata_std descriptor - ISO/IEC 13818-1
AVC_video_descriptor | AVC_video descriptor - ISO/IEC 13818-1.
ipmp_descriptor | ipmp descriptor - ISO/IEC 13818-1
AVC_timing_and_HRD_descriptor | AVC_timing_and_HRD descriptor - ISO/IEC 13818-1.
mpeg2_aac_audio_descriptor | mpeg2_aac_audio descriptor - ISO/IEC 13818-1
flexmux_timing_descriptor | flexmux_timing descriptor - ISO/IEC 13818-1
network_name_descriptor | network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
service_list_descriptor | service_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
stuffing_descriptor | stuffing descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
satellite_delivery_system_descriptor | satellite_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
cable_delivery_system_descriptor | cable_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
VBI_data_descriptor | VBI_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
VBI_teletext_descriptor | VBI_teletext descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
bouquet_name_descriptor | bouquet_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
service_descriptor | service descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
country_availability_descriptor | country_availability descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
linkage_descriptor | linkage descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
NVOD_reference_descriptor | NVOD_reference descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
time_shifted_service_descriptor | time_shifted_service descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
short_event_descriptor | short_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
extended_event_descriptor | extended_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
time_shifted_event_descriptor | time_shifted_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
component_descriptor | component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
mosaic_descriptor | mosaic descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
stream_identifier_descriptor | stream_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
CA_identifier_descriptor | CA_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
content_descriptor | content descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
parental_rating_descriptor | parental_rating descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
teletext_descriptor | teletext descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
telephone_descriptor | telephone descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
local_time_offset_descriptor | local_time_offset descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
subtitling_descriptor | subtitling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
terrestrial_delivery_system_descriptor | terrestrial_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
multilingual_network_name_descriptor | multilingual_network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
multilingual_bouquet_name_descriptor | multilingual_bouquet_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
multilingual_service_name_descriptor | multilingual_service_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
multilingual_component_descriptor | multilingual_component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
private_data_specifier_descriptor | private_data_specifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
service_move_descriptor | service_move descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
short_smoothing_buffer_descriptor | short_smoothing_buffer descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
frequency_list_descriptor | frequency_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
partial_transport_stream_descriptor | partial_transport_stream descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
data_broadcast_descriptor | data_broadcast descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
scrambling_descriptor | scrambling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
data_broadcast_id_descriptor | data_broadcast_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
transport_stream_descriptor | transport_stream descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
DSNG_descriptor | DSNG descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
PDC_descriptor | PDC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
AC_3_descriptor | AC_3 descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
ancillary_data_descriptor | ancillary_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
cell_list_descriptor | cell_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
cell_frequency_link_descriptor | cell_frequency_link descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
announcement_support_descriptor | announcement_support descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
application_signalling_descriptor | application_signalling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
adaptation_field_data_descriptor | adaptation_field_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
service_identifier_descriptor | service_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
service_availability_descriptor | service_availability descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
default_authority_descriptor | default_authority descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
related_content_descriptor | related_content descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
TVA_id_descriptor | TVA_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
content_identifier_descriptor | content_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
time_slice_fec_identifier_descriptor | time_slice_fec_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
ECM_repetition_rate_descriptor | ECM_repetition_rate descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
S2_satellite_delivery_system_descriptor | S2_satellite_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
enhanced_AC_3_descriptor | enhanced_AC_3 descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
DTS_descriptor | DTS descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
AAC_descriptor | AAC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
XAIT_location_descriptor | XAIT_location descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
FTA_content_management_descriptor | FTA_content_management descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
extension_descriptor | extension descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
CUE_identifier_descriptor | CUE_identifier descriptor - SCTE 35 2004.
extended_channel_name | extended_channel_name descriptor - SCTE 35 2004
service_location | service_location descriptor - SCTE 35 2004

component_name_descriptor

component_name descriptor - SCTE 35 2004

See also
  http://www.etherguidesystems.com/Help/SDOs/ATSC/Semantics/Descriptors/Default.aspx

logical_channel_number_descriptor

logical_channel_number descriptor - SCTE 35 2004

See also
  http://www.coolstf.com/tsreader/descriptors.html

carousel_id_descriptor | carousel_id descriptor - ABNT NBR 15603-1 2007
association_tag_descriptor | association_tag descriptor - ABNT NBR 15603-1 2007
deferred_association_tags_descriptor | deferred_association_tags descriptor - ABNT NBR 15603-1 2007
hierarchical_transmission_descriptor | hierarchical_transmission descriptor - ABNT NBR 15603-1 2007
digital_copy_control_descriptor | digital_copy_control descriptor - ABNT NBR 15603-1 2007
network_identifier_descriptor | network_identifier descriptor - ABNT NBR 15603-1 2007
partial_transport_stream_time_descriptor | partial_transport_stream_time descriptor - ABNT NBR 15603-1 2007
audio_component_descriptor | audio_component descriptor - ABNT NBR 15603-1 2007
hyperlink_descriptor | hyperlink descriptor - ABNT NBR 15603-1 2007
target_area_descriptor | target_area descriptor - ABNT NBR 15603-1 2007
data_contents_descriptor | data_contents descriptor - ABNT NBR 15603-1 2007
video_decode_control_descriptor | video_decode_control descriptor - ABNT NBR 15603-1 2007
download_content_descriptor | download_content descriptor - ABNT NBR 15603-1 2007
CA_EMM_TS_descriptor | CA_EMM_TS descriptor - ABNT NBR 15603-1 2007.
CA_contract_information_descriptor | CA_contract_information descriptor - ABNT NBR 15603-1 2007.
CA_service_descriptor | CA_service descriptor - ABNT NBR 15603-1 2007.
TS_Information_descriptor | transport_stream_information descriptor - ABNT NBR 15603-1 2007
extended_broadcaster_descriptor | extended_broadcaster descriptor - ABNT NBR 15603-1 2007
logo_transmission_descriptor | logo_transmission descriptor - ABNT NBR 15603-1 2007
basic_local_event_descriptor | basic_local_event descriptor - ABNT NBR 15603-1 2007
reference_descriptor | reference descriptor - ABNT NBR 15603-1 2007
node_relation_descriptor | node_relation descriptor - ABNT NBR 15603-1 2007
short_node_information_descriptor | short_node_information descriptor - ABNT NBR 15603-1 2007
STC_reference_descriptor | STC_reference descriptor - ABNT NBR 15603-1 2007.
series_descriptor | series descriptor - ABNT NBR 15603-1 2007
event_group_descriptor | event_group descriptor - ABNT NBR 15603-1 2007
SI_parameter_descriptor | SI_parameter descriptor - ABNT NBR 15603-1 2007.
broadcaster_Name_Descriptor | broadcaster_Name descriptor - ABNT NBR 15603-1 2007
component_group_descriptor | component_group descriptor - ABNT NBR 15603-1 2007
SI_prime_TS_descriptor | SI_prime_transport_stream descriptor - ABNT NBR 15603-1 2007.
board_information_descriptor | board_information descriptor - ABNT NBR 15603-1 2007
LDT_linkage_descriptor | LDT_linkage descriptor - ABNT NBR 15603-1 2007.
connected_transmission_descriptor | connected_transmission descriptor - ABNT NBR 15603-1 2007
content_availability_descriptor | content_availability descriptor - ABNT NBR 15603-1 2007
service_group_descriptor | service_group descriptor - ABNT NBR 15603-1 2007
carousel_compatible_composite_descriptor | carousel_compatible_composite descriptor - ABNT NBR 15603-1 2007
conditional_playback_descriptor | conditional_playback descriptor - ABNT NBR 15603-1 2007
ISDBT_delivery_system_descriptor | ISDBT terrestrial_delivery_system descriptor - ABNT NBR 15603-1 2007.
partial_reception_descriptor | partial_reception descriptor - ABNT NBR 15603-1 2007
emergency_information_descriptor | emergency_information descriptor - ABNT NBR 15603-1 2007
data_component_descriptor | data_component descriptor - ABNT NBR 15603-1 2007
system_management_descriptor | system_management descriptor - ABNT NBR 15603-1 2007
atsc_stuffing_descriptor | atsc_stuffing descriptor - ATSC A/65:2009
atsc_ac3_audio_descriptor | atsc_ac3_audio descriptor - ATSC A/65:2009
atsc_caption_service_descriptor | atsc_caption_service descriptor - ATSC A/65:2009
atsc_content_advisory_descriptor | atsc_content_advisory descriptor - ATSC A/65:2009
atsc_extended_channel_descriptor | atsc_extended_channel descriptor - ATSC A/65:2009
atsc_service_location_descriptor | atsc_service_location descriptor - ATSC A/65:2009
atsc_time_shifted_service_descriptor | atsc_time_shifted_service descriptor - ATSC A/65:2009
atsc_component_name_descriptor | atsc_component_name descriptor - ATSC A/65:2009
atsc_DCC_departing_request_descriptor | atsc_DCC_departing_request descriptor - ATSC A/65:2009
atsc_DCC_arriving_request_descriptor | atsc_DCC_arriving_request descriptor - ATSC A/65:2009
atsc_redistribution_control_descriptor | atsc_redistribution_control descriptor - ATSC A/65:2009
atsc_ATSC_private_information_descriptor | atsc_ATSC_private_information descriptor - ATSC A/65:2009
atsc_genre_descriptor | atsc_genre descriptor - ATSC A/65:2009

Definition at line 592 of file descriptors.h.