descriptors.h
Go to the documentation of this file.
/*
* Copyright (c) 2011-2012 - Mauro Carvalho Chehab
* Copyright (c) 2012-2014 - Andre Roth <neolynx@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation version 2.1 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/
#ifndef _DESCRIPTORS_H
#define _DESCRIPTORS_H
#include <unistd.h>
#include <stdint.h>
#include <arpa/inet.h>
#define DVB_MAX_PAYLOAD_PACKET_SIZE 4096
#define DVB_CRC_SIZE 4
#ifndef _DOXYGEN
struct dvb_v5_fe_parms;
#endif
typedef void (*dvb_table_init_func)(struct dvb_v5_fe_parms *parms,
const uint8_t *buf, ssize_t buflen,
void **table);
extern const dvb_table_init_func dvb_table_initializers[256];
#ifndef _DOXYGEN
#define bswap16(b) do {\
b = ntohs(b); \
} while (0)
#define bswap32(b) do {\
b = ntohl(b); \
} while (0)
/* Deprecated */
#define DVB_DESC_HEADER() \
uint8_t type; \
uint8_t length; \
struct dvb_desc *next
#endif /* _DOXYGEN */
struct dvb_desc {
uint8_t type;
uint8_t length;
struct dvb_desc *next;
uint8_t data[];
} __attribute__((packed));
#ifndef _DOXYGEN
#define dvb_desc_foreach( _desc, _tbl ) \
if (_tbl && _tbl->descriptor) \
for( struct dvb_desc *_desc = _tbl->descriptor; _desc; _desc = _desc->next ) \
#define dvb_desc_find(_struct, _desc, _tbl, _type) \
if (_tbl && _tbl->descriptor) \
for( _struct *_desc = (_struct *) _tbl->descriptor; _desc; _desc = (_struct *) _desc->next ) \
if(_desc->type == _type) \
#endif /* _DOXYGEN */
#ifdef __cplusplus
extern "C" {
#endif
uint32_t dvb_bcd(uint32_t bcd);
void dvb_hexdump(struct dvb_v5_fe_parms *parms, const char *prefix,
const unsigned char *buf, int len);
int dvb_desc_parse(struct dvb_v5_fe_parms *parms, const uint8_t *buf,
uint16_t buflen, struct dvb_desc **head_desc);
void dvb_desc_free (struct dvb_desc **list);
void dvb_desc_print(struct dvb_v5_fe_parms *parms, struct dvb_desc *desc);
#ifdef __cplusplus
}
#endif
typedef int (*dvb_desc_init_func) (struct dvb_v5_fe_parms *parms,
const uint8_t *buf, struct dvb_desc *desc);
typedef void (*dvb_desc_print_func)(struct dvb_v5_fe_parms *parms,
const struct dvb_desc *desc);
typedef void (*dvb_desc_free_func) (struct dvb_desc *desc);
struct dvb_descriptor {
const char *name;
dvb_desc_init_func init;
dvb_desc_print_func print;
dvb_desc_free_func free;
ssize_t size;
};
extern const struct dvb_descriptor dvb_descriptors[];
enum descriptors {
/* ISO/IEC 13818-1 */
video_stream_descriptor = 0x02,
audio_stream_descriptor = 0x03,
hierarchy_descriptor = 0x04,
registration_descriptor = 0x05,
ds_alignment_descriptor = 0x06,
target_background_grid_descriptor = 0x07,
video_window_descriptor = 0x08,
conditional_access_descriptor = 0x09,
iso639_language_descriptor = 0x0a,
system_clock_descriptor = 0x0b,
multiplex_buffer_utilization_descriptor = 0x0c,
copyright_descriptor = 0x0d,
maximum_bitrate_descriptor = 0x0e,
private_data_indicator_descriptor = 0x0f,
smoothing_buffer_descriptor = 0x10,
std_descriptor = 0x11,
ibp_descriptor = 0x12,
mpeg4_video_descriptor = 0x1b,
mpeg4_audio_descriptor = 0x1c,
iod_descriptor = 0x1d,
sl_descriptor = 0x1e,
fmc_descriptor = 0x1f,
external_es_id_descriptor = 0x20,
muxcode_descriptor = 0x21,
fmxbuffersize_descriptor = 0x22,
multiplexbuffer_descriptor = 0x23,
content_labeling_descriptor = 0x24,
metadata_pointer_descriptor = 0x25,
metadata_descriptor = 0x26,
metadata_std_descriptor = 0x27,
AVC_video_descriptor = 0x28,
ipmp_descriptor = 0x29,
AVC_timing_and_HRD_descriptor = 0x2a,
mpeg2_aac_audio_descriptor = 0x2b,
flexmux_timing_descriptor = 0x2c,
/* ETSI EN 300 468 V1.11.1 (2010-04) */
network_name_descriptor = 0x40,
service_list_descriptor = 0x41,
stuffing_descriptor = 0x42,
satellite_delivery_system_descriptor = 0x43,
cable_delivery_system_descriptor = 0x44,
VBI_data_descriptor = 0x45,
VBI_teletext_descriptor = 0x46,
bouquet_name_descriptor = 0x47,
service_descriptor = 0x48,
country_availability_descriptor = 0x49,
linkage_descriptor = 0x4a,
NVOD_reference_descriptor = 0x4b,
time_shifted_service_descriptor = 0x4c,
short_event_descriptor = 0x4d,
extended_event_descriptor = 0x4e,
time_shifted_event_descriptor = 0x4f,
component_descriptor = 0x50,
mosaic_descriptor = 0x51,
stream_identifier_descriptor = 0x52,
CA_identifier_descriptor = 0x53,
content_descriptor = 0x54,
parental_rating_descriptor = 0x55,
teletext_descriptor = 0x56,
telephone_descriptor = 0x57,
local_time_offset_descriptor = 0x58,
subtitling_descriptor = 0x59,
terrestrial_delivery_system_descriptor = 0x5a,
multilingual_network_name_descriptor = 0x5b,
multilingual_bouquet_name_descriptor = 0x5c,
multilingual_service_name_descriptor = 0x5d,
multilingual_component_descriptor = 0x5e,
private_data_specifier_descriptor = 0x5f,
service_move_descriptor = 0x60,
short_smoothing_buffer_descriptor = 0x61,
frequency_list_descriptor = 0x62,
partial_transport_stream_descriptor = 0x63,
data_broadcast_descriptor = 0x64,
scrambling_descriptor = 0x65,
data_broadcast_id_descriptor = 0x66,
transport_stream_descriptor = 0x67,
DSNG_descriptor = 0x68,
PDC_descriptor = 0x69,
AC_3_descriptor = 0x6a,
ancillary_data_descriptor = 0x6b,
cell_list_descriptor = 0x6c,
cell_frequency_link_descriptor = 0x6d,
announcement_support_descriptor = 0x6e,
application_signalling_descriptor = 0x6f,
adaptation_field_data_descriptor = 0x70,
service_identifier_descriptor = 0x71,
service_availability_descriptor = 0x72,
default_authority_descriptor = 0x73,
related_content_descriptor = 0x74,
TVA_id_descriptor = 0x75,
content_identifier_descriptor = 0x76,
time_slice_fec_identifier_descriptor = 0x77,
ECM_repetition_rate_descriptor = 0x78,
S2_satellite_delivery_system_descriptor = 0x79,
enhanced_AC_3_descriptor = 0x7a,
DTS_descriptor = 0x7b,
AAC_descriptor = 0x7c,
XAIT_location_descriptor = 0x7d,
FTA_content_management_descriptor = 0x7e,
extension_descriptor = 0x7f,
/* SCTE 35 2004 */
CUE_identifier_descriptor = 0x8a,
extended_channel_name = 0xa0,
service_location = 0xa1,
/* From http://www.etherguidesystems.com/Help/SDOs/ATSC/Semantics/Descriptors/Default.aspx */
component_name_descriptor = 0xa3,
/* From http://www.coolstf.com/tsreader/descriptors.html */
logical_channel_number_descriptor = 0x83,
/* ISDB Descriptors, as defined on ABNT NBR 15603-1 2007 */
carousel_id_descriptor = 0x13,
association_tag_descriptor = 0x14,
deferred_association_tags_descriptor = 0x15,
hierarchical_transmission_descriptor = 0xc0,
digital_copy_control_descriptor = 0xc1,
network_identifier_descriptor = 0xc2,
partial_transport_stream_time_descriptor = 0xc3,
audio_component_descriptor = 0xc4,
hyperlink_descriptor = 0xc5,
target_area_descriptor = 0xc6,
data_contents_descriptor = 0xc7,
video_decode_control_descriptor = 0xc8,
download_content_descriptor = 0xc9,
CA_EMM_TS_descriptor = 0xca,
CA_contract_information_descriptor = 0xcb,
CA_service_descriptor = 0xcc,
TS_Information_descriptor = 0xcd,
extended_broadcaster_descriptor = 0xce,
logo_transmission_descriptor = 0xcf,
basic_local_event_descriptor = 0xd0,
reference_descriptor = 0xd1,
node_relation_descriptor = 0xd2,
short_node_information_descriptor = 0xd3,
STC_reference_descriptor = 0xd4,
series_descriptor = 0xd5,
event_group_descriptor = 0xd6,
SI_parameter_descriptor = 0xd7,
broadcaster_Name_Descriptor = 0xd8,
component_group_descriptor = 0xd9,
SI_prime_TS_descriptor = 0xda,
board_information_descriptor = 0xdb,
LDT_linkage_descriptor = 0xdc,
connected_transmission_descriptor = 0xdd,
content_availability_descriptor = 0xde,
service_group_descriptor = 0xe0,
carousel_compatible_composite_descriptor = 0xf7,
conditional_playback_descriptor = 0xf8,
ISDBT_delivery_system_descriptor = 0xfa,
partial_reception_descriptor = 0xfb,
emergency_information_descriptor = 0xfc,
data_component_descriptor = 0xfd,
system_management_descriptor = 0xfe,
/* ATSC descriptors - ATSC A/65:2009 spec */
atsc_stuffing_descriptor = 0x80,
atsc_ac3_audio_descriptor = 0x81,
atsc_caption_service_descriptor = 0x86,
atsc_content_advisory_descriptor = 0x87,
atsc_extended_channel_descriptor = 0xa0,
atsc_service_location_descriptor = 0xa1,
atsc_time_shifted_service_descriptor = 0xa2,
atsc_component_name_descriptor = 0xa3,
atsc_DCC_departing_request_descriptor = 0xa8,
atsc_DCC_arriving_request_descriptor = 0xa9,
atsc_redistribution_control_descriptor = 0xaa,
atsc_ATSC_private_information_descriptor = 0xad,
atsc_genre_descriptor = 0xab,
};
/*
* NOTE: this is here just to avoid API break. There was a typo
* on the name of this descriptor
*/
#define TS_Information_descriptior TS_Information_descriptor
/* Please see desc_extension.h for extension_descriptor types */
#endif
descriptors
descriptors
Definition descriptors.h:592
video_window_descriptor
@ video_window_descriptor
video_window descriptor - ISO/IEC 13818-1
Definition descriptors.h:600
terrestrial_delivery_system_descriptor
@ terrestrial_delivery_system_descriptor
terrestrial_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:659
fmxbuffersize_descriptor
@ fmxbuffersize_descriptor
fmxbuffersize descriptor - ISO/IEC 13818-1
Definition descriptors.h:619
atsc_time_shifted_service_descriptor
@ atsc_time_shifted_service_descriptor
atsc_time_shifted_service descriptor - ATSC A/65:2009
Definition descriptors.h:762
cell_frequency_link_descriptor
@ cell_frequency_link_descriptor
cell_frequency_link descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:678
download_content_descriptor
@ download_content_descriptor
download_content descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:724
FTA_content_management_descriptor
@ FTA_content_management_descriptor
FTA_content_management descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:695
data_broadcast_descriptor
@ data_broadcast_descriptor
data_broadcast descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:669
AVC_video_descriptor
@ AVC_video_descriptor
AVC_video descriptor - ISO/IEC 13818-1.
Definition descriptors.h:625
content_labeling_descriptor
@ content_labeling_descriptor
content_labeling descriptor - ISO/IEC 13818-1
Definition descriptors.h:621
muxcode_descriptor
@ muxcode_descriptor
muxcode descriptor - ISO/IEC 13818-1
Definition descriptors.h:618
adaptation_field_data_descriptor
@ adaptation_field_data_descriptor
adaptation_field_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:681
multilingual_service_name_descriptor
@ multilingual_service_name_descriptor
multilingual_service_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:662
logical_channel_number_descriptor
@ logical_channel_number_descriptor
logical_channel_number descriptor - SCTE 35 2004
Definition descriptors.h:707
short_node_information_descriptor
@ short_node_information_descriptor
short_node_information descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:734
AAC_descriptor
@ AAC_descriptor
AAC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:693
LDT_linkage_descriptor
@ LDT_linkage_descriptor
LDT_linkage descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:743
subtitling_descriptor
@ subtitling_descriptor
subtitling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:658
service_list_descriptor
@ service_list_descriptor
service_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:634
metadata_std_descriptor
@ metadata_std_descriptor
metadata_std descriptor - ISO/IEC 13818-1
Definition descriptors.h:624
reference_descriptor
@ reference_descriptor
reference descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:732
telephone_descriptor
@ telephone_descriptor
telephone descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:656
maximum_bitrate_descriptor
@ maximum_bitrate_descriptor
maximum_bitrate descriptor - ISO/IEC 13818-1
Definition descriptors.h:606
network_identifier_descriptor
@ network_identifier_descriptor
network_identifier descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:717
atsc_DCC_arriving_request_descriptor
@ atsc_DCC_arriving_request_descriptor
atsc_DCC_arriving_request descriptor - ATSC A/65:2009
Definition descriptors.h:765
node_relation_descriptor
@ node_relation_descriptor
node_relation descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:733
multilingual_network_name_descriptor
@ multilingual_network_name_descriptor
multilingual_network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:660
mpeg4_audio_descriptor
@ mpeg4_audio_descriptor
mpeg4_audio descriptor - ISO/IEC 13818-1
Definition descriptors.h:613
partial_transport_stream_time_descriptor
@ partial_transport_stream_time_descriptor
partial_transport_stream_time descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:718
parental_rating_descriptor
@ parental_rating_descriptor
parental_rating descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:654
series_descriptor
@ series_descriptor
series descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:736
SI_parameter_descriptor
@ SI_parameter_descriptor
SI_parameter descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:738
linkage_descriptor
@ linkage_descriptor
linkage descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:643
frequency_list_descriptor
@ frequency_list_descriptor
frequency_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:667
network_name_descriptor
@ network_name_descriptor
network_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:633
PDC_descriptor
@ PDC_descriptor
PDC descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:674
hierarchical_transmission_descriptor
@ hierarchical_transmission_descriptor
hierarchical_transmission descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:715
broadcaster_Name_Descriptor
@ broadcaster_Name_Descriptor
broadcaster_Name descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:739
data_broadcast_id_descriptor
@ data_broadcast_id_descriptor
data_broadcast_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:671
service_descriptor
@ service_descriptor
service descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:641
carousel_compatible_composite_descriptor
@ carousel_compatible_composite_descriptor
carousel_compatible_composite descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:747
SI_prime_TS_descriptor
@ SI_prime_TS_descriptor
SI_prime_transport_stream descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:741
country_availability_descriptor
@ country_availability_descriptor
country_availability descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:642
basic_local_event_descriptor
@ basic_local_event_descriptor
basic_local_event descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:731
content_descriptor
@ content_descriptor
content descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:653
CA_identifier_descriptor
@ CA_identifier_descriptor
CA_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:652
teletext_descriptor
@ teletext_descriptor
teletext descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:655
related_content_descriptor
@ related_content_descriptor
related_content descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:685
bouquet_name_descriptor
@ bouquet_name_descriptor
bouquet_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:640
default_authority_descriptor
@ default_authority_descriptor
default_authority descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:684
video_decode_control_descriptor
@ video_decode_control_descriptor
video_decode_control descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:723
conditional_playback_descriptor
@ conditional_playback_descriptor
conditional_playback descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:748
partial_reception_descriptor
@ partial_reception_descriptor
partial_reception descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:750
atsc_redistribution_control_descriptor
@ atsc_redistribution_control_descriptor
atsc_redistribution_control descriptor - ATSC A/65:2009
Definition descriptors.h:766
ds_alignment_descriptor
@ ds_alignment_descriptor
ds_alignment descriptor - ISO/IEC 13818-1
Definition descriptors.h:598
multilingual_component_descriptor
@ multilingual_component_descriptor
multilingual_component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:663
target_background_grid_descriptor
@ target_background_grid_descriptor
target_background_grid descriptor - ISO/IEC 13818-1
Definition descriptors.h:599
service_move_descriptor
@ service_move_descriptor
service_move descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:665
logo_transmission_descriptor
@ logo_transmission_descriptor
logo_transmission descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:730
atsc_genre_descriptor
@ atsc_genre_descriptor
atsc_genre descriptor - ATSC A/65:2009
Definition descriptors.h:768
cable_delivery_system_descriptor
@ cable_delivery_system_descriptor
cable_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:637
multilingual_bouquet_name_descriptor
@ multilingual_bouquet_name_descriptor
multilingual_bouquet_name descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:661
DSNG_descriptor
@ DSNG_descriptor
DSNG descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:673
component_name_descriptor
@ component_name_descriptor
component_name descriptor - SCTE 35 2004
Definition descriptors.h:704
flexmux_timing_descriptor
@ flexmux_timing_descriptor
flexmux_timing descriptor - ISO/IEC 13818-1
Definition descriptors.h:629
enhanced_AC_3_descriptor
@ enhanced_AC_3_descriptor
enhanced_AC_3 descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:691
local_time_offset_descriptor
@ local_time_offset_descriptor
local_time_offset descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:657
ibp_descriptor
@ ibp_descriptor
ibp descriptor - ISO/IEC 13818-1
Definition descriptors.h:610
deferred_association_tags_descriptor
@ deferred_association_tags_descriptor
deferred_association_tags descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:713
atsc_ATSC_private_information_descriptor
@ atsc_ATSC_private_information_descriptor
atsc_ATSC_private_information descriptor - ATSC A/65:2009
Definition descriptors.h:767
hyperlink_descriptor
@ hyperlink_descriptor
hyperlink descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:720
external_es_id_descriptor
@ external_es_id_descriptor
external_es_id descriptor - ISO/IEC 13818-1
Definition descriptors.h:617
S2_satellite_delivery_system_descriptor
@ S2_satellite_delivery_system_descriptor
S2_satellite_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:690
mosaic_descriptor
@ mosaic_descriptor
mosaic descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:650
DTS_descriptor
@ DTS_descriptor
DTS descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:692
announcement_support_descriptor
@ announcement_support_descriptor
announcement_support descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:679
transport_stream_descriptor
@ transport_stream_descriptor
transport_stream descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:672
system_clock_descriptor
@ system_clock_descriptor
system_clock descriptor - ISO/IEC 13818-1
Definition descriptors.h:603
NVOD_reference_descriptor
@ NVOD_reference_descriptor
NVOD_reference descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:644
extension_descriptor
@ extension_descriptor
extension descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:696
sl_descriptor
@ sl_descriptor
sl descriptor - ISO/IEC 13818-1
Definition descriptors.h:615
CA_service_descriptor
@ CA_service_descriptor
CA_service descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:727
atsc_content_advisory_descriptor
@ atsc_content_advisory_descriptor
atsc_content_advisory descriptor - ATSC A/65:2009
Definition descriptors.h:759
atsc_caption_service_descriptor
@ atsc_caption_service_descriptor
atsc_caption_service descriptor - ATSC A/65:2009
Definition descriptors.h:758
event_group_descriptor
@ event_group_descriptor
event_group descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:737
atsc_component_name_descriptor
@ atsc_component_name_descriptor
atsc_component_name descriptor - ATSC A/65:2009
Definition descriptors.h:763
multiplexbuffer_descriptor
@ multiplexbuffer_descriptor
multiplexbuffer descriptor - ISO/IEC 13818-1
Definition descriptors.h:620
conditional_access_descriptor
@ conditional_access_descriptor
conditional_access descriptor - ISO/IEC 13818-1
Definition descriptors.h:601
AC_3_descriptor
@ AC_3_descriptor
AC_3 descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:675
copyright_descriptor
@ copyright_descriptor
copyright descriptor - ISO/IEC 13818-1
Definition descriptors.h:605
CA_EMM_TS_descriptor
@ CA_EMM_TS_descriptor
CA_EMM_TS descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:725
multiplex_buffer_utilization_descriptor
@ multiplex_buffer_utilization_descriptor
multiplex_buffer_utilization descriptor - ISO/IEC 13818-1
Definition descriptors.h:604
video_stream_descriptor
@ video_stream_descriptor
video_stream descriptor - ISO/IEC 13818-1
Definition descriptors.h:594
stream_identifier_descriptor
@ stream_identifier_descriptor
stream_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:651
XAIT_location_descriptor
@ XAIT_location_descriptor
XAIT_location descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:694
audio_component_descriptor
@ audio_component_descriptor
audio_component descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:719
std_descriptor
@ std_descriptor
std descriptor - ISO/IEC 13818-1
Definition descriptors.h:609
service_group_descriptor
@ service_group_descriptor
service_group descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:746
CUE_identifier_descriptor
@ CUE_identifier_descriptor
CUE_identifier descriptor - SCTE 35 2004.
Definition descriptors.h:699
registration_descriptor
@ registration_descriptor
registration descriptor - ISO/IEC 13818-1
Definition descriptors.h:597
ancillary_data_descriptor
@ ancillary_data_descriptor
ancillary_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:676
time_slice_fec_identifier_descriptor
@ time_slice_fec_identifier_descriptor
time_slice_fec_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:688
atsc_stuffing_descriptor
@ atsc_stuffing_descriptor
atsc_stuffing descriptor - ATSC A/65:2009
Definition descriptors.h:756
audio_stream_descriptor
@ audio_stream_descriptor
audio_stream descriptor - ISO/IEC 13818-1
Definition descriptors.h:595
data_contents_descriptor
@ data_contents_descriptor
data_contents descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:722
ipmp_descriptor
@ ipmp_descriptor
ipmp descriptor - ISO/IEC 13818-1
Definition descriptors.h:626
service_identifier_descriptor
@ service_identifier_descriptor
service_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:682
hierarchy_descriptor
@ hierarchy_descriptor
hierarchy descriptor - ISO/IEC 13818-1
Definition descriptors.h:596
AVC_timing_and_HRD_descriptor
@ AVC_timing_and_HRD_descriptor
AVC_timing_and_HRD descriptor - ISO/IEC 13818-1.
Definition descriptors.h:627
target_area_descriptor
@ target_area_descriptor
target_area descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:721
association_tag_descriptor
@ association_tag_descriptor
association_tag descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:712
atsc_ac3_audio_descriptor
@ atsc_ac3_audio_descriptor
atsc_ac3_audio descriptor - ATSC A/65:2009
Definition descriptors.h:757
scrambling_descriptor
@ scrambling_descriptor
scrambling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:670
extended_event_descriptor
@ extended_event_descriptor
extended_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:647
mpeg2_aac_audio_descriptor
@ mpeg2_aac_audio_descriptor
mpeg2_aac_audio descriptor - ISO/IEC 13818-1
Definition descriptors.h:628
connected_transmission_descriptor
@ connected_transmission_descriptor
connected_transmission descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:744
atsc_extended_channel_descriptor
@ atsc_extended_channel_descriptor
atsc_extended_channel descriptor - ATSC A/65:2009
Definition descriptors.h:760
time_shifted_service_descriptor
@ time_shifted_service_descriptor
time_shifted_service descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:645
service_availability_descriptor
@ service_availability_descriptor
service_availability descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:683
service_location
@ service_location
service_location descriptor - SCTE 35 2004
Definition descriptors.h:702
content_identifier_descriptor
@ content_identifier_descriptor
content_identifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:687
satellite_delivery_system_descriptor
@ satellite_delivery_system_descriptor
satellite_delivery_system descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:636
metadata_descriptor
@ metadata_descriptor
metadata descriptor - ISO/IEC 13818-1
Definition descriptors.h:623
component_descriptor
@ component_descriptor
component descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:649
content_availability_descriptor
@ content_availability_descriptor
content_availability descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:745
mpeg4_video_descriptor
@ mpeg4_video_descriptor
mpeg4_video descriptor - ISO/IEC 13818-1
Definition descriptors.h:612
short_event_descriptor
@ short_event_descriptor
short_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:646
iso639_language_descriptor
@ iso639_language_descriptor
iso639_language descriptor - ISO/IEC 13818-1
Definition descriptors.h:602
stuffing_descriptor
@ stuffing_descriptor
stuffing descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:635
CA_contract_information_descriptor
@ CA_contract_information_descriptor
CA_contract_information descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:726
system_management_descriptor
@ system_management_descriptor
system_management descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:753
emergency_information_descriptor
@ emergency_information_descriptor
emergency_information descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:751
metadata_pointer_descriptor
@ metadata_pointer_descriptor
metadata_pointer descriptor - ISO/IEC 13818-1
Definition descriptors.h:622
digital_copy_control_descriptor
@ digital_copy_control_descriptor
digital_copy_control descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:716
atsc_DCC_departing_request_descriptor
@ atsc_DCC_departing_request_descriptor
atsc_DCC_departing_request descriptor - ATSC A/65:2009
Definition descriptors.h:764
atsc_service_location_descriptor
@ atsc_service_location_descriptor
atsc_service_location descriptor - ATSC A/65:2009
Definition descriptors.h:761
time_shifted_event_descriptor
@ time_shifted_event_descriptor
time_shifted_event descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:648
extended_broadcaster_descriptor
@ extended_broadcaster_descriptor
extended_broadcaster descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:729
smoothing_buffer_descriptor
@ smoothing_buffer_descriptor
smoothing_buffer descriptor - ISO/IEC 13818-1
Definition descriptors.h:608
cell_list_descriptor
@ cell_list_descriptor
cell_list descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:677
board_information_descriptor
@ board_information_descriptor
board_information descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:742
private_data_indicator_descriptor
@ private_data_indicator_descriptor
private_data_indicator descriptor - ISO/IEC 13818-1
Definition descriptors.h:607
fmc_descriptor
@ fmc_descriptor
fmc descriptor - ISO/IEC 13818-1
Definition descriptors.h:616
application_signalling_descriptor
@ application_signalling_descriptor
application_signalling descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:680
data_component_descriptor
@ data_component_descriptor
data_component descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:752
VBI_data_descriptor
@ VBI_data_descriptor
VBI_data descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:638
partial_transport_stream_descriptor
@ partial_transport_stream_descriptor
partial_transport_stream descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:668
extended_channel_name
@ extended_channel_name
extended_channel_name descriptor - SCTE 35 2004
Definition descriptors.h:701
component_group_descriptor
@ component_group_descriptor
component_group descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:740
STC_reference_descriptor
@ STC_reference_descriptor
STC_reference descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:735
short_smoothing_buffer_descriptor
@ short_smoothing_buffer_descriptor
short_smoothing_buffer descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:666
TS_Information_descriptor
@ TS_Information_descriptor
transport_stream_information descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:728
ECM_repetition_rate_descriptor
@ ECM_repetition_rate_descriptor
ECM_repetition_rate descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:689
VBI_teletext_descriptor
@ VBI_teletext_descriptor
VBI_teletext descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:639
carousel_id_descriptor
@ carousel_id_descriptor
carousel_id descriptor - ABNT NBR 15603-1 2007
Definition descriptors.h:711
iod_descriptor
@ iod_descriptor
iod descriptor - ISO/IEC 13818-1
Definition descriptors.h:614
TVA_id_descriptor
@ TVA_id_descriptor
TVA_id descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:686
ISDBT_delivery_system_descriptor
@ ISDBT_delivery_system_descriptor
ISDBT terrestrial_delivery_system descriptor - ABNT NBR 15603-1 2007.
Definition descriptors.h:749
private_data_specifier_descriptor
@ private_data_specifier_descriptor
private_data_specifier descriptor - ETSI EN 300 468 V1.11.1 (2010-04)
Definition descriptors.h:664
dvb_desc_free
void dvb_desc_free(struct dvb_desc **list)
frees a dvb_desc linked list
dvb_desc_free_func
void(* dvb_desc_free_func)(struct dvb_desc *desc)
Function prototype for the descriptors memory free code.
Definition descriptors.h:234
dvb_hexdump
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
dvb_desc_print
void dvb_desc_print(struct dvb_v5_fe_parms *parms, struct dvb_desc *desc)
prints the contents of a struct dvb_desc linked list
dvb_descriptors
const struct dvb_descriptor dvb_descriptors[]
Contains the parsers for the several descriptors.
dvb_desc_print_func
void(* dvb_desc_print_func)(struct dvb_v5_fe_parms *parms, const struct dvb_desc *desc)
Function prototype for the descriptors parsing print code.
Definition descriptors.h:225
dvb_table_initializers
const dvb_table_init_func dvb_table_initializers[256]
Table with all possible descriptors.
dvb_table_init_func
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.
Definition descriptors.h:79
dvb_bcd
uint32_t dvb_bcd(uint32_t bcd)
Converts from BCD to CPU integer internal representation.
dvb_desc_init_func
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.
Definition descriptors.h:215
dvb_desc_parse
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
dvb_desc
Linked list containing the several descriptors found on a MPEG-TS table.
Definition descriptors.h:117
dvb_desc::type
uint8_t type
Definition descriptors.h:118
dvb_desc::data
uint8_t data[]
Definition descriptors.h:122
dvb_desc::length
uint8_t length
Definition descriptors.h:119
dvb_desc::next
struct dvb_desc * next
Definition descriptors.h:120
dvb_descriptor
Contains the parser information for the MPEG-TS parser code.
Definition descriptors.h:249
dvb_descriptor::init
dvb_desc_init_func init
Definition descriptors.h:251
dvb_descriptor::name
const char * name
Definition descriptors.h:250
dvb_descriptor::size
ssize_t size
Definition descriptors.h:254
dvb_descriptor::free
dvb_desc_free_func free
Definition descriptors.h:253
dvb_descriptor::print
dvb_desc_print_func print
Definition descriptors.h:252
dvb_v5_fe_parms
Keeps data needed to handle the DVB frontend.
Definition dvb-fe.h:117