libdvbv5: Digital TV table parsing

libdvbv5 1.28.1 Library to work with Digital TV devices on Linux

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

## Typedefs
typedef void(* | dvb_table_init_func) (struct dvb_v5_fe_parms *parms, const uint8_t *buf, ssize_t buflen, void **table)
| Function prototype for a function that initializes the descriptors parsing on a table.
typedef int(* | dvb_desc_init_func) (struct dvb_v5_fe_parms *parms, const uint8_t *buf, struct dvb_desc *desc)
| Function prototype for the descriptors parsing init code.
typedef void(* | dvb_desc_print_func) (struct dvb_v5_fe_parms *parms, const struct dvb_desc *desc)
| Function prototype for the descriptors parsing print code.
typedef void(* | dvb_desc_free_func) (struct dvb_desc *desc)
| Function prototype for the descriptors memory free code.
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
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
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.
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.
typedef void(* | dvb_desc_ext_free_func) (const void *desc)
| Function prototype for the extended descriptors parsing free code.

## Enumerations
enum | descriptors { video_stream_descriptor , audio_stream_descriptor , hierarchy_descriptor , registration_descriptor , ds_alignment_descriptor , target_background_grid_descriptor , video_window_descriptor , conditional_access_descriptor , iso639_language_descriptor , system_clock_descriptor , multiplex_buffer_utilization_descriptor , copyright_descriptor , maximum_bitrate_descriptor , private_data_indicator_descriptor , smoothing_buffer_descriptor , std_descriptor , ibp_descriptor , mpeg4_video_descriptor , mpeg4_audio_descriptor , iod_descriptor , sl_descriptor , fmc_descriptor , external_es_id_descriptor , muxcode_descriptor , fmxbuffersize_descriptor , multiplexbuffer_descriptor , content_labeling_descriptor , metadata_pointer_descriptor , metadata_descriptor , metadata_std_descriptor , AVC_video_descriptor , ipmp_descriptor , AVC_timing_and_HRD_descriptor , mpeg2_aac_audio_descriptor , flexmux_timing_descriptor , network_name_descriptor , service_list_descriptor , stuffing_descriptor , satellite_delivery_system_descriptor , cable_delivery_system_descriptor , VBI_data_descriptor , VBI_teletext_descriptor , bouquet_name_descriptor , service_descriptor , country_availability_descriptor , linkage_descriptor , NVOD_reference_descriptor , time_shifted_service_descriptor , short_event_descriptor , extended_event_descriptor , time_shifted_event_descriptor , component_descriptor , mosaic_descriptor , stream_identifier_descriptor , CA_identifier_descriptor , content_descriptor , parental_rating_descriptor , teletext_descriptor , telephone_descriptor , local_time_offset_descriptor , subtitling_descriptor , terrestrial_delivery_system_descriptor , multilingual_network_name_descriptor , multilingual_bouquet_name_descriptor , multilingual_service_name_descriptor , multilingual_component_descriptor , private_data_specifier_descriptor , service_move_descriptor , short_smoothing_buffer_descriptor , frequency_list_descriptor , partial_transport_stream_descriptor , data_broadcast_descriptor , scrambling_descriptor , data_broadcast_id_descriptor , transport_stream_descriptor , DSNG_descriptor , PDC_descriptor , AC_3_descriptor , ancillary_data_descriptor , cell_list_descriptor , cell_frequency_link_descriptor , announcement_support_descriptor , application_signalling_descriptor , adaptation_field_data_descriptor , service_identifier_descriptor , service_availability_descriptor , default_authority_descriptor , related_content_descriptor , TVA_id_descriptor , content_identifier_descriptor , time_slice_fec_identifier_descriptor , ECM_repetition_rate_descriptor , S2_satellite_delivery_system_descriptor , enhanced_AC_3_descriptor , DTS_descriptor , AAC_descriptor , XAIT_location_descriptor , FTA_content_management_descriptor , extension_descriptor , CUE_identifier_descriptor , extended_channel_name , service_location , component_name_descriptor , logical_channel_number_descriptor , carousel_id_descriptor , association_tag_descriptor , deferred_association_tags_descriptor , hierarchical_transmission_descriptor , digital_copy_control_descriptor , network_identifier_descriptor , partial_transport_stream_time_descriptor , audio_component_descriptor , hyperlink_descriptor , target_area_descriptor , data_contents_descriptor , video_decode_control_descriptor , download_content_descriptor , CA_EMM_TS_descriptor , CA_contract_information_descriptor , CA_service_descriptor , TS_Information_descriptor , extended_broadcaster_descriptor , logo_transmission_descriptor , basic_local_event_descriptor , reference_descriptor , node_relation_descriptor , short_node_information_descriptor , STC_reference_descriptor , series_descriptor , event_group_descriptor , SI_parameter_descriptor , broadcaster_Name_Descriptor , component_group_descriptor , SI_prime_TS_descriptor , board_information_descriptor , LDT_linkage_descriptor , connected_transmission_descriptor , content_availability_descriptor , service_group_descriptor , carousel_compatible_composite_descriptor , conditional_playback_descriptor , ISDBT_delivery_system_descriptor , partial_reception_descriptor , emergency_information_descriptor , data_component_descriptor , system_management_descriptor , atsc_stuffing_descriptor , atsc_ac3_audio_descriptor , atsc_caption_service_descriptor , atsc_content_advisory_descriptor , atsc_extended_channel_descriptor , atsc_service_location_descriptor , atsc_time_shifted_service_descriptor , atsc_component_name_descriptor , atsc_DCC_departing_request_descriptor , atsc_DCC_arriving_request_descriptor , atsc_redistribution_control_descriptor , atsc_ATSC_private_information_descriptor , atsc_genre_descriptor }
| List containing all descriptors used by Digital TV MPEG-TS. More...
enum | dvb_streams { 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_video_h264 , stream_audio_14496_3 , stream_video_hevc , stream_video_cavs , stream_video_moto , stream_audio_a52 , stream_scte_27 , stream_audio_sdds , stream_audio_dts_hdmv , stream_audio_e_ac3 , stream_audio_dts , stream_audio_a52_vls , stream_spu_vls , stream_audio_sdds2 }
| 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.
void | dvb_hexdump (struct dvb_v5_fe_parms *parms, const char *prefix, const unsigned char *buf, int len)
| dumps data into the logs in hexadecimal format
int | dvb_desc_parse (struct dvb_v5_fe_parms *parms, const uint8_t *buf, uint16_t buflen, struct dvb_desc **head_desc)
| parse MPEG-TS descriptors
void | dvb_desc_free (struct dvb_desc **list)
| frees a dvb_desc linked list
void | dvb_desc_print (struct dvb_v5_fe_parms *parms, struct dvb_desc *desc)
| prints the contents of a struct dvb_desc linked list
void | dvb_table_header_init (struct dvb_table_header *header)
| Initializes and parses MPEG-TS table header.
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.
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.
void | atsc_table_eit_free (struct atsc_table_eit *table)
| Frees all data allocated by the ATSC EIT table parser.
void | atsc_table_eit_print (struct dvb_v5_fe_parms *parms, struct atsc_table_eit *table)
| Prints the content of the ATSC EIT table.
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.
void | dvb_table_eit_free (struct dvb_table_eit *table)
| Frees all data allocated by the DVB EIT table parser.
void | dvb_table_eit_print (struct dvb_v5_fe_parms *parms, struct dvb_table_eit *table)
| Prints the content of the DVB EIT table.
void | dvb_time (const uint8_t data[5], struct tm *tm)
| Converts a DVB EIT formatted timestamp into struct tm.
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.
void | atsc_table_mgt_free (struct atsc_table_mgt *table)
| Frees all data allocated by the MGT table parser.
void | atsc_table_mgt_print (struct dvb_v5_fe_parms *parms, struct atsc_table_mgt *table)
| Prints the content of the MGT table.
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.
void | dvb_table_nit_free (struct dvb_table_nit *table)
| Frees all data allocated by the NIT table parser.
void | dvb_table_nit_print (struct dvb_v5_fe_parms *parms, struct dvb_table_nit *table)
| Prints the content of the NIT table.
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.
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.
void | dvb_table_pat_free (struct dvb_table_pat *table)
| Frees all data allocated by the PAT table parser.
void | dvb_table_pat_print (struct dvb_v5_fe_parms *parms, struct dvb_table_pat *table)
| Prints the content of the PAT table.
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.
void | dvb_table_pmt_free (struct dvb_table_pmt *table)
| Frees all data allocated by the PMT table parser.
void | dvb_table_pmt_print (struct dvb_v5_fe_parms *parms, const struct dvb_table_pmt *table)
| Prints the content of the PAT table.
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.
void | dvb_table_sdt_free (struct dvb_table_sdt *table)
| Frees all data allocated by the SDT table parser.
void | dvb_table_sdt_print (struct dvb_v5_fe_parms *parms, struct dvb_table_sdt *table)
| Prints the content of the SDT table.
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.
void | atsc_table_vct_free (struct atsc_table_vct *table)
| Frees all data allocated by the VCT table parser.
void | atsc_table_vct_print (struct dvb_v5_fe_parms *parms, struct atsc_table_vct *table)
| Prints the content of the VCT table.
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.
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.
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.
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.
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.
void | dvb_mpeg_pes_free (struct dvb_mpeg_pes *pes)
| Deallocate memory associated with a struct dvb_mpeg_pes.
void | dvb_mpeg_pes_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_pes *pes)
| Print details of struct dvb_mpeg_pes.
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.
void | dvb_mpeg_ts_free (struct dvb_mpeg_ts *ts)
| Deallocate memory associated with a struct dvb_mpeg_ts.
void | dvb_mpeg_ts_print (struct dvb_v5_fe_parms *parms, struct dvb_mpeg_ts *ts)
| Print details of struct dvb_mpeg_ts.

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

## Detailed Description

## Macro Definition Documentation

## ◆ ATSC_BASE_PID

#define ATSC_BASE_PID

ATSC PID for the Program and System Information Protocol.

Definition at line 44 of file atsc_header.h.

## ◆ atsc_eit_event_foreach

#define atsc_eit_event_foreach | ( |  | _event,
|  |  | _eit )

Macro used to find event on an ATSC EIT table.

Parameters

  _event | event to seek
  _eit | pointer to struct atsc_table_eit_event

Definition at line 160 of file atsc_eit.h.

## ◆ ATSC_TABLE_CVCT

#define ATSC_TABLE_CVCT

CVCT table ID.

Definition at line 60 of file vct.h.

## ◆ ATSC_TABLE_EIT

#define ATSC_TABLE_EIT

ATSC EIT table ID.

Definition at line 53 of file atsc_eit.h.

## ◆ ATSC_TABLE_MGT

#define ATSC_TABLE_MGT

ATSC MGT table ID.

Definition at line 51 of file mgt.h.

## ◆ ATSC_TABLE_TVCT

#define ATSC_TABLE_TVCT

TVCT table ID.

Definition at line 59 of file vct.h.

## ◆ ATSC_TABLE_VCT_PID

#define ATSC_TABLE_VCT_PID

Program ID with the VCT tables on it.

Definition at line 61 of file vct.h.

## ◆ atsc_vct_channel_foreach

#define atsc_vct_channel_foreach | ( |  | _channel,
|  |  | _vct )

Macro used to find channels on a VCT table.

Parameters

  _channel | channel to seek
  _vct | pointer to struct atsc_table_vct_channel

Definition at line 202 of file vct.h.

## ◆ DVB_CRC_SIZE

#define DVB_CRC_SIZE

number of bytes for the descriptor's CRC check

Definition at line 61 of file descriptors.h.

## ◆ dvb_eit_event_foreach

#define dvb_eit_event_foreach | ( |  | _event,
|  |  | _eit )

Macro used to find event on a DVB EIT table.

Parameters

  _event | event to seek
  _eit | pointer to struct dvb_table_eit_event

Definition at line 162 of file eit.h.

## ◆ DVB_MAX_PAYLOAD_PACKET_SIZE

#define DVB_MAX_PAYLOAD_PACKET_SIZE

Maximum size of a table session to be parsed.

Definition at line 55 of file descriptors.h.

## ◆ DVB_MPEG_ES_GOP

#define DVB_MPEG_ES_GOP

Group Of Pictures.

Definition at line 67 of file mpeg_es.h.

## ◆ DVB_MPEG_ES_PIC_START

#define DVB_MPEG_ES_PIC_START

Picture Start.

Definition at line 63 of file mpeg_es.h.

## ◆ DVB_MPEG_ES_SEQ_EXT

#define DVB_MPEG_ES_SEQ_EXT

Extension.

Definition at line 66 of file mpeg_es.h.

## ◆ DVB_MPEG_ES_SEQ_START

#define DVB_MPEG_ES_SEQ_START

Sequence Start.

Definition at line 65 of file mpeg_es.h.

## ◆ DVB_MPEG_ES_SLICES

#define DVB_MPEG_ES_SLICES

Slices.

Definition at line 68 of file mpeg_es.h.

## ◆ DVB_MPEG_ES_USER_DATA

#define DVB_MPEG_ES_USER_DATA

User Data.

Definition at line 64 of file mpeg_es.h.

## ◆ DVB_MPEG_PES

#define DVB_MPEG_PES

MPEG Packetized Elementary Stream magic.

Definition at line 80 of file mpeg_pes.h.

## ◆ DVB_MPEG_PES_AUDIO

#define DVB_MPEG_PES_AUDIO

PES Audio.

Definition at line 82 of file mpeg_pes.h.

## ◆ DVB_MPEG_PES_VIDEO

#define DVB_MPEG_PES_VIDEO

PES Video.

Definition at line 83 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_DIRECTORY

#define DVB_MPEG_STREAM_DIRECTORY

PES Stream directory.

Definition at line 90 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_DSMCC

#define DVB_MPEG_STREAM_DSMCC

PES DSMCC.

Definition at line 91 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_ECM

#define DVB_MPEG_STREAM_ECM

PES ECM Stream.

Definition at line 88 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_EMM

#define DVB_MPEG_STREAM_EMM

PES EMM Stream.

Definition at line 89 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_H222E

#define DVB_MPEG_STREAM_H222E

PES H.222.1 type E.

Definition at line 92 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_MAP

#define DVB_MPEG_STREAM_MAP

PES Stream map.

Definition at line 85 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_PADDING

#define DVB_MPEG_STREAM_PADDING

PES padding.

Definition at line 86 of file mpeg_pes.h.

## ◆ DVB_MPEG_STREAM_PRIVATE_2

#define DVB_MPEG_STREAM_PRIVATE_2

PES private.

Definition at line 87 of file mpeg_pes.h.

## ◆ DVB_MPEG_TS

#define DVB_MPEG_TS

MPEG Transport Stream magic.

Definition at line 50 of file mpeg_ts.h.

## ◆ DVB_MPEG_TS_PACKET_SIZE

#define DVB_MPEG_TS_PACKET_SIZE

Size of an MPEG packet.

Definition at line 51 of file mpeg_ts.h.

## ◆ dvb_nit_transport_foreach

#define dvb_nit_transport_foreach | ( |  | _tran,
|  |  | _nit )

Macro used to find a transport inside a NIT table.

Parameters

  _tran | transport to seek
  _nit | pointer to struct dvb_table_nit_transport

Definition at line 189 of file nit.h.

## ◆ dvb_pat_program_foreach

#define dvb_pat_program_foreach | ( |  | _pgm,
|  |  | _pat )

Macro used to find programs on a PAT table.

Parameters

  _pgm | program to seek
  _pat | pointer to struct dvb_table_pat_program

Definition at line 121 of file pat.h.

## ◆ dvb_pmt_stream_foreach

#define dvb_pmt_stream_foreach | ( |  | _stream,
|  |  | _pmt )

Macro used to find streams on a PMT table.

Parameters

  _stream | stream to seek
  _pmt | pointer to struct dvb_table_pmt_stream

Definition at line 243 of file pmt.h.

## ◆ dvb_sdt_service_foreach

#define dvb_sdt_service_foreach | ( |  | _service,
|  |  | _sdt )

Macro used to find services on a SDT table.

Parameters

  _service | service to seek
  _sdt | pointer to struct dvb_table_sdt_service

Definition at line 137 of file sdt.h.

## ◆ DVB_TABLE_CAT

#define DVB_TABLE_CAT

ATSC CAT table ID.

Definition at line 47 of file cat.h.

## ◆ DVB_TABLE_CAT_PID

#define DVB_TABLE_CAT_PID

ATSC PID table ID.

Definition at line 48 of file cat.h.

## ◆ DVB_TABLE_EIT

#define DVB_TABLE_EIT

DVB EIT table ID for the actual TS.

Definition at line 68 of file eit.h.

## ◆ DVB_TABLE_EIT_OTHER

#define DVB_TABLE_EIT_OTHER

DVB EIT table ID for other TS.

Definition at line 69 of file eit.h.

## ◆ DVB_TABLE_EIT_PID

#define DVB_TABLE_EIT_PID

DVB EIT Program ID.

Definition at line 70 of file eit.h.

## ◆ DVB_TABLE_EIT_SCHEDULE

#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.

## ◆ DVB_TABLE_EIT_SCHEDULE_OTHER

#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.

## ◆ DVB_TABLE_NIT

#define DVB_TABLE_NIT

NIT table ID.

Definition at line 61 of file nit.h.

## ◆ DVB_TABLE_NIT2

#define DVB_TABLE_NIT2

NIT table ID (alternative table ID)

Definition at line 62 of file nit.h.

## ◆ DVB_TABLE_NIT_PID

#define DVB_TABLE_NIT_PID

NIT Program ID.

Definition at line 63 of file nit.h.

## ◆ DVB_TABLE_PAT

#define DVB_TABLE_PAT

PAT table ID.

Definition at line 55 of file pat.h.

## ◆ DVB_TABLE_PAT_PID

#define DVB_TABLE_PAT_PID

PAT Program ID.

Definition at line 56 of file pat.h.

## ◆ DVB_TABLE_PMT

#define DVB_TABLE_PMT

PMT table ID.

Definition at line 52 of file pmt.h.

## ◆ DVB_TABLE_SDT

#define DVB_TABLE_SDT

SDT table ID.

Definition at line 58 of file sdt.h.

## ◆ DVB_TABLE_SDT2

#define DVB_TABLE_SDT2

SDT table ID (alternative table ID)

Definition at line 59 of file sdt.h.

## ◆ DVB_TABLE_SDT_PID

#define DVB_TABLE_SDT_PID

SDT Program ID.

Definition at line 60 of file sdt.h.

## Typedef Documentation

## ◆ dvb_desc_ext_free_func

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

Function prototype for the extended descriptors parsing free code.

Parameters

  desc | struct dvb_desc pointer

Definition at line 156 of file desc_extension.h.

## ◆ dvb_desc_ext_init_func

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

  parms | Struct dvb_v5_fe_parms pointer
  buf | buffer with the content of the descriptor
  ext | struct dvb_extension_descriptor pointer
  desc | struct dvb_desc pointer

Definition at line 135 of file desc_extension.h.

## ◆ dvb_desc_ext_print_func

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

  parms | Struct dvb_v5_fe_parms pointer
  ext | struct dvb_extension_descriptor pointer
  desc | struct dvb_desc pointer

Definition at line 147 of file desc_extension.h.

## ◆ dvb_desc_free_func

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

Function prototype for the descriptors memory free code.

Parameters

  desc | pointer to struct dvb_desc pointer to be freed

Definition at line 234 of file descriptors.h.

## ◆ dvb_desc_init_func

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

  parms | Struct dvb_v5_fe_parms pointer
  buf | buffer with the content of the descriptor
  desc | struct dvb_desc pointer

Definition at line 215 of file descriptors.h.

## ◆ dvb_desc_print_func

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

  parms | Struct dvb_v5_fe_parms pointer
  desc | struct dvb_desc pointer

Definition at line 225 of file descriptors.h.

## ◆ dvb_table_init_func

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

  parms | Struct dvb_v5_fe_parms pointer
  buf | Buffer with data to be parsed
  buflen | Size of the buffer to be parsed
  table | pointer to a place where the allocated memory with the table structure will be stored.

Definition at line 79 of file descriptors.h.

## ◆ nit_handler_callback_t

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

  nit | a struct dvb_table_nit pointer
  desc | a struct dvb_desc pointer
  priv | an opaque optional pointer

Definition at line 164 of file nit.h.

## ◆ nit_tran_handler_callback_t

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

  nit | a struct dvb_table_nit pointer
  tran | a struct dvb_table_nit_transport pointer
  desc | a struct dvb_desc pointer
  priv | an opaque optional pointer

Definition at line 177 of file nit.h.

## Enumeration Type Documentation

## ◆ descriptors

enum descriptors

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_descriptor | transport_stream_information descriptor - ABNT NBR 15603-1 2007
extended_broadcaster_descriptor | extended_broadcaster descriptor - ABNT NBR 15603-1 2007
logo_transmission_descriptor | logo_transmission descriptor - ABNT NBR 15603-1 2007
basic_local_event_descriptor | basic_local_event descriptor - ABNT NBR 15603-1 2007
reference_descriptor | reference descriptor - ABNT NBR 15603-1 2007
node_relation_descriptor | node_relation descriptor - ABNT NBR 15603-1 2007
short_node_information_descriptor | short_node_information descriptor - ABNT NBR 15603-1 2007
STC_reference_descriptor | STC_reference descriptor - ABNT NBR 15603-1 2007.
series_descriptor | series descriptor - ABNT NBR 15603-1 2007
event_group_descriptor | event_group descriptor - ABNT NBR 15603-1 2007
SI_parameter_descriptor | SI_parameter descriptor - ABNT NBR 15603-1 2007.
broadcaster_Name_Descriptor | broadcaster_Name descriptor - ABNT NBR 15603-1 2007
component_group_descriptor | component_group descriptor - ABNT NBR 15603-1 2007
SI_prime_TS_descriptor | SI_prime_transport_stream descriptor - ABNT NBR 15603-1 2007.
board_information_descriptor | board_information descriptor - ABNT NBR 15603-1 2007
LDT_linkage_descriptor | LDT_linkage descriptor - ABNT NBR 15603-1 2007.
connected_transmission_descriptor | connected_transmission descriptor - ABNT NBR 15603-1 2007
content_availability_descriptor | content_availability descriptor - ABNT NBR 15603-1 2007
service_group_descriptor | service_group descriptor - ABNT NBR 15603-1 2007
carousel_compatible_composite_descriptor | carousel_compatible_composite descriptor - ABNT NBR 15603-1 2007
conditional_playback_descriptor | conditional_playback descriptor - ABNT NBR 15603-1 2007
ISDBT_delivery_system_descriptor | ISDBT terrestrial_delivery_system descriptor - ABNT NBR 15603-1 2007.
partial_reception_descriptor | partial_reception descriptor - ABNT NBR 15603-1 2007
emergency_information_descriptor | emergency_information descriptor - ABNT NBR 15603-1 2007
data_component_descriptor | data_component descriptor - ABNT NBR 15603-1 2007
system_management_descriptor | system_management descriptor - ABNT NBR 15603-1 2007
atsc_stuffing_descriptor | atsc_stuffing descriptor - ATSC A/65:2009
atsc_ac3_audio_descriptor | atsc_ac3_audio descriptor - ATSC A/65:2009
atsc_caption_service_descriptor | atsc_caption_service descriptor - ATSC A/65:2009
atsc_content_advisory_descriptor | atsc_content_advisory descriptor - ATSC A/65:2009
atsc_extended_channel_descriptor | atsc_extended_channel descriptor - ATSC A/65:2009
atsc_service_location_descriptor | atsc_service_location descriptor - ATSC A/65:2009
atsc_time_shifted_service_descriptor | atsc_time_shifted_service descriptor - ATSC A/65:2009
atsc_component_name_descriptor | atsc_component_name descriptor - ATSC A/65:2009
atsc_DCC_departing_request_descriptor | atsc_DCC_departing_request descriptor - ATSC A/65:2009
atsc_DCC_arriving_request_descriptor | atsc_DCC_arriving_request descriptor - ATSC A/65:2009
atsc_redistribution_control_descriptor | atsc_redistribution_control descriptor - ATSC A/65:2009
atsc_ATSC_private_information_descriptor | atsc_ATSC_private_information descriptor - ATSC A/65:2009
atsc_genre_descriptor | atsc_genre descriptor - ATSC A/65:2009

Definition at line 592 of file descriptors.h.

## ◆ dvb_mpeg_es_frame_t

enum dvb_mpeg_es_frame_t

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.

## ◆ dvb_streams

enum dvb_streams

Add support for MPEG-TS Stream types.

Enumerator
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_video_h264 |
stream_audio_14496_3 |
stream_video_hevc |
stream_video_cavs |
stream_video_moto |
stream_audio_a52 |
stream_scte_27 |
stream_audio_sdds |
stream_audio_dts_hdmv |
stream_audio_e_ac3 |
stream_audio_dts |
stream_audio_a52_vls |
stream_spu_vls |
stream_audio_sdds2 |

Definition at line 100 of file pmt.h.

## Function Documentation

## ◆ atsc_table_eit_free()

void atsc_table_eit_free | ( | struct atsc_table_eit * | table | ) |

Frees all data allocated by the ATSC EIT table parser.

Parameters

  table | pointer to struct atsc_table_eit to be freed

## ◆ atsc_table_eit_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the EIT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ atsc_table_eit_print()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct atsc_table_eit

## ◆ atsc_table_mgt_free()

void atsc_table_mgt_free | ( | struct atsc_table_mgt * | table | ) |

Frees all data allocated by the MGT table parser.

Parameters

  table | pointer to struct atsc_table_mgt to be freed

## ◆ atsc_table_mgt_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the MGT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ atsc_table_mgt_print()

void atsc_table_mgt_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct atsc_table_mgt * | table )

Prints the content of the MGT table.

Parameters

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct atsc_table_mgt

## ◆ atsc_table_vct_free()

void atsc_table_vct_free | ( | struct atsc_table_vct * | table | ) |

Frees all data allocated by the VCT table parser.

Parameters

  table | pointer to struct atsc_table_vct to be freed

## ◆ atsc_table_vct_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the VCT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ atsc_table_vct_print()

void atsc_table_vct_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct atsc_table_vct * | table )

Prints the content of the VCT table.

Parameters

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct atsc_table_vct

## ◆ dvb_bcd()

uint32_t dvb_bcd | ( | uint32_t | bcd | ) |

Converts from BCD to CPU integer internal representation.

Parameters

  bcd | value in BCD encoding

## ◆ dvb_desc_free()

void dvb_desc_free | ( | struct dvb_desc ** | list | ) |

frees a dvb_desc linked list

Parameters

  list | struct dvb_desc pointer.

## ◆ 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

Parameters

  parms | Struct dvb_v5_fe_parms pointer
  buf | Buffer with data to be parsed
  buflen | Size of the buffer to be parsed
  head_desc | pointer 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.

## ◆ 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

Parameters

  parms | Struct dvb_v5_fe_parms pointer
  desc | struct dvb_desc pointer.

## ◆ 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

Parameters

  parms | Struct dvb_v5_fe_parms pointer
  prefix | String to be printed before the dvb_hexdump
  buf | Buffer to hex dump
  len | Number of bytes to show

## ◆ dvb_mpeg_es_pic_start_init()

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

  buf | Buffer
  buflen | Length of buffer
  pic_start | Pointer 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.

## ◆ dvb_mpeg_es_pic_start_print()

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

  parms | struct dvb_v5_fe_parms for log functions
  pic_start | Pointer to struct dvb_mpeg_es_pic_start to print

This function prints the fields of struct dvb_mpeg_es_pic_start

## ◆ dvb_mpeg_es_seq_start_init()

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

  buf | Buffer
  buflen | Length of buffer
  seq_start | Pointer 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.

## ◆ dvb_mpeg_es_seq_start_print()

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

  parms | struct dvb_v5_fe_parms for log functions
  seq_start | Pointer to struct dvb_mpeg_es_seq_start to print

This function prints the fields of struct dvb_mpeg_es_seq_start

## ◆ dvb_mpeg_pes_free()

void dvb_mpeg_pes_free | ( | struct dvb_mpeg_pes * | pes | ) |

Deallocate memory associated with a struct dvb_mpeg_pes.

Parameters

  pes | struct dvb_mpeg_pes to be deallocated

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

## ◆ dvb_mpeg_pes_init()

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

  parms | struct dvb_v5_fe_parms for log functions
  buf | Buffer
  buflen | Length of buffer
  table | Pointer 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.

## ◆ dvb_mpeg_pes_print()

void dvb_mpeg_pes_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct dvb_mpeg_pes * | pes )

Print details of struct dvb_mpeg_pes.

Parameters

  parms | struct dvb_v5_fe_parms for log functions
  pes | Pointer to struct dvb_mpeg_pes to print

This function prints the fields of struct dvb_mpeg_pes

## ◆ dvb_mpeg_ts_free()

void dvb_mpeg_ts_free | ( | struct dvb_mpeg_ts * | ts | ) |

Deallocate memory associated with a struct dvb_mpeg_ts.

Parameters

  ts | struct dvb_mpeg_ts to be deallocated

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

## ◆ dvb_mpeg_ts_init()

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

  parms | struct dvb_v5_fe_parms for log functions
  buf | Buffer
  buflen | Length of buffer
  table | Pointer to allocated struct dvb_mpeg_ts
  table_length | Pointer 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.

## ◆ dvb_mpeg_ts_print()

void dvb_mpeg_ts_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct dvb_mpeg_ts * | ts )

Print details of struct dvb_mpeg_ts.

Parameters

  parms | struct dvb_v5_fe_parms for log functions
  ts | Pointer to struct dvb_mpeg_ts to print

This function prints the fields of struct dvb_mpeg_ts

## ◆ dvb_table_eit_free()

void dvb_table_eit_free | ( | struct dvb_table_eit * | table | ) |

Frees all data allocated by the DVB EIT table parser.

Parameters

  table | pointer to struct dvb_table_eit to be freed

## ◆ dvb_table_eit_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the EIT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ dvb_table_eit_print()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_eit

## ◆ dvb_table_header_init()

void dvb_table_header_init | ( | struct dvb_table_header * | header | ) |

Initializes and parses MPEG-TS table header.

Parameters

  header | pointer to struct dvb_table_header to be parsed

## ◆ dvb_table_header_print()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  header | pointer to struct dvb_table_header to be printed

## ◆ dvb_table_nit_descriptor_handler()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_nit
  descriptor | indicates the NIT table descriptor to seek
  call_nit | a nit_handler_callback_t function to be called when a new entry at the NIT table is found (or NULL).
  call_tran | a nit_tran_handler_callback_t function to be called when a new entry at the NIT transport table is found (or NULL).
  priv | an 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:

dvb_table_nit_descriptor_handler(
&parms->p, dvb_scan_handler->nit,
cable_delivery_system_descriptor,
NULL, add_update_nit_dvbc, &tr);
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
dvb_table_nit_descriptor_handler
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.

## ◆ dvb_table_nit_free()

void dvb_table_nit_free | ( | struct dvb_table_nit * | table | ) |

Frees all data allocated by the NIT table parser.

Parameters

  table | pointer to struct dvb_table_nit to be freed

## ◆ dvb_table_nit_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the NIT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ dvb_table_nit_print()

void dvb_table_nit_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct dvb_table_nit * | table )

Prints the content of the NIT table.

Parameters

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_nit

## ◆ dvb_table_pat_free()

void dvb_table_pat_free | ( | struct dvb_table_pat * | table | ) |

Frees all data allocated by the PAT table parser.

Parameters

  table | pointer to struct dvb_table_pat to be freed

## ◆ dvb_table_pat_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the PAT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ dvb_table_pat_print()

void dvb_table_pat_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct dvb_table_pat * | table )

Prints the content of the PAT table.

Parameters

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_pat

## ◆ dvb_table_pmt_free()

void dvb_table_pmt_free | ( | struct dvb_table_pmt * | table | ) |

Frees all data allocated by the PMT table parser.

Parameters

  table | pointer to struct dvb_table_pmt to be freed

## ◆ dvb_table_pmt_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the PMT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ dvb_table_pmt_print()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_pmt

## ◆ dvb_table_sdt_free()

void dvb_table_sdt_free | ( | struct dvb_table_sdt * | table | ) |

Frees all data allocated by the SDT table parser.

Parameters

  table | pointer to struct dvb_table_sdt to be freed

## ◆ dvb_table_sdt_init()

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

  parms | struct dvb_v5_fe_parms pointer to the opened device
  buf | buffer containing the SDT raw data
  buflen | length of the buffer
  table | pointer 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.

## ◆ dvb_table_sdt_print()

void dvb_table_sdt_print | ( | struct dvb_v5_fe_parms * | parms,
|  | struct dvb_table_sdt * | table )

Prints the content of the SDT table.

Parameters

  parms | struct dvb_v5_fe_parms pointer to the opened device
  table | pointer to struct dvb_table_sdt

## ◆ dvb_time()

void dvb_time | ( | const uint8_t | data[5],
|  | struct tm * | tm )

Converts a DVB EIT formatted timestamp into struct tm.

Parameters

  data | event on DVB EIT time format
  tm | pointer to struct tm where the converted timestamp will be stored.

## Variable Documentation

## ◆ dvb_descriptors

const struct dvb_descriptor dvb_descriptors[]
| extern

Contains the parsers for the several descriptors.

## ◆ dvb_mpeg_es_frame_names

const char* dvb_mpeg_es_frame_names[5]
| extern

Vector that translates from enum dvb_mpeg_es_frame_t to string.

## ◆ dvb_table_initializers

const dvb_table_init_func dvb_table_initializers[256]
| extern

Table with all possible descriptors.

## ◆ pmt_stream_name

const char* pmt_stream_name[]
| extern

Converts from enum dvb_streams into a string.