libdvbv5  1.11.0
Library to work with Digital TV devices on Linux
Digital TV table parsing

Files

file  descriptors.h
 Provides a way to handle MPEG-TS descriptors found on Digital TV streams.
 
file  header.h
 Provides the MPEG TS table headers.
 
file  atsc_header.h
 Provides some common ATSC stuff.
 
file  atsc_eit.h
 Provides the table parser for the ATSC EIT (Event Information Table)
 
file  cat.h
 Provides the table parser for the CAT (Conditional Access Table)
 
file  eit.h
 Provides the table parser for the DVB EIT (Event Information Table)
 
file  mgt.h
 Provides the table parser for the ATSC MGT (Master Guide Table)
 
file  nit.h
 Provides the descriptors for NIT MPEG-TS table.
 
file  pat.h
 Provides the descriptors for PAT MPEG-TS table.
 
file  pmt.h
 Provides the descriptors for PMT MPEG-TS table.
 
file  sdt.h
 Provides the descriptors for SDT MPEG-TS table.
 
file  vct.h
 Provides the descriptors for TVCT and CVCT tables.
 
file  mpeg_es.h
 Provides the table parser for the MPEG-TS Elementary Stream.
 
file  mpeg_pes.h
 Provides the table parser for the MPEG-PES Elementary Stream.
 
file  mpeg_ts.h
 Provides the table parser for the MPEG-PES Elementary Stream.
 

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...
 
struct  dvb_ts_packet_header
 Header of a MPEG-TS transport packet. More...
 
struct  dvb_table_header
 Header of a MPEG-TS table. More...
 
struct  atsc_table_eit_event
 ATSC EIT event table. More...
 
union  atsc_table_eit_desc_length
 ATSC EIT descriptor length. More...
 
struct  atsc_table_eit
 ATSC EIT table. More...
 
struct  dvb_table_eit_event
 DVB EIT event table. More...
 
struct  dvb_table_eit
 DVB EIT table. More...
 
struct  atsc_table_mgt_table
 ATSC tables descrition at MGT table. More...
 
struct  atsc_table_mgt
 ATSC MGT table. More...
 
union  dvb_table_nit_transport_header
 MPEG-TS NIT transport header. More...
 
struct  dvb_table_nit_transport
 MPEG-TS NIT transport table. More...
 
struct  dvb_table_nit
 MPEG-TS NIT table. More...
 
struct  dvb_table_pat_program
 MPEG-TS PAT program table. More...
 
struct  dvb_table_pat
 MPEG-TS PAT table. More...
 
struct  dvb_table_pmt_stream
 MPEG-TS PMT stream table. More...
 
struct  dvb_table_pmt
 MPEG-TS PMT table. More...
 
struct  dvb_table_sdt_service
 MPEG-TS SDT service table. More...
 
struct  dvb_table_sdt
 MPEG-TS SDT table. More...
 
struct  atsc_table_vct_channel
 ATSC VCT channel table (covers both CVCT and TVCT) More...
 
struct  atsc_table_vct
 ATSC VCT table (covers both CVCT and TVCT) More...
 
union  atsc_table_vct_descriptor_length
 ATSC VCT descriptor length. More...
 
struct  dvb_mpeg_es_seq_start
 MPEG ES Sequence header. More...
 
struct  dvb_mpeg_es_pic_start
 MPEG ES Picture start header. More...
 
struct  ts_t
 MPEG PES timestamp structure, used for dts and pts. More...
 
struct  dvb_mpeg_pes_optional
 MPEG PES optional header. More...
 
struct  dvb_mpeg_pes
 MPEG PES data structure. More...
 
struct  dvb_mpeg_ts_adaption
 MPEG TS header adaption field. More...
 
struct  dvb_mpeg_ts
 MPEG TS header. More...
 

Macros

#define DVB_MAX_PAYLOAD_PACKET_SIZE
 Maximum size of a table session to be parsed. More...
 
#define DVB_CRC_SIZE
 number of bytes for the descriptor's CRC check More...
 
#define ATSC_BASE_PID
 ATSC PID for the Program and System Information Protocol. More...
 
#define ATSC_TABLE_EIT
 ATSC EIT table ID. More...
 
#define atsc_eit_event_foreach(_event, _eit)
 Macro used to find event on an ATSC EIT table. More...
 
#define DVB_TABLE_CAT
 ATSC CAT table ID. More...
 
#define DVB_TABLE_CAT_PID
 ATSC PID table ID. More...
 
#define DVB_TABLE_EIT
 DVB EIT table ID for the actual TS. More...
 
#define DVB_TABLE_EIT_OTHER
 DVB EIT table ID for other TS. More...
 
#define DVB_TABLE_EIT_PID
 DVB EIT Program ID. More...
 
#define DVB_TABLE_EIT_SCHEDULE
 Start table ID for the DVB EIT schedule data on the actual TS The range has 0x0f elements (0x50 to 0x5F). More...
 
#define DVB_TABLE_EIT_SCHEDULE_OTHER
 Start table ID for the DVB EIT schedule data on other TS The range has 0x0f elements (0x60 to 0x6F). More...
 
#define dvb_eit_event_foreach(_event, _eit)
 Macro used to find event on a DVB EIT table. More...
 
#define ATSC_TABLE_MGT
 ATSC MGT table ID. More...
 
#define DVB_TABLE_NIT
 NIT table ID. More...
 
#define DVB_TABLE_NIT2
 NIT table ID (alternative table ID) More...
 
#define DVB_TABLE_NIT_PID
 NIT Program ID. More...
 
#define dvb_nit_transport_foreach(_tran, _nit)
 Macro used to find a transport inside a NIT table. More...
 
#define DVB_TABLE_PAT
 PAT table ID. More...
 
#define DVB_TABLE_PAT_PID
 PAT Program ID. More...
 
#define dvb_pat_program_foreach(_pgm, _pat)
 Macro used to find programs on a PAT table. More...
 
#define DVB_TABLE_PMT
 PMT table ID. More...
 
#define dvb_pmt_stream_foreach(_stream, _pmt)
 Macro used to find streams on a PMT table. More...
 
#define DVB_TABLE_SDT
 SDT table ID. More...
 
#define DVB_TABLE_SDT2
 SDT table ID (alternative table ID) More...
 
#define DVB_TABLE_SDT_PID
 SDT Program ID. More...
 
#define dvb_sdt_service_foreach(_service, _sdt)
 Macro used to find services on a SDT table. More...
 
#define ATSC_TABLE_TVCT
 TVCT table ID. More...
 
#define ATSC_TABLE_CVCT
 CVCT table ID. More...
 
#define ATSC_TABLE_VCT_PID
 Program ID with the VCT tables on it. More...
 
#define atsc_vct_channel_foreach(_channel, _vct)
 Macro used to find channels on a VCT table. More...
 
#define DVB_MPEG_ES_PIC_START
 Picture Start. More...
 
#define DVB_MPEG_ES_USER_DATA
 User Data. More...
 
#define DVB_MPEG_ES_SEQ_START
 Sequence Start. More...
 
#define DVB_MPEG_ES_SEQ_EXT
 Extension. More...
 
#define DVB_MPEG_ES_GOP
 Group Of Pictures. More...
 
#define DVB_MPEG_ES_SLICES
 Slices. More...
 
#define DVB_MPEG_PES
 MPEG Packetized Elementary Stream magic. More...
 
#define DVB_MPEG_PES_AUDIO
 PES Audio. More...
 
#define DVB_MPEG_PES_VIDEO
 PES Video. More...
 
#define DVB_MPEG_STREAM_MAP
 PES Stream map. More...
 
#define DVB_MPEG_STREAM_PADDING
 PES padding. More...
 
#define DVB_MPEG_STREAM_PRIVATE_2
 PES private. More...
 
#define DVB_MPEG_STREAM_ECM
 PES ECM Stream. More...
 
#define DVB_MPEG_STREAM_EMM
 PES EMM Stream. More...
 
#define DVB_MPEG_STREAM_DIRECTORY
 PES Stream directory. More...
 
#define DVB_MPEG_STREAM_DSMCC
 PES DSMCC. More...
 
#define DVB_MPEG_STREAM_H222E
 PES H.222.1 type E. More...
 
#define DVB_MPEG_TS
 MPEG Transport Stream magic. More...
 
#define DVB_MPEG_TS_PACKET_SIZE
 Size of an MPEG packet. More...
 

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. More...
 
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. More...
 
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. More...
 
typedef void(* dvb_desc_free_func )(struct dvb_desc *desc)
 Function prototype for the descriptors memory free code. More...
 
typedef void nit_handler_callback_t (struct dvb_table_nit *nit, struct dvb_desc *desc, void *priv)
 typedef for a callback used when a NIT table entry is found More...
 
typedef void nit_tran_handler_callback_t (struct dvb_table_nit *nit, struct dvb_table_nit_transport *tran, struct dvb_desc *desc, void *priv)
 typedef for a callback used when a NIT transport table entry is found More...
 
typedef int(* dvb_desc_ext_init_func )(struct dvb_v5_fe_parms *parms, const uint8_t *buf, struct dvb_extension_descriptor *ext, void *desc)
 Function prototype for the extended descriptors parsing init code. More...
 
typedef void(* dvb_desc_ext_print_func )(struct dvb_v5_fe_parms *parms, const struct dvb_extension_descriptor *ext, const void *desc)
 Function prototype for the extended descriptors parsing print code. More...
 
typedef void(* dvb_desc_ext_free_func )(const void *desc)
 Function prototype for the extended descriptors parsing free code. More...
 

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_descriptior, 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
}
 List containing all descriptors used by Digital TV MPEG-TS. More...
 
enum  dvb_streams {
  stream_reserved0, stream_video, stream_video_h262, stream_audio,
  stream_audio_13818_3, stream_private_sections, stream_private_data, stream_mheg,
  stream_h222, stream_h222_1, stream_13818_6_A, stream_13818_6_B,
  stream_13818_6_C, stream_13818_6_D, stream_h222_aux, stream_audio_adts,
  stream_video_14496_2, stream_audio_latm, stream_14496_1_pes, stream_14496_1_iso,
  stream_download, stream_reserved, stream_private
}
 Add support for MPEG-TS Stream types. More...
 
enum  dvb_mpeg_es_frame_t {
  DVB_MPEG_ES_FRAME_UNKNOWN, DVB_MPEG_ES_FRAME_I, DVB_MPEG_ES_FRAME_P, DVB_MPEG_ES_FRAME_B,
  DVB_MPEG_ES_FRAME_D
}
 MPEG frame types. More...
 

Functions

uint32_t dvb_bcd (uint32_t bcd)
 Converts from BCD to CPU integer internal representation. More...
 
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 More...
 
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 More...
 
void dvb_desc_free (struct dvb_desc **list)
 frees a dvb_desc linked list More...
 
void dvb_desc_print (struct dvb_v5_fe_parms *parms, struct dvb_desc *desc)
 prints the contents of a struct dvb_desc linked list More...
 
void dvb_table_header_init (struct dvb_table_header *header)
 Initializes and parses MPEG-TS table header. More...
 
void dvb_table_header_print (struct dvb_v5_fe_parms *parms, const struct dvb_table_header *header)
 Prints the content of the MPEG-TS table header. More...
 
ssize_t atsc_table_eit_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct atsc_table_eit **table)
 Initializes and parses ATSC EIT table. More...
 
void atsc_table_eit_free (struct atsc_table_eit *table)
 Frees all data allocated by the ATSC EIT table parser. More...
 
void atsc_table_eit_print (struct dvb_v5_fe_parms *parms, struct atsc_table_eit *table)
 Prints the content of the ATSC EIT table. More...
 
ssize_t dvb_table_eit_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct dvb_table_eit **table)
 Initializes and parses EIT table. More...
 
void dvb_table_eit_free (struct dvb_table_eit *table)
 Frees all data allocated by the DVB EIT table parser. More...
 
void dvb_table_eit_print (struct dvb_v5_fe_parms *parms, struct dvb_table_eit *table)
 Prints the content of the DVB EIT table. More...
 
void dvb_time (const uint8_t data[5], struct tm *tm)
 Converts a DVB EIT formatted timestamp into struct tm. More...
 
ssize_t atsc_table_mgt_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct atsc_table_mgt **table)
 Initializes and parses MGT table. More...
 
void atsc_table_mgt_free (struct atsc_table_mgt *table)
 Frees all data allocated by the MGT table parser. More...
 
void atsc_table_mgt_print (struct dvb_v5_fe_parms *parms, struct atsc_table_mgt *table)
 Prints the content of the MGT table. More...
 
ssize_t dvb_table_nit_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct dvb_table_nit **table)
 Initializes and parses NIT table. More...
 
void dvb_table_nit_free (struct dvb_table_nit *table)
 Frees all data allocated by the NIT table parser. More...
 
void dvb_table_nit_print (struct dvb_v5_fe_parms *parms, struct dvb_table_nit *table)
 Prints the content of the NIT table. More...
 
void dvb_table_nit_descriptor_handler (struct dvb_v5_fe_parms *parms, struct dvb_table_nit *table, enum descriptors descriptor, nit_handler_callback_t *call_nit, nit_tran_handler_callback_t *call_tran, void *priv)
 For each entry at NIT and NIT transport tables, call a callback. More...
 
ssize_t dvb_table_pat_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct dvb_table_pat **table)
 Initializes and parses PAT table. More...
 
void dvb_table_pat_free (struct dvb_table_pat *table)
 Frees all data allocated by the PAT table parser. More...
 
void dvb_table_pat_print (struct dvb_v5_fe_parms *parms, struct dvb_table_pat *table)
 Prints the content of the PAT table. More...
 
ssize_t dvb_table_pmt_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct dvb_table_pmt **table)
 Initializes and parses PMT table. More...
 
void dvb_table_pmt_free (struct dvb_table_pmt *table)
 Frees all data allocated by the PMT table parser. More...
 
void dvb_table_pmt_print (struct dvb_v5_fe_parms *parms, const struct dvb_table_pmt *table)
 Prints the content of the PAT table. More...
 
ssize_t dvb_table_sdt_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct dvb_table_sdt **table)
 Initializes and parses SDT table. More...
 
void dvb_table_sdt_free (struct dvb_table_sdt *table)
 Frees all data allocated by the SDT table parser. More...
 
void dvb_table_sdt_print (struct dvb_v5_fe_parms *parms, struct dvb_table_sdt *table)
 Prints the content of the SDT table. More...
 
ssize_t atsc_table_vct_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, struct atsc_table_vct **table)
 Initializes and parses VCT table. More...
 
void atsc_table_vct_free (struct atsc_table_vct *table)
 Frees all data allocated by the VCT table parser. More...
 
void atsc_table_vct_print (struct dvb_v5_fe_parms *parms, struct atsc_table_vct *table)
 Prints the content of the VCT table. More...
 
int dvb_mpeg_es_seq_start_init (const uint8_t *buf, ssize_t buflen, struct dvb_mpeg_es_seq_start *seq_start)
 Initialize a struct dvb_mpeg_es_seq_start from buffer. More...
 
void dvb_mpeg_es_seq_start_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_es_seq_start *seq_start)
 Print details of struct dvb_mpeg_es_seq_start. More...
 
int dvb_mpeg_es_pic_start_init (const uint8_t *buf, ssize_t buflen, struct dvb_mpeg_es_pic_start *pic_start)
 Initialize a struct dvb_mpeg_es_pic_start from buffer. More...
 
void dvb_mpeg_es_pic_start_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_es_pic_start *pic_start)
 Print details of struct dvb_mpeg_es_pic_start. More...
 
ssize_t dvb_mpeg_pes_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, uint8_t *table)
 Initialize a struct dvb_mpeg_pes from buffer. More...
 
void dvb_mpeg_pes_free (struct dvb_mpeg_pes *pes)
 Deallocate memory associated with a struct dvb_mpeg_pes. More...
 
void dvb_mpeg_pes_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_pes *pes)
 Print details of struct dvb_mpeg_pes. More...
 
ssize_t dvb_mpeg_ts_init (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, uint8_t *table, ssize_t *table_length)
 Initialize a struct dvb_mpeg_ts from buffer. More...
 
void dvb_mpeg_ts_free (struct dvb_mpeg_ts *ts)
 Deallocate memory associated with a struct dvb_mpeg_ts. More...
 
void dvb_mpeg_ts_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_ts *ts)
 Print details of struct dvb_mpeg_ts. More...
 

Variables

const dvb_table_init_func dvb_table_initializers [256]
 Table with all possible descriptors. More...
 
const struct dvb_descriptor dvb_descriptors []
 Contains the parsers for the several descriptors. More...
 
const char * pmt_stream_name []
 Converts from enum dvb_streams into a string. More...
 
const char * dvb_mpeg_es_frame_names [5]
 Vector that translates from enum dvb_mpeg_es_frame_t to string. More...
 

Detailed Description

Macro Definition Documentation

#define ATSC_BASE_PID

ATSC PID for the Program and System Information Protocol.

Definition at line 44 of file atsc_header.h.

#define atsc_eit_event_foreach (   _event,
  _eit 
)

Macro used to find event on an ATSC EIT table.

Parameters
_eventevent to seek
_eitpointer to struct atsc_table_eit_event

Definition at line 160 of file atsc_eit.h.

#define ATSC_TABLE_CVCT

CVCT table ID.

Definition at line 60 of file vct.h.

#define ATSC_TABLE_EIT

ATSC EIT table ID.

Definition at line 53 of file atsc_eit.h.

#define ATSC_TABLE_MGT

ATSC MGT table ID.

Definition at line 51 of file mgt.h.

#define ATSC_TABLE_TVCT

TVCT table ID.

Definition at line 59 of file vct.h.

#define ATSC_TABLE_VCT_PID

Program ID with the VCT tables on it.

Definition at line 61 of file vct.h.

#define atsc_vct_channel_foreach (   _channel,
  _vct 
)

Macro used to find channels on a VCT table.

Parameters
_channelchannel to seek
_vctpointer to struct atsc_table_vct_channel

Definition at line 202 of file vct.h.

#define DVB_CRC_SIZE

number of bytes for the descriptor's CRC check

Definition at line 61 of file descriptors.h.

#define dvb_eit_event_foreach (   _event,
  _eit 
)

Macro used to find event on a DVB EIT table.

Parameters
_eventevent to seek
_eitpointer to struct dvb_table_eit_event

Definition at line 162 of file eit.h.

#define DVB_MAX_PAYLOAD_PACKET_SIZE

Maximum size of a table session to be parsed.

Definition at line 55 of file descriptors.h.

#define DVB_MPEG_ES_GOP

Group Of Pictures.

Definition at line 67 of file mpeg_es.h.

#define DVB_MPEG_ES_PIC_START

Picture Start.

Definition at line 63 of file mpeg_es.h.

#define DVB_MPEG_ES_SEQ_EXT

Extension.

Definition at line 66 of file mpeg_es.h.

#define DVB_MPEG_ES_SEQ_START

Sequence Start.

Definition at line 65 of file mpeg_es.h.

#define DVB_MPEG_ES_SLICES

Slices.

Definition at line 68 of file mpeg_es.h.

#define DVB_MPEG_ES_USER_DATA

User Data.

Definition at line 64 of file mpeg_es.h.

#define DVB_MPEG_PES

MPEG Packetized Elementary Stream magic.

Definition at line 80 of file mpeg_pes.h.

#define DVB_MPEG_PES_AUDIO

PES Audio.

Definition at line 82 of file mpeg_pes.h.

#define DVB_MPEG_PES_VIDEO

PES Video.

Definition at line 83 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_DIRECTORY

PES Stream directory.

Definition at line 90 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_DSMCC

PES DSMCC.

Definition at line 91 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_ECM

PES ECM Stream.

Definition at line 88 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_EMM

PES EMM Stream.

Definition at line 89 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_H222E

PES H.222.1 type E.

Definition at line 92 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_MAP

PES Stream map.

Definition at line 85 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_PADDING

PES padding.

Definition at line 86 of file mpeg_pes.h.

#define DVB_MPEG_STREAM_PRIVATE_2

PES private.

Definition at line 87 of file mpeg_pes.h.

#define DVB_MPEG_TS

MPEG Transport Stream magic.

Definition at line 50 of file mpeg_ts.h.

#define DVB_MPEG_TS_PACKET_SIZE

Size of an MPEG packet.

Definition at line 51 of file mpeg_ts.h.

#define dvb_nit_transport_foreach (   _tran,
  _nit 
)

Macro used to find a transport inside a NIT table.

Parameters
_trantransport to seek
_nitpointer to struct dvb_table_nit_transport

Definition at line 189 of file nit.h.

#define dvb_pat_program_foreach (   _pgm,
  _pat 
)

Macro used to find programs on a PAT table.

Parameters
_pgmprogram to seek
_patpointer to struct dvb_table_pat_program

Definition at line 121 of file pat.h.

#define dvb_pmt_stream_foreach (   _stream,
  _pmt 
)

Macro used to find streams on a PMT table.

Parameters
_streamstream to seek
_pmtpointer to struct dvb_table_pmt_stream

Definition at line 238 of file pmt.h.

#define dvb_sdt_service_foreach (   _service,
  _sdt 
)

Macro used to find services on a SDT table.

Parameters
_serviceservice to seek
_sdtpointer to struct dvb_table_sdt_service

Definition at line 137 of file sdt.h.

#define DVB_TABLE_CAT

ATSC CAT table ID.

Definition at line 47 of file cat.h.

#define DVB_TABLE_CAT_PID

ATSC PID table ID.

Definition at line 48 of file cat.h.

#define DVB_TABLE_EIT

DVB EIT table ID for the actual TS.

Definition at line 68 of file eit.h.

#define DVB_TABLE_EIT_OTHER

DVB EIT table ID for other TS.

Definition at line 69 of file eit.h.

#define DVB_TABLE_EIT_PID

DVB EIT Program ID.

Definition at line 70 of file eit.h.

#define DVB_TABLE_EIT_SCHEDULE

Start table ID for the DVB EIT schedule data on the actual TS The range has 0x0f elements (0x50 to 0x5F).

Definition at line 72 of file eit.h.

#define DVB_TABLE_EIT_SCHEDULE_OTHER

Start table ID for the DVB EIT schedule data on other TS The range has 0x0f elements (0x60 to 0x6F).

Definition at line 73 of file eit.h.

#define DVB_TABLE_NIT

NIT table ID.

Definition at line 61 of file nit.h.

#define DVB_TABLE_NIT2

NIT table ID (alternative table ID)

Definition at line 62 of file nit.h.

#define DVB_TABLE_NIT_PID

NIT Program ID.

Definition at line 63 of file nit.h.

#define DVB_TABLE_PAT

PAT table ID.

Definition at line 55 of file pat.h.

#define DVB_TABLE_PAT_PID

PAT Program ID.

Definition at line 56 of file pat.h.

#define DVB_TABLE_PMT

PMT table ID.

Definition at line 52 of file pmt.h.

#define DVB_TABLE_SDT

SDT table ID.

Definition at line 58 of file sdt.h.

#define DVB_TABLE_SDT2

SDT table ID (alternative table ID)

Definition at line 59 of file sdt.h.

#define DVB_TABLE_SDT_PID

SDT Program ID.

Definition at line 60 of file sdt.h.

Typedef Documentation

typedef void(* dvb_desc_ext_free_func)(const void *desc)

Function prototype for the extended descriptors parsing free code.

Parameters
descstruct dvb_desc pointer

Definition at line 157 of file desc_extension.h.

typedef int(* dvb_desc_ext_init_func)(struct dvb_v5_fe_parms *parms, const uint8_t *buf, struct dvb_extension_descriptor *ext, void *desc)

Function prototype for the extended descriptors parsing init code.

Parameters
parmsStruct dvb_v5_fe_parms pointer
bufbuffer with the content of the descriptor
extstruct dvb_extension_descriptor pointer
descstruct dvb_desc pointer

Definition at line 135 of file desc_extension.h.

typedef void(* dvb_desc_ext_print_func)(struct dvb_v5_fe_parms *parms, const struct dvb_extension_descriptor *ext, const void *desc)

Function prototype for the extended descriptors parsing print code.

Parameters
parmsStruct dvb_v5_fe_parms pointer
bufbuffer with the content of the descriptor
extstruct dvb_extension_descriptor pointer
descstruct dvb_desc pointer

Definition at line 148 of file desc_extension.h.

typedef void(* dvb_desc_free_func)(struct dvb_desc *desc)

Function prototype for the descriptors memory free code.

Parameters
descpointer to struct dvb_desc pointer to be freed

Definition at line 232 of file descriptors.h.

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.

Parameters
parmsStruct dvb_v5_fe_parms pointer
bufbuffer with the content of the descriptor
descstruct dvb_desc pointer

Definition at line 213 of file descriptors.h.

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.

Parameters
parmsStruct dvb_v5_fe_parms pointer
descstruct dvb_desc pointer

Definition at line 223 of file descriptors.h.

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.

Parameters
parmsStruct dvb_v5_fe_parms pointer
bufBuffer with data to be parsed
buflenSize of the buffer to be parsed
tablepointer to a place where the allocated memory with the table structure will be stored.

Definition at line 79 of file descriptors.h.

typedef void nit_handler_callback_t(struct dvb_table_nit *nit, struct dvb_desc *desc, void *priv)

typedef for a callback used when a NIT table entry is found

Parameters
nita struct dvb_table_nit pointer
desca struct dvb_desc pointer
privan opaque optional pointer

Definition at line 164 of file nit.h.

typedef void nit_tran_handler_callback_t(struct dvb_table_nit *nit, struct dvb_table_nit_transport *tran, struct dvb_desc *desc, void *priv)

typedef for a callback used when a NIT transport table entry is found

Parameters
nita struct dvb_table_nit pointer
trana struct dvb_table_nit_transport pointer
desca struct dvb_desc pointer
privan opaque optional pointer

Definition at line 177 of file nit.h.

Enumeration Type Documentation

List containing all descriptors used by Digital TV MPEG-TS.

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_descriptior 

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 590 of file descriptors.h.

MPEG frame types.

Enumerator
DVB_MPEG_ES_FRAME_UNKNOWN 

Unknown frame.

DVB_MPEG_ES_FRAME_I 

I frame.

DVB_MPEG_ES_FRAME_P 

P frame.

DVB_MPEG_ES_FRAME_B 

B frame.

DVB_MPEG_ES_FRAME_D 

D frame.

Definition at line 165 of file mpeg_es.h.

Add support for MPEG-TS Stream types.

Enumerator
stream_reserved0 

ITU-T | ISO/IEC Reserved.

stream_video 

ISO/IEC 11172 Video.

stream_video_h262 

ITU-T Rec.

H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream

stream_audio 

ISO/IEC 11172 Audio.

stream_audio_13818_3 

ISO/IEC 13818-3 Audio.

stream_private_sections 

ITU-T Rec.

H.222.0 | ISO/IEC 13818-1 private_sections

stream_private_data 

ITU-T Rec.

H.222.0 | ISO/IEC 13818-1 PES packets containing private data

stream_mheg 

ISO/IEC 13522 MHEG.

stream_h222 

ITU-T Rec.

H.222.0 | ISO/IEC 13818-1 Annex A DSM-CC

stream_h222_1 

ITU-T Rec.

H.222.1

stream_13818_6_A 

ISO/IEC 13818-6 type A.

stream_13818_6_B 

ISO/IEC 13818-6 type B.

stream_13818_6_C 

ISO/IEC 13818-6 type C.

stream_13818_6_D 

ISO/IEC 13818-6 type D.

stream_h222_aux 

ITU-T Rec.

H.222.0 | ISO/IEC 13818-1 auxiliary

stream_audio_adts 

ISO/IEC 13818-7 Audio with ADTS transport syntax.

stream_video_14496_2 

ISO/IEC 14496-2 Visual.

stream_audio_latm 

ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3 / AMD 1.

stream_14496_1_pes 

ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets.

stream_14496_1_iso 

ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC14496_sections.

stream_download 

ISO/IEC 13818-6 Synchronized Download Protocol.

stream_reserved 

ITU-T Rec.

H.222.0 | ISO/IEC 13818-1 Reserved (from 0x15 to 0x7f)

stream_private 

User Private (from 0x80 to 0xff)

Definition at line 106 of file pmt.h.

Function Documentation

void atsc_table_eit_free ( struct atsc_table_eit table)

Frees all data allocated by the ATSC EIT table parser.

Parameters
tablepointer to struct atsc_table_eit to be freed
ssize_t atsc_table_eit_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct atsc_table_eit **  table 
)

Initializes and parses ATSC EIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the EIT raw data
buflenlength of the buffer
tablepointer to struct atsc_table_eit to be allocated and filled

This function allocates an ATSC EIT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void atsc_table_eit_print ( struct dvb_v5_fe_parms parms,
struct atsc_table_eit table 
)

Prints the content of the ATSC EIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct atsc_table_eit
void atsc_table_mgt_free ( struct atsc_table_mgt table)

Frees all data allocated by the MGT table parser.

Parameters
tablepointer to struct atsc_table_mgt to be freed
ssize_t atsc_table_mgt_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct atsc_table_mgt **  table 
)

Initializes and parses MGT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the MGT raw data
buflenlength of the buffer
tablepointer to struct atsc_table_mgt to be allocated and filled

This function allocates an ATSC MGT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void atsc_table_mgt_print ( struct dvb_v5_fe_parms parms,
struct atsc_table_mgt table 
)

Prints the content of the MGT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct atsc_table_mgt
void atsc_table_vct_free ( struct atsc_table_vct table)

Frees all data allocated by the VCT table parser.

Parameters
tablepointer to struct atsc_table_vct to be freed
ssize_t atsc_table_vct_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct atsc_table_vct **  table 
)

Initializes and parses VCT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the VCT raw data
buflenlength of the buffer
tablepointer to struct atsc_table_vct to be allocated and filled

This function allocates an ATSC VCT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void atsc_table_vct_print ( struct dvb_v5_fe_parms parms,
struct atsc_table_vct table 
)

Prints the content of the VCT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct atsc_table_vct
uint32_t dvb_bcd ( uint32_t  bcd)

Converts from BCD to CPU integer internal representation.

Parameters
bcdvalue in BCD encoding
void dvb_desc_free ( struct dvb_desc **  list)

frees a dvb_desc linked list

Parameters
liststruct dvb_desc pointer.
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

Parameters
parmsStruct dvb_v5_fe_parms pointer
bufBuffer with data to be parsed
buflenSize of the buffer to be parsed
head_descpointer to the place to store the parsed data

This function takes a buf as argument and parses it to find the MPEG-TS descriptors inside it, creating a linked list.

On success, head_desc will be allocated and filled with a linked list with the descriptors found inside the buffer.

This function is used by the several MPEG-TS table handlers to parse the entire table that got read by dvb_read_sessions and other similar functions.

Returns
Returns 0 on success, a negative value otherwise.
void dvb_desc_print ( struct dvb_v5_fe_parms parms,
struct dvb_desc desc 
)

prints the contents of a struct dvb_desc linked list

Parameters
parmsStruct dvb_v5_fe_parms pointer
descstruct dvb_desc pointer.
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

Parameters
parmsStruct dvb_v5_fe_parms pointer
prefixString to be printed before the dvb_hexdump
bufBuffer to hex dump
lenNumber of bytes to show
int dvb_mpeg_es_pic_start_init ( const uint8_t *  buf,
ssize_t  buflen,
struct dvb_mpeg_es_pic_start pic_start 
)

Initialize a struct dvb_mpeg_es_pic_start from buffer.

Parameters
bufBuffer
buflenLength of buffer
pic_startPointer to allocated structdvb_mpeg_es_pic_start
Returns
If buflen too small, return -1, 0 otherwise.

This function copies the length of struct dvb_mpeg_es_pic_start to pic_start and fixes endianness. seq_start has to be allocated with malloc.

void dvb_mpeg_es_pic_start_print ( struct dvb_v5_fe_parms parms,
struct dvb_mpeg_es_pic_start pic_start 
)

Print details of struct dvb_mpeg_es_pic_start.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
pic_startPointer to struct dvb_mpeg_es_pic_start to print

This function prints the fields of struct dvb_mpeg_es_pic_start

int dvb_mpeg_es_seq_start_init ( const uint8_t *  buf,
ssize_t  buflen,
struct dvb_mpeg_es_seq_start seq_start 
)

Initialize a struct dvb_mpeg_es_seq_start from buffer.

Parameters
bufBuffer
buflenLength of buffer
seq_startPointer to allocated struct dvb_mpeg_es_seq_start
Returns
If buflen too small, return -1, 0 otherwise.

This function copies the length of struct dvb_mpeg_es_seq_start to seq_start and fixes endianness. seq_start has to be allocated with malloc.

void dvb_mpeg_es_seq_start_print ( struct dvb_v5_fe_parms parms,
struct dvb_mpeg_es_seq_start seq_start 
)

Print details of struct dvb_mpeg_es_seq_start.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
seq_startPointer to struct dvb_mpeg_es_seq_start to print

This function prints the fields of struct dvb_mpeg_es_seq_start

void dvb_mpeg_pes_free ( struct dvb_mpeg_pes pes)

Deallocate memory associated with a struct dvb_mpeg_pes.

Parameters
pesstruct dvb_mpeg_pes to be deallocated

If the pointer pes was allocated dynamically, this function can be used to free the memory.

ssize_t dvb_mpeg_pes_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
uint8_t *  table 
)

Initialize a struct dvb_mpeg_pes from buffer.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
bufBuffer
buflenLength of buffer
tablePointer to allocated struct dvb_mpeg_pes
Returns
Length of data in table

This function copies the length of struct dvb_mpeg_pes to table and fixes endianness. The pointer table has to be allocated on stack or dynamically.

void dvb_mpeg_pes_print ( struct dvb_v5_fe_parms parms,
struct dvb_mpeg_pes pes 
)

Print details of struct dvb_mpeg_pes.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
pesPointer to struct dvb_mpeg_pes to print

This function prints the fields of struct dvb_mpeg_pes

void dvb_mpeg_ts_free ( struct dvb_mpeg_ts ts)

Deallocate memory associated with a struct dvb_mpeg_ts.

Parameters
tsstruct dvb_mpeg_ts to be deallocated

If ts was allocated dynamically, this function can be used to free the memory.

ssize_t dvb_mpeg_ts_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
uint8_t *  table,
ssize_t *  table_length 
)

Initialize a struct dvb_mpeg_ts from buffer.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
bufBuffer
buflenLength of buffer
tablePointer to allocated struct dvb_mpeg_ts
table_lengthPointer to size_t where length will be written to
Returns
Length of data in table

This function copies the length of struct dvb_mpeg_ts to table and fixes endianness. The pointer table has to be allocated on stack or dynamically.

void dvb_mpeg_ts_print ( struct dvb_v5_fe_parms parms,
struct dvb_mpeg_ts ts 
)

Print details of struct dvb_mpeg_ts.

Parameters
parmsstruct dvb_v5_fe_parms for log functions
tsPointer to struct dvb_mpeg_ts to print

This function prints the fields of struct dvb_mpeg_ts

void dvb_table_eit_free ( struct dvb_table_eit table)

Frees all data allocated by the DVB EIT table parser.

Parameters
tablepointer to struct dvb_table_eit to be freed
ssize_t dvb_table_eit_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct dvb_table_eit **  table 
)

Initializes and parses EIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the EIT raw data
buflenlength of the buffer
tablepointer to struct dvb_table_eit to be allocated and filled

This function allocates an EIT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void dvb_table_eit_print ( struct dvb_v5_fe_parms parms,
struct dvb_table_eit table 
)

Prints the content of the DVB EIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_eit
void dvb_table_header_init ( struct dvb_table_header header)

Initializes and parses MPEG-TS table header.

Parameters
headerpointer to struct dvb_table_header to be parsed
void dvb_table_header_print ( struct dvb_v5_fe_parms parms,
const struct dvb_table_header header 
)

Prints the content of the MPEG-TS table header.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
headerpointer to struct dvb_table_header to be printed
void dvb_table_nit_descriptor_handler ( struct dvb_v5_fe_parms parms,
struct dvb_table_nit table,
enum descriptors  descriptor,
nit_handler_callback_t call_nit,
nit_tran_handler_callback_t call_tran,
void *  priv 
)

For each entry at NIT and NIT transport tables, call a callback.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_nit
descriptorindicates the NIT table descriptor to seek
call_nita nit_handler_callback_t function to be called when a new entry at the NIT table is found (or NULL).
call_trana nit_tran_handler_callback_t function to be called when a new entry at the NIT transport table is found (or NULL).
privan opaque pointer to be optionally used by the callbacks. The function won't touch on it, just use as an argument for the callback functions.

When parsing a NIT entry, we need to call some code to properly handle when a given descriptor in the table is found. This is used, for example, to create newer transponders to seek during scan.

For example, to seek for the CATV delivery system descriptor and call a function that would add a new transponder to a scan procedure:

1 dvb_table_nit_descriptor_handler(
2  &parms->p, dvb_scan_handler->nit,
3  cable_delivery_system_descriptor,
4  NULL, add_update_nit_dvbc, &tr);
void dvb_table_nit_free ( struct dvb_table_nit table)

Frees all data allocated by the NIT table parser.

Parameters
tablepointer to struct dvb_table_nit to be freed
ssize_t dvb_table_nit_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct dvb_table_nit **  table 
)

Initializes and parses NIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the NIT raw data
buflenlength of the buffer
tablepointer to struct dvb_table_nit to be allocated and filled

This function allocates a NIT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void dvb_table_nit_print ( struct dvb_v5_fe_parms parms,
struct dvb_table_nit table 
)

Prints the content of the NIT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_nit
void dvb_table_pat_free ( struct dvb_table_pat table)

Frees all data allocated by the PAT table parser.

Parameters
tablepointer to struct dvb_table_pat to be freed
ssize_t dvb_table_pat_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct dvb_table_pat **  table 
)

Initializes and parses PAT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the PAT raw data
buflenlength of the buffer
tablepointer to struct dvb_table_pat to be allocated and filled

This function allocates a PAT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void dvb_table_pat_print ( struct dvb_v5_fe_parms parms,
struct dvb_table_pat table 
)

Prints the content of the PAT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_pat
void dvb_table_pmt_free ( struct dvb_table_pmt table)

Frees all data allocated by the PMT table parser.

Parameters
tablepointer to struct dvb_table_pmt to be freed
ssize_t dvb_table_pmt_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct dvb_table_pmt **  table 
)

Initializes and parses PMT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the PMT raw data
buflenlength of the buffer
tablepointer to struct dvb_table_pmt to be allocated and filled

This function allocates a PMT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void dvb_table_pmt_print ( struct dvb_v5_fe_parms parms,
const struct dvb_table_pmt table 
)

Prints the content of the PAT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_pmt
void dvb_table_sdt_free ( struct dvb_table_sdt table)

Frees all data allocated by the SDT table parser.

Parameters
tablepointer to struct dvb_table_sdt to be freed
ssize_t dvb_table_sdt_init ( struct dvb_v5_fe_parms parms,
const uint8_t *  buf,
ssize_t  buflen,
struct dvb_table_sdt **  table 
)

Initializes and parses SDT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
bufbuffer containing the SDT raw data
buflenlength of the buffer
tablepointer to struct dvb_table_sdt to be allocated and filled

This function allocates a SDT table and fills the fields inside the struct. It also makes sure that all fields will follow the CPU endianness. Due to that, the content of the buffer may change.

Returns
On success, it returns the size of the allocated struct. A negative value indicates an error.
void dvb_table_sdt_print ( struct dvb_v5_fe_parms parms,
struct dvb_table_sdt table 
)

Prints the content of the SDT table.

Parameters
parmsstruct dvb_v5_fe_parms pointer to the opened device
tablepointer to struct dvb_table_sdt
void dvb_time ( const uint8_t  data[5],
struct tm *  tm 
)

Converts a DVB EIT formatted timestamp into struct tm.

Parameters
dataevent on DVB EIT time format
tmpointer to struct tm where the converted timestamp will be stored.

Variable Documentation

const struct dvb_descriptor dvb_descriptors[]

Contains the parsers for the several descriptors.

const char* dvb_mpeg_es_frame_names[5]

Vector that translates from enum dvb_mpeg_es_frame_t to string.

const dvb_table_init_func dvb_table_initializers[256]

Table with all possible descriptors.

const char* pmt_stream_name[]

Converts from enum dvb_streams into a string.