libgpac
Documentation of the core library of GPAC. For more information, check out http://gpac.wp.mines-telecom.fr
|
#include <gpac/list.h>
#include <gpac/network.h>
#include <gpac/thread.h>
#include <gpac/internal/odf_dev.h>
#include <time.h>
#include <gpac/esi.h>
Macros | |
#define | SECTION_HEADER_LENGTH 3 /* header till the last bit of the section_length field */ |
#define | SECTION_ADDITIONAL_HEADER_LENGTH 5 /* header from the last bit of the section_length field to the payload */ |
#define | CRC_LENGTH 4 |
#define | GF_M2TS_MAX_STREAMS 8192 |
#define | GF_M2TS_MAX_SERVICES 65535 |
#define | GF_M2TS_UDP_BUFFER_SIZE 0x40000 |
#define | GF_M2TS_MAX_PCR 2576980377811ULL |
#define | ABSTRACT_ES |
#define | GF_M2TS_BASE_DESCRIPTOR u32 tag; |
#define | GF_M2TS_PSI_DEFAULT_REFRESH_RATE 200 |
Typedefs | |
typedef void(* | gf_m2ts_section_callback) (GF_M2TS_Demuxer *ts, GF_M2TS_SECTION_ES *es, GF_List *sections, u8 table_id, u16 ex_table_id, u8 version_number, u8 last_section_number, u32 status) |
Functions | |
const char * | gf_m2ts_get_stream_name (u32 streamType) |
Bool | gf_m2ts_probe_file (const char *fileName) |
GF_Err | gf_m2ts_restamp (char *buffer, u32 size, s64 ts_shift, u8 *is_pes) |
GF_M2TS_Demuxer * | gf_m2ts_demux_new () |
void | gf_m2ts_demux_del (GF_M2TS_Demuxer *ts) |
void | gf_m2ts_reset_parsers (GF_M2TS_Demuxer *ts) |
void | gf_m2ts_reset_parsers_for_program (GF_M2TS_Demuxer *ts, GF_M2TS_Program *prog) |
GF_ESD * | gf_m2ts_get_esd (GF_M2TS_ES *es) |
GF_Err | gf_m2ts_set_pes_framing (GF_M2TS_PES *pes, u32 mode) |
u32 | gf_m2ts_pes_get_framing_mode (GF_M2TS_PES *pes) |
void | gf_m2ts_es_del (GF_M2TS_ES *es, GF_M2TS_Demuxer *ts) |
GF_Err | gf_m2ts_process_data (GF_M2TS_Demuxer *ts, char *data, u32 data_size) |
u32 | gf_dvb_get_freq_from_url (const char *channels_config_path, const char *url) |
void | gf_m2ts_demux_dmscc_init (GF_M2TS_Demuxer *ts) |
void | gf_m2ts_pause_demux (GF_M2TS_Demuxer *ts, Bool do_pause) |
GF_M2TS_SDT * | gf_m2ts_get_sdt_info (GF_M2TS_Demuxer *ts, u32 program_id) |
Bool | gf_m2ts_crc32_check (char *data, u32 len) |
void | gf_m2ts_abort_parsing (GF_M2TS_Demuxer *ts, Bool force_reset_pes) |
void | gf_m2ts_print_info (GF_M2TS_Demuxer *ts) |
GF_Err | gf_m2ts_demux_file (GF_M2TS_Demuxer *ts, const char *fileName, u64 start_byterange, u64 end_byterange, u32 refresh_type, Bool signal_end_of_stream) |
GF_M2TS_Mux * | gf_m2ts_mux_new (u32 mux_rate, u32 pat_refresh_rate, Bool real_time) |
void | gf_m2ts_mux_del (GF_M2TS_Mux *mux) |
void | gf_m2ts_mux_set_pcr_max_interval (GF_M2TS_Mux *muxer, u32 pcr_update_ms) |
GF_M2TS_Mux_Program * | gf_m2ts_mux_program_add (GF_M2TS_Mux *muxer, u32 program_number, u32 pmt_pid, u32 pmt_refresh_rate, u32 pcr_offset, Bool mpeg4_signaling) |
GF_M2TS_Mux_Stream * | gf_m2ts_program_stream_add (GF_M2TS_Mux_Program *program, GF_ESInterface *ifce, u32 pid, Bool is_pcr, Bool force_pes_mode) |
void | gf_m2ts_mux_update_config (GF_M2TS_Mux *mux, Bool reset_time) |
GF_M2TS_Mux_Program * | gf_m2ts_mux_program_find (GF_M2TS_Mux *muxer, u32 program_number) |
const char * | gf_m2ts_mux_process (GF_M2TS_Mux *muxer, u32 *status, u32 *usec_till_next) |
u32 | gf_m2ts_get_sys_clock (GF_M2TS_Mux *muxer) |
u32 | gf_m2ts_get_ts_clock (GF_M2TS_Mux *muxer) |
GF_Err | gf_m2ts_mux_use_single_au_pes_mode (GF_M2TS_Mux *muxer, GF_M2TS_PackMode au_pes_mode) |
GF_Err | gf_m2ts_mux_set_initial_pcr (GF_M2TS_Mux *muxer, u64 init_pcr_value) |
GF_Err | gf_m2ts_mux_enable_pcr_only_packets (GF_M2TS_Mux *muxer, Bool enable_forced_pcr) |
GF_Err | gf_m2ts_program_stream_update_ts_scale (GF_ESInterface *_self, u32 time_scale) |
void | gf_m2ts_mux_program_set_name (GF_M2TS_Mux_Program *program, const char *program_name, const char *mux_provider_name) |
void | gf_m2ts_mux_enable_sdt (GF_M2TS_Mux *mux, u32 refresh_rate_ms) |
GF_Err | gf_m2ts_demuxer_setup (GF_M2TS_Demuxer *ts, const char *url, Bool loop) |
GF_Err | gf_m2ts_demuxer_play (GF_M2TS_Demuxer *ts) |
GF_Err | gf_m2ts_demuxer_close (GF_M2TS_Demuxer *ts) |
GF_Err | gf_m2ts_get_socket (const char *url, const char *mcast_ifce_or_mobileip, u32 buf_size, GF_Socket **out_socket) |
struct GF_M2TS_Section |
Data Fields | ||
---|---|---|
unsigned char * | data | |
u32 | data_size |
struct GF_M2TS_Table |
struct GF_M2TS_SectionFilter |
Data Fields | ||
---|---|---|
s16 | cc | |
char * | section | |
u16 | length | |
u16 | received | |
GF_M2TS_Table * | table | |
Bool | process_individual | |
Bool | direct_dispatch | |
u32 | service_id | |
gf_m2ts_section_callback | process_section | |
Bool | demux_restarted |
struct GF_M2TS_MetadataPointerDescriptor |
struct GF_M2TS_TemiLocationDescriptor |
struct GF_M2TS_TemiTimecodeDescriptor |
struct GF_M2TS_Program |
Data Fields | ||
---|---|---|
GF_M2TS_Demuxer * | ts | |
GF_List * | streams | |
u32 | pmt_pid | |
u32 | pcr_pid | |
u32 | number | |
GF_InitialObjectDescriptor * | pmt_iod | |
GF_List * | additional_ods | |
u64 | first_dts | |
u64 | last_pcr_value | |
u32 | last_pcr_value_pck_number | |
u64 | before_last_pcr_value | |
u32 | before_last_pcr_value_pck_number | |
Bool | tdt_found | |
u32 | pid_playing | |
Bool | is_scalable | |
GF_M2TS_MetadataPointerDescriptor * | metadata_pointer_descriptor | |
s16 | pcr_cc |
struct tag_m2ts_es |
Data Fields | ||
---|---|---|
GF_M2TS_Program * | program | |
u32 | flags | |
u32 | pid | |
u32 | stream_type | |
u32 | mpeg4_es_id | |
GF_SLConfig * | slcfg | |
s16 | component_tag | |
void * | user | |
u64 | first_dts | |
u32 | service_id |
struct GF_M2TS_PESHeader |
struct tag_m2ts_section_es |
Data Fields | ||
---|---|---|
GF_M2TS_Program * | program | |
u32 | flags | |
u32 | pid | |
u32 | stream_type | |
u32 | mpeg4_es_id | |
GF_SLConfig * | slcfg | |
s16 | component_tag | |
void * | user | |
u64 | first_dts | |
u32 | service_id | |
GF_M2TS_SectionFilter * | sec |
struct GF_M2TS_DVB_Subtitling_Descriptor |
struct GF_M2TS_DVB_Teletext_Descriptor |
struct GF_M2TS_MetadataDescriptor |
Data Fields | ||
---|---|---|
u16 | application_format | |
u32 | application_format_identifier | |
u8 | format | |
u32 | format_identifier | |
u8 | service_id | |
u8 | decoder_config_flags | |
Bool | dsmcc_flag | |
u8 | service_id_record_length | |
char * | service_id_record | |
u8 | decoder_config_length | |
char * | decoder_config | |
u8 | decoder_config_id_length | |
char * | decoder_config_id | |
u8 | decoder_config_service_id |
struct GF_M2TS_SDT |
struct GF_M2TS_NIT |
struct GF_M2TS_DVB_Content_Descriptor |
struct GF_M2TS_DVB_Rating_Descriptor |
Data Fields | ||
---|---|---|
char | country_code[3] | |
u8 | value |
struct GF_M2TS_DVB_Short_Event_Descriptor |
struct GF_M2TS_DVB_Extended_Event_Descriptor |
struct GF_M2TS_DateTime_Event |
struct GF_M2TS_Component |
struct GF_M2TS_EIT_Event |
struct GF_M2TS_EIT |
struct GF_M2TS_PES_PCK |
Data Fields | ||
---|---|---|
char * | data | |
u32 | data_len | |
u32 | flags | |
u64 | PTS | |
u64 | DTS | |
GF_M2TS_PES * | stream |
struct GF_M2TS_Header |
struct GF_M2TS_AdaptationField |
struct GF_M2TS_Mux_Table |
struct GF_M2TS_Packet |
struct __m2ts_mux_program |
Data Fields | ||
---|---|---|
struct __m2ts_mux_program * | next | |
struct __m2ts_mux * | mux | |
u16 | number | |
GF_M2TS_Mux_Stream * | streams | |
GF_M2TS_Mux_Stream * | pmt | |
GF_M2TS_Mux_Stream * | pcr | |
GF_M2TS_Time | ts_time_at_pcr_init | |
u64 | pcr_init_time | |
u64 | num_pck_at_pcr_init | |
u64 | last_pcr | |
u64 | last_dts | |
u64 | sys_clock_at_last_pcr | |
u64 | nb_pck_last_pcr | |
u64 | initial_ts | |
Bool | initial_ts_set | |
Bool | pcr_init_time_set | |
u32 | pcr_offset | |
GF_Descriptor * | iod | |
GF_List * | loop_descriptors | |
u32 | mpeg4_signaling | |
Bool | mpeg4_signaling_for_scene_only | |
char * | name | |
char * | provider |
struct __m2ts_mux |
Data Fields | ||
---|---|---|
GF_M2TS_Mux_Program * | programs | |
GF_M2TS_Mux_Stream * | pat | |
GF_M2TS_Mux_Stream * | sdt | |
u16 | ts_id | |
Bool | needs_reconfig | |
Bool | real_time | |
Bool | fixed_rate | |
u32 | bit_rate | |
u64 | init_pcr_value | |
u32 | pcr_update_ms | |
char | dst_pck[188] | |
char | null_pck[188] | |
GF_M2TS_Time | time | |
GF_M2TS_Time | init_ts_time | |
u64 | init_sys_time | |
Bool | force_pat | |
GF_M2TS_PackMode | au_pes_mode | |
Bool | enable_forced_pcr | |
Bool | eos_found | |
u64 | last_br_time_us | |
u32 | pck_sent_over_br_window | |
u64 | tot_pck_sent | |
u64 | tot_pad_sent | |
u64 | tot_pes_pad_bytes | |
u32 | average_birate_kbps | |
Bool | flush_pes_at_rap | |
u32 | force_pat_pmt_state |
#define SECTION_HEADER_LENGTH 3 /* header till the last bit of the section_length field */ |
#define SECTION_ADDITIONAL_HEADER_LENGTH 5 /* header from the last bit of the section_length field to the payload */ |
#define CRC_LENGTH 4 |
#define GF_M2TS_MAX_STREAMS 8192 |
#define GF_M2TS_MAX_SERVICES 65535 |
#define GF_M2TS_UDP_BUFFER_SIZE 0x40000 |
#define GF_M2TS_MAX_PCR 2576980377811ULL |
#define ABSTRACT_ES |
#define GF_M2TS_BASE_DESCRIPTOR u32 tag; |
#define GF_M2TS_PSI_DEFAULT_REFRESH_RATE 200 |
typedef void(* gf_m2ts_section_callback) (GF_M2TS_Demuxer *ts, GF_M2TS_SECTION_ES *es, GF_List *sections, u8 table_id, u16 ex_table_id, u8 version_number, u8 last_section_number, u32 status) |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
enum metadata_carriage |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
enum GF_M2TS_PackMode |
anonymous enum |
const char* gf_m2ts_get_stream_name | ( | u32 | streamType | ) |
Bool gf_m2ts_probe_file | ( | const char * | fileName | ) |
GF_M2TS_Demuxer* gf_m2ts_demux_new | ( | ) |
void gf_m2ts_demux_del | ( | GF_M2TS_Demuxer * | ts | ) |
void gf_m2ts_reset_parsers | ( | GF_M2TS_Demuxer * | ts | ) |
void gf_m2ts_reset_parsers_for_program | ( | GF_M2TS_Demuxer * | ts, |
GF_M2TS_Program * | prog | ||
) |
GF_ESD* gf_m2ts_get_esd | ( | GF_M2TS_ES * | es | ) |
GF_Err gf_m2ts_set_pes_framing | ( | GF_M2TS_PES * | pes, |
u32 | mode | ||
) |
u32 gf_m2ts_pes_get_framing_mode | ( | GF_M2TS_PES * | pes | ) |
void gf_m2ts_es_del | ( | GF_M2TS_ES * | es, |
GF_M2TS_Demuxer * | ts | ||
) |
u32 gf_dvb_get_freq_from_url | ( | const char * | channels_config_path, |
const char * | url | ||
) |
void gf_m2ts_demux_dmscc_init | ( | GF_M2TS_Demuxer * | ts | ) |
void gf_m2ts_pause_demux | ( | GF_M2TS_Demuxer * | ts, |
Bool | do_pause | ||
) |
GF_M2TS_SDT* gf_m2ts_get_sdt_info | ( | GF_M2TS_Demuxer * | ts, |
u32 | program_id | ||
) |
void gf_m2ts_abort_parsing | ( | GF_M2TS_Demuxer * | ts, |
Bool | force_reset_pes | ||
) |
void gf_m2ts_print_info | ( | GF_M2TS_Demuxer * | ts | ) |
GF_Err gf_m2ts_demux_file | ( | GF_M2TS_Demuxer * | ts, |
const char * | fileName, | ||
u64 | start_byterange, | ||
u64 | end_byterange, | ||
u32 | refresh_type, | ||
Bool | signal_end_of_stream | ||
) |
mux_rate en kbps
void gf_m2ts_mux_del | ( | GF_M2TS_Mux * | mux | ) |
void gf_m2ts_mux_set_pcr_max_interval | ( | GF_M2TS_Mux * | muxer, |
u32 | pcr_update_ms | ||
) |
GF_M2TS_Mux_Program* gf_m2ts_mux_program_add | ( | GF_M2TS_Mux * | muxer, |
u32 | program_number, | ||
u32 | pmt_pid, | ||
u32 | pmt_refresh_rate, | ||
u32 | pcr_offset, | ||
Bool | mpeg4_signaling | ||
) |
GF_M2TS_Mux_Stream* gf_m2ts_program_stream_add | ( | GF_M2TS_Mux_Program * | program, |
GF_ESInterface * | ifce, | ||
u32 | pid, | ||
Bool | is_pcr, | ||
Bool | force_pes_mode | ||
) |
void gf_m2ts_mux_update_config | ( | GF_M2TS_Mux * | mux, |
Bool | reset_time | ||
) |
GF_M2TS_Mux_Program* gf_m2ts_mux_program_find | ( | GF_M2TS_Mux * | muxer, |
u32 | program_number | ||
) |
u32 gf_m2ts_get_sys_clock | ( | GF_M2TS_Mux * | muxer | ) |
u32 gf_m2ts_get_ts_clock | ( | GF_M2TS_Mux * | muxer | ) |
GF_Err gf_m2ts_mux_use_single_au_pes_mode | ( | GF_M2TS_Mux * | muxer, |
GF_M2TS_PackMode | au_pes_mode | ||
) |
GF_Err gf_m2ts_program_stream_update_ts_scale | ( | GF_ESInterface * | _self, |
u32 | time_scale | ||
) |
void gf_m2ts_mux_program_set_name | ( | GF_M2TS_Mux_Program * | program, |
const char * | program_name, | ||
const char * | mux_provider_name | ||
) |
void gf_m2ts_mux_enable_sdt | ( | GF_M2TS_Mux * | mux, |
u32 | refresh_rate_ms | ||
) |
GF_Err gf_m2ts_demuxer_play | ( | GF_M2TS_Demuxer * | ts | ) |
GF_Err gf_m2ts_demuxer_close | ( | GF_M2TS_Demuxer * | ts | ) |