GPAC
Open Source Multimedia Framework. 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>
Data Structures | |
struct | GF_M2TS_Section |
struct | GF_M2TS_Table |
struct | GF_M2TS_SectionFilter |
struct | GF_M2TS_Program |
struct | GF_M2TS_ES |
struct | GF_M2TS_PESHeader |
struct | GF_M2TS_SECTION_ES |
struct | GF_M2TS_DVB_Subtitling_Descriptor |
struct | GF_M2TS_DVB_Teletext_Descriptor |
struct | GF_M2TS_PES |
struct | GF_M2TS_SDT |
struct | GF_M2TS_NIT |
struct | GF_M2TS_TDT_TOT |
struct | GF_M2TS_DVB_Content_Descriptor |
struct | GF_M2TS_DVB_Rating_Descriptor |
struct | GF_M2TS_DVB_Short_Event_Descriptor |
struct | GF_M2TS_DVB_Extended_Event_Item |
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 |
struct | GF_M2TS_SL_PCK |
struct | GF_M2TS_Demuxer |
struct | GF_M2TS_Header |
struct | GF_M2TS_AdaptationField |
struct | GF_M2TS_Mux_Section |
struct | GF_M2TS_Mux_Table |
struct | GF_M2TS_Time |
struct | GF_M2TS_Packet |
struct | GF_M2TS_Mux_Stream |
struct | GF_M2TSDescriptor |
struct | GF_M2TS_Mux_Program |
struct | GF_M2TS_Mux |
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 | UDP_BUFFER_SIZE 0x40000 |
#define | ABSTRACT_ES |
#define | GF_M2TS_BASE_DESCRIPTOR u32 tag; |
#define | GF_M2TS_PSI_DEFAULT_REFRESH_RATE 200 |
#define | UDP_BUFFER_SIZE 0x40000 |
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) |
GF_ESD * | gf_m2ts_get_esd (GF_M2TS_ES *es) |
GF_Err | gf_m2ts_set_pes_framing (GF_M2TS_PES *pes, u32 mode) |
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) |
Bool | gf_m2ts_crc32_check (char *data, u32 len) |
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) |
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) |
void | gf_m2ts_mux_update_bitrate (GF_M2TS_Mux *mux) |
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, Bool strict_au_pes_mode) |
GF_Err | gf_m2ts_mux_set_initial_pcr (GF_M2TS_Mux *muxer, u64 init_pcr_value) |
GF_Err | gf_m2ts_program_stream_update_ts_scale (GF_ESInterface *_self, u32 time_scale) |
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 |
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 |
struct GF_M2TS_Program |
Data Fields | ||
---|---|---|
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 |
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_SDT |
struct GF_M2TS_NIT |
struct GF_M2TS_TDT_TOT |
struct GF_M2TS_DVB_Content_Descriptor |
struct GF_M2TS_DVB_Rating_Descriptor |
struct GF_M2TS_DVB_Short_Event_Descriptor |
struct GF_M2TS_DVB_Extended_Event_Item |
struct GF_M2TS_DVB_Extended_Event_Descriptor |
Data Fields | ||
---|---|---|
unsigned char | lang[3] | |
u32 | last | |
GF_List * | items | |
unsigned char * | text |
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_SL_PCK |
struct GF_M2TS_Header |
struct GF_M2TS_AdaptationField |
Data Fields | ||
---|---|---|
u32 | discontinuity_indicator | |
u32 | random_access_indicator | |
u32 | priority_indicator | |
u32 | PCR_flag | |
u64 | PCR_base | |
u64 | PCR_ext | |
u32 | OPCR_flag | |
u64 | OPCR_base | |
u64 | OPCR_ext | |
u32 | splicing_point_flag | |
u32 | transport_private_data_flag | |
u32 | adaptation_field_extension_flag |
struct GF_M2TS_Mux_Section |
struct GF_M2TS_Mux_Table |
struct GF_M2TS_Packet |
struct GF_M2TSDescriptor |
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 | |
u32 | last_sys_clock | |
u64 | initial_ts | |
Bool | initial_ts_set | |
u32 | pcr_offset | |
GF_Descriptor * | iod | |
GF_List * | loop_descriptors | |
u32 | mpeg4_signaling | |
Bool | mpeg4_signaling_for_scene_only |
struct __m2ts_mux |
Data Fields | ||
---|---|---|
GF_M2TS_Mux_Program * | programs | |
GF_M2TS_Mux_Stream * | pat | |
u16 | ts_id | |
Bool | needs_reconfig | |
Bool | real_time | |
Bool | fixed_rate | |
u32 | bit_rate | |
u64 | init_pcr_value | |
char | dst_pck[188] | |
char | null_pck[188] | |
GF_M2TS_Time | time | |
GF_M2TS_Time | init_ts_time | |
u32 | init_sys_time | |
Bool | force_pat | |
Bool | one_au_per_pes | |
Bool | eos_found | |
u32 | pck_sent_over_br_window | |
u32 | last_br_time | |
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 UDP_BUFFER_SIZE 0x40000 |
#define ABSTRACT_ES |
#define GF_M2TS_BASE_DESCRIPTOR u32 tag; |
#define GF_M2TS_PSI_DEFAULT_REFRESH_RATE 200 |
#define UDP_BUFFER_SIZE 0x40000 |
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 |
anonymous enum |
anonymous enum |
anonymous enum |
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 | ) |
GF_ESD* gf_m2ts_get_esd | ( | GF_M2TS_ES * | es | ) |
GF_Err gf_m2ts_set_pes_framing | ( | GF_M2TS_PES * | pes, |
u32 | mode | ||
) |
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_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 | ) |
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 | ||
) |
void gf_m2ts_mux_update_bitrate | ( | GF_M2TS_Mux * | mux | ) |
u32 gf_m2ts_get_sys_clock | ( | GF_M2TS_Mux * | muxer | ) |
u32 gf_m2ts_get_ts_clock | ( | GF_M2TS_Mux * | muxer | ) |
GF_Err gf_m2ts_program_stream_update_ts_scale | ( | GF_ESInterface * | _self, |
u32 | time_scale | ||
) |
GF_Err gf_m2ts_demuxer_play | ( | GF_M2TS_Demuxer * | ts | ) |
GF_Err gf_m2ts_demuxer_close | ( | GF_M2TS_Demuxer * | ts | ) |