55#define DVB_MAX_PAYLOAD_PACKET_SIZE 4096
80 const uint8_t *buf, ssize_t buflen,
90#define bswap16(b) do {\
94#define bswap32(b) do {\
99#define DVB_DESC_HEADER() \
102 struct dvb_desc *next
123} __attribute__((packed));
127#define dvb_desc_foreach( _desc, _tbl ) \
128 if (_tbl && _tbl->descriptor) \
129 for( struct dvb_desc *_desc = _tbl->descriptor; _desc; _desc = _desc->next ) \
131#define dvb_desc_find(_struct, _desc, _tbl, _type) \
132 if (_tbl && _tbl->descriptor) \
133 for( _struct *_desc = (_struct *) _tbl->descriptor; _desc; _desc = (_struct *) _desc->next ) \
134 if(_desc->type == _type) \
160 const unsigned char *buf,
int len);
184 uint16_t buflen,
struct dvb_desc **head_desc);
216 const uint8_t *buf,
struct dvb_desc *desc);
776#define TS_Information_descriptior TS_Information_descriptor
@ video_window_descriptor
video_window descriptor - ISO/IEC 13818-1
@ terrestrial_delivery_system_descriptor
terrestrial_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ fmxbuffersize_descriptor
fmxbuffersize descriptor - ISO/IEC 13818-1
@ atsc_time_shifted_service_descriptor
atsc_time_shifted_service descriptor - ATSC A/65:2009
@ cell_frequency_link_descriptor
cell_frequency_link descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ download_content_descriptor
download_content descriptor - ABNT NBR 15603-1 2007
@ FTA_content_management_descriptor
FTA_content_management 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)
@ AVC_video_descriptor
AVC_video descriptor - ISO/IEC 13818-1.
@ content_labeling_descriptor
content_labeling descriptor - ISO/IEC 13818-1
@ muxcode_descriptor
muxcode descriptor - ISO/IEC 13818-1
@ adaptation_field_data_descriptor
adaptation_field_data 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)
@ logical_channel_number_descriptor
logical_channel_number descriptor - SCTE 35 2004
@ short_node_information_descriptor
short_node_information descriptor - ABNT NBR 15603-1 2007
@ AAC_descriptor
AAC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ LDT_linkage_descriptor
LDT_linkage descriptor - ABNT NBR 15603-1 2007.
@ subtitling_descriptor
subtitling 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)
@ metadata_std_descriptor
metadata_std descriptor - ISO/IEC 13818-1
@ reference_descriptor
reference descriptor - ABNT NBR 15603-1 2007
@ telephone_descriptor
telephone descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ maximum_bitrate_descriptor
maximum_bitrate descriptor - ISO/IEC 13818-1
@ network_identifier_descriptor
network_identifier descriptor - ABNT NBR 15603-1 2007
@ atsc_DCC_arriving_request_descriptor
atsc_DCC_arriving_request descriptor - ATSC A/65:2009
@ node_relation_descriptor
node_relation descriptor - ABNT NBR 15603-1 2007
@ multilingual_network_name_descriptor
multilingual_network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ mpeg4_audio_descriptor
mpeg4_audio descriptor - ISO/IEC 13818-1
@ partial_transport_stream_time_descriptor
partial_transport_stream_time descriptor - ABNT NBR 15603-1 2007
@ parental_rating_descriptor
parental_rating descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ series_descriptor
series descriptor - ABNT NBR 15603-1 2007
@ SI_parameter_descriptor
SI_parameter descriptor - ABNT NBR 15603-1 2007.
@ linkage_descriptor
linkage 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)
@ network_name_descriptor
network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ PDC_descriptor
PDC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ hierarchical_transmission_descriptor
hierarchical_transmission descriptor - ABNT NBR 15603-1 2007
@ broadcaster_Name_Descriptor
broadcaster_Name descriptor - ABNT NBR 15603-1 2007
@ data_broadcast_id_descriptor
data_broadcast_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ service_descriptor
service descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ carousel_compatible_composite_descriptor
carousel_compatible_composite descriptor - ABNT NBR 15603-1 2007
@ SI_prime_TS_descriptor
SI_prime_transport_stream descriptor - ABNT NBR 15603-1 2007.
@ country_availability_descriptor
country_availability descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ basic_local_event_descriptor
basic_local_event descriptor - ABNT NBR 15603-1 2007
@ content_descriptor
content 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)
@ teletext_descriptor
teletext 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)
@ bouquet_name_descriptor
bouquet_name 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)
@ video_decode_control_descriptor
video_decode_control descriptor - ABNT NBR 15603-1 2007
@ conditional_playback_descriptor
conditional_playback descriptor - ABNT NBR 15603-1 2007
@ partial_reception_descriptor
partial_reception descriptor - ABNT NBR 15603-1 2007
@ atsc_redistribution_control_descriptor
atsc_redistribution_control descriptor - ATSC A/65:2009
@ ds_alignment_descriptor
ds_alignment descriptor - ISO/IEC 13818-1
@ multilingual_component_descriptor
multilingual_component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ target_background_grid_descriptor
target_background_grid descriptor - ISO/IEC 13818-1
@ service_move_descriptor
service_move descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ logo_transmission_descriptor
logo_transmission descriptor - ABNT NBR 15603-1 2007
@ atsc_genre_descriptor
atsc_genre descriptor - ATSC A/65:2009
@ cable_delivery_system_descriptor
cable_delivery_system 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)
@ DSNG_descriptor
DSNG descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ component_name_descriptor
component_name descriptor - SCTE 35 2004
@ flexmux_timing_descriptor
flexmux_timing descriptor - ISO/IEC 13818-1
@ enhanced_AC_3_descriptor
enhanced_AC_3 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)
@ ibp_descriptor
ibp descriptor - ISO/IEC 13818-1
@ deferred_association_tags_descriptor
deferred_association_tags descriptor - ABNT NBR 15603-1 2007
@ atsc_ATSC_private_information_descriptor
atsc_ATSC_private_information descriptor - ATSC A/65:2009
@ hyperlink_descriptor
hyperlink descriptor - ABNT NBR 15603-1 2007
@ external_es_id_descriptor
external_es_id descriptor - ISO/IEC 13818-1
@ S2_satellite_delivery_system_descriptor
S2_satellite_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ mosaic_descriptor
mosaic descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ DTS_descriptor
DTS 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)
@ transport_stream_descriptor
transport_stream descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ system_clock_descriptor
system_clock descriptor - ISO/IEC 13818-1
@ NVOD_reference_descriptor
NVOD_reference descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ extension_descriptor
extension descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ sl_descriptor
sl descriptor - ISO/IEC 13818-1
@ CA_service_descriptor
CA_service descriptor - ABNT NBR 15603-1 2007.
@ atsc_content_advisory_descriptor
atsc_content_advisory descriptor - ATSC A/65:2009
@ atsc_caption_service_descriptor
atsc_caption_service descriptor - ATSC A/65:2009
@ event_group_descriptor
event_group descriptor - ABNT NBR 15603-1 2007
@ atsc_component_name_descriptor
atsc_component_name descriptor - ATSC A/65:2009
@ multiplexbuffer_descriptor
multiplexbuffer descriptor - ISO/IEC 13818-1
@ conditional_access_descriptor
conditional_access descriptor - ISO/IEC 13818-1
@ AC_3_descriptor
AC_3 descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ copyright_descriptor
copyright descriptor - ISO/IEC 13818-1
@ CA_EMM_TS_descriptor
CA_EMM_TS descriptor - ABNT NBR 15603-1 2007.
@ multiplex_buffer_utilization_descriptor
multiplex_buffer_utilization descriptor - ISO/IEC 13818-1
@ video_stream_descriptor
video_stream descriptor - ISO/IEC 13818-1
@ stream_identifier_descriptor
stream_identifier 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)
@ audio_component_descriptor
audio_component descriptor - ABNT NBR 15603-1 2007
@ std_descriptor
std descriptor - ISO/IEC 13818-1
@ service_group_descriptor
service_group descriptor - ABNT NBR 15603-1 2007
@ CUE_identifier_descriptor
CUE_identifier descriptor - SCTE 35 2004.
@ registration_descriptor
registration descriptor - ISO/IEC 13818-1
@ ancillary_data_descriptor
ancillary_data 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)
@ atsc_stuffing_descriptor
atsc_stuffing descriptor - ATSC A/65:2009
@ audio_stream_descriptor
audio_stream descriptor - ISO/IEC 13818-1
@ data_contents_descriptor
data_contents descriptor - ABNT NBR 15603-1 2007
@ ipmp_descriptor
ipmp descriptor - ISO/IEC 13818-1
@ service_identifier_descriptor
service_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ hierarchy_descriptor
hierarchy descriptor - ISO/IEC 13818-1
@ AVC_timing_and_HRD_descriptor
AVC_timing_and_HRD descriptor - ISO/IEC 13818-1.
@ target_area_descriptor
target_area descriptor - ABNT NBR 15603-1 2007
@ association_tag_descriptor
association_tag descriptor - ABNT NBR 15603-1 2007
@ atsc_ac3_audio_descriptor
atsc_ac3_audio descriptor - ATSC A/65:2009
@ scrambling_descriptor
scrambling 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)
@ mpeg2_aac_audio_descriptor
mpeg2_aac_audio descriptor - ISO/IEC 13818-1
@ connected_transmission_descriptor
connected_transmission descriptor - ABNT NBR 15603-1 2007
@ atsc_extended_channel_descriptor
atsc_extended_channel descriptor - ATSC A/65:2009
@ time_shifted_service_descriptor
time_shifted_service 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)
@ service_location
service_location descriptor - SCTE 35 2004
@ content_identifier_descriptor
content_identifier 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)
@ metadata_descriptor
metadata descriptor - ISO/IEC 13818-1
@ component_descriptor
component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ content_availability_descriptor
content_availability descriptor - ABNT NBR 15603-1 2007
@ mpeg4_video_descriptor
mpeg4_video descriptor - ISO/IEC 13818-1
@ short_event_descriptor
short_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ iso639_language_descriptor
iso639_language descriptor - ISO/IEC 13818-1
@ stuffing_descriptor
stuffing descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ CA_contract_information_descriptor
CA_contract_information descriptor - ABNT NBR 15603-1 2007.
@ system_management_descriptor
system_management descriptor - ABNT NBR 15603-1 2007
@ emergency_information_descriptor
emergency_information descriptor - ABNT NBR 15603-1 2007
@ metadata_pointer_descriptor
metadata_pointer descriptor - ISO/IEC 13818-1
@ digital_copy_control_descriptor
digital_copy_control descriptor - ABNT NBR 15603-1 2007
@ atsc_DCC_departing_request_descriptor
atsc_DCC_departing_request descriptor - ATSC A/65:2009
@ atsc_service_location_descriptor
atsc_service_location descriptor - ATSC A/65:2009
@ time_shifted_event_descriptor
time_shifted_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ extended_broadcaster_descriptor
extended_broadcaster descriptor - ABNT NBR 15603-1 2007
@ smoothing_buffer_descriptor
smoothing_buffer descriptor - ISO/IEC 13818-1
@ cell_list_descriptor
cell_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ board_information_descriptor
board_information descriptor - ABNT NBR 15603-1 2007
@ private_data_indicator_descriptor
private_data_indicator descriptor - ISO/IEC 13818-1
@ fmc_descriptor
fmc descriptor - ISO/IEC 13818-1
@ application_signalling_descriptor
application_signalling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ data_component_descriptor
data_component descriptor - ABNT NBR 15603-1 2007
@ VBI_data_descriptor
VBI_data 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)
@ extended_channel_name
extended_channel_name descriptor - SCTE 35 2004
@ component_group_descriptor
component_group descriptor - ABNT NBR 15603-1 2007
@ STC_reference_descriptor
STC_reference descriptor - ABNT NBR 15603-1 2007.
@ short_smoothing_buffer_descriptor
short_smoothing_buffer descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ TS_Information_descriptor
transport_stream_information descriptor - ABNT NBR 15603-1 2007
@ ECM_repetition_rate_descriptor
ECM_repetition_rate 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)
@ carousel_id_descriptor
carousel_id descriptor - ABNT NBR 15603-1 2007
@ iod_descriptor
iod descriptor - ISO/IEC 13818-1
@ TVA_id_descriptor
TVA_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
@ ISDBT_delivery_system_descriptor
ISDBT terrestrial_delivery_system descriptor - ABNT NBR 15603-1 2007.
@ private_data_specifier_descriptor
private_data_specifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
void dvb_desc_free(struct dvb_desc **list)
frees a dvb_desc linked list
void(* dvb_desc_free_func)(struct dvb_desc *desc)
Function prototype for the descriptors memory free code.
descriptors
List containing all descriptors used by Digital TV MPEG-TS.
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
void dvb_desc_print(struct dvb_v5_fe_parms *parms, struct dvb_desc *desc)
prints the contents of a struct dvb_desc linked list
const struct dvb_descriptor dvb_descriptors[]
Contains the parsers for the several descriptors.
void(* dvb_desc_print_func)(struct dvb_v5_fe_parms *parms, const struct dvb_desc *desc)
Function prototype for the descriptors parsing print code.
const dvb_table_init_func dvb_table_initializers[256]
Table with all possible descriptors.
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.
uint32_t dvb_bcd(uint32_t bcd)
Converts from BCD to CPU integer internal representation.
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.
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
Linked list containing the several descriptors found on a MPEG-TS table.
Contains the parser information for the MPEG-TS parser code.
dvb_desc_print_func print
Keeps data needed to handle the DVB frontend.