libgpac
Documentation of the core library of GPAC. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
mpegts.h File Reference
#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>
+ Include dependency graph for mpegts.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  GF_M2TS_Section
 
struct  GF_M2TS_Table
 
struct  GF_M2TS_SectionFilter
 
struct  GF_M2TS_TemiLocationDescriptor
 
struct  GF_M2TS_TemiTimecodeDescriptor
 
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   0x4000
 
#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)
 

Enumerations

enum  {
  GF_M2TS_VIDEO_STREAM_DESCRIPTOR = 0x02, GF_M2TS_AUDIO_STREAM_DESCRIPTOR = 0x03, GF_M2TS_HIERARCHY_DESCRIPTOR = 0x04, GF_M2TS_REGISTRATION_DESCRIPTOR = 0x05,
  GF_M2TS_DATA_STREAM_ALIGNEMENT_DESCRIPTOR = 0x06, GF_M2TS_TARGET_BACKGROUND_GRID_DESCRIPTOR = 0x07, GF_M2TS_VIEW_WINDOW_DESCRIPTOR = 0x08, GF_M2TS_CA_DESCRIPTOR = 0x09,
  GF_M2TS_ISO_639_LANGUAGE_DESCRIPTOR = 0x0A, GF_M2TS_DVB_IP_MAC_PLATFORM_NAME_DESCRIPTOR = 0x0C, GF_M2TS_DVB_IP_MAC_PLATFORM_PROVIDER_NAME_DESCRIPTOR = 0x0D, GF_M2TS_DVB_TARGET_IP_SLASH_DESCRIPTOR = 0x0F,
  GF_M2TS_DVB_STREAM_LOCATION_DESCRIPTOR =0x13, GF_M2TS_STD_DESCRIPTOR = 0x17, GF_M2TS_MPEG4_VIDEO_DESCRIPTOR = 0x1B, GF_M2TS_MPEG4_AUDIO_DESCRIPTOR = 0x1C,
  GF_M2TS_MPEG4_IOD_DESCRIPTOR = 0x1D, GF_M2TS_MPEG4_SL_DESCRIPTOR = 0x1E, GF_M2TS_MPEG4_FMC_DESCRIPTOR = 0x1F, GF_M2TS_METADATA_POINTER_DESCRIPTOR = 0x25,
  GF_M2TS_METADATA_DESCRIPTOR = 0x26, GF_M2TS_AVC_VIDEO_DESCRIPTOR = 0x28, GF_M2TS_AVC_TIMING_HRD_DESCRIPTOR = 0x2A, GF_M2TS_SVC_EXTENSION_DESCRIPTOR = 0x30,
  GF_M2TS_MPEG4_ODUPDATE_DESCRIPTOR = 0x35, GF_M2TS_DVB_NETWORK_NAME_DESCRIPTOR = 0x40, GF_M2TS_DVB_SERVICE_LIST_DESCRIPTOR = 0x41, GF_M2TS_DVB_STUFFING_DESCRIPTOR = 0x42,
  GF_M2TS_DVB_SAT_DELIVERY_SYSTEM_DESCRIPTOR = 0x43, GF_M2TS_DVB_CABLE_DELIVERY_SYSTEM_DESCRIPTOR = 0x44, GF_M2TS_DVB_VBI_DATA_DESCRIPTOR = 0x45, GF_M2TS_DVB_VBI_TELETEXT_DESCRIPTOR = 0x46,
  GF_M2TS_DVB_BOUQUET_NAME_DESCRIPTOR = 0x47, GF_M2TS_DVB_SERVICE_DESCRIPTOR = 0x48, GF_M2TS_DVB_COUNTRY_AVAILABILITY_DESCRIPTOR = 0x49, GF_M2TS_DVB_LINKAGE_DESCRIPTOR = 0x4A,
  GF_M2TS_DVB_NVOD_REFERENCE_DESCRIPTOR = 0x4B, GF_M2TS_DVB_TIME_SHIFTED_SERVICE_DESCRIPTOR = 0x4C, GF_M2TS_DVB_SHORT_EVENT_DESCRIPTOR = 0x4D, GF_M2TS_DVB_EXTENDED_EVENT_DESCRIPTOR = 0x4E,
  GF_M2TS_DVB_TIME_SHIFTED_EVENT_DESCRIPTOR = 0x4F, GF_M2TS_DVB_COMPONENT_DESCRIPTOR = 0x50, GF_M2TS_DVB_MOSAIC_DESCRIPTOR = 0x51, GF_M2TS_DVB_STREAM_IDENTIFIER_DESCRIPTOR = 0x52,
  GF_M2TS_DVB_CA_IDENTIFIER_DESCRIPTOR = 0x53, GF_M2TS_DVB_CONTENT_DESCRIPTOR = 0x54, GF_M2TS_DVB_PARENTAL_RATING_DESCRIPTOR = 0x55, GF_M2TS_DVB_TELETEXT_DESCRIPTOR = 0x56,
  GF_M2TS_DVB_LOCAL_TIME_OFFSET_DESCRIPTOR = 0x58, GF_M2TS_DVB_SUBTITLING_DESCRIPTOR = 0x59, GF_M2TS_DVB_PRIVATE_DATA_SPECIFIER_DESCRIPTOR = 0x5F, GF_M2TS_DVB_DATA_BROADCAST_DESCRIPTOR = 0x64,
  GF_M2TS_DVB_DATA_BROADCAST_ID_DESCRIPTOR = 0x66, GF_M2TS_DVB_AC3_DESCRIPTOR = 0x6A, GF_M2TS_DVB_TIME_SLICE_FEC_DESCRIPTOR = 0x77, GF_M2TS_DVB_EAC3_DESCRIPTOR = 0x7A,
  GF_M2TS_DVB_LOGICAL_CHANNEL_DESCRIPTOR = 0x83
}
 
enum  {
  GF_M2TS_PID_PAT = 0x0000, GF_M2TS_PID_CAT = 0x0001, GF_M2TS_PID_TSDT = 0x0002, GF_M2TS_PID_NIT_ST = 0x0010,
  GF_M2TS_PID_SDT_BAT_ST = 0x0011, GF_M2TS_PID_EIT_ST_CIT = 0x0012, GF_M2TS_PID_RST_ST = 0x0013, GF_M2TS_PID_TDT_TOT_ST = 0x0014,
  GF_M2TS_PID_NET_SYNC = 0x0015, GF_M2TS_PID_RNT = 0x0016, GF_M2TS_PID_IN_SIG = 0x001C, GF_M2TS_PID_MEAS = 0x001D,
  GF_M2TS_PID_DIT = 0x001E, GF_M2TS_PID_SIT = 0x001F
}
 
enum  {
  GF_M2TS_TABLE_ID_PAT = 0x00, GF_M2TS_TABLE_ID_CAT = 0x01, GF_M2TS_TABLE_ID_PMT = 0x02, GF_M2TS_TABLE_ID_TSDT = 0x03,
  GF_M2TS_TABLE_ID_MPEG4_BIFS = 0x04, GF_M2TS_TABLE_ID_MPEG4_OD = 0x05, GF_M2TS_TABLE_ID_METADATA = 0x06, GF_M2TS_TABLE_ID_IPMP_CONTROL = 0x07,
  GF_M2TS_TABLE_ID_DSM_CC_ENCAPSULATED_DATA = 0x3A, GF_M2TS_TABLE_ID_DSM_CC_UN_MESSAGE = 0x3B, GF_M2TS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGE = 0x3C, GF_M2TS_TABLE_ID_DSM_CC_STREAM_DESCRIPTION = 0x3D,
  GF_M2TS_TABLE_ID_DSM_CC_PRIVATE = 0x3E, GF_M2TS_TABLE_ID_NIT_ACTUAL = 0x40, GF_M2TS_TABLE_ID_NIT_OTHER = 0x41, GF_M2TS_TABLE_ID_SDT_ACTUAL = 0x42,
  GF_M2TS_TABLE_ID_SDT_OTHER = 0x46, GF_M2TS_TABLE_ID_BAT = 0x4a, GF_M2TS_TABLE_ID_INT = 0x4c, GF_M2TS_TABLE_ID_EIT_ACTUAL_PF = 0x4E,
  GF_M2TS_TABLE_ID_EIT_OTHER_PF = 0x4F, GF_M2TS_TABLE_ID_EIT_SCHEDULE_MIN = 0x50, GF_M2TS_TABLE_ID_EIT_SCHEDULE_ACTUAL_MAX = 0x5F, GF_M2TS_TABLE_ID_EIT_SCHEDULE_MAX = 0x6F,
  GF_M2TS_TABLE_ID_TDT = 0x70, GF_M2TS_TABLE_ID_RST = 0x71, GF_M2TS_TABLE_ID_ST = 0x72, GF_M2TS_TABLE_ID_TOT = 0x73,
  GF_M2TS_TABLE_ID_AIT = 0x74, GF_M2TS_TABLE_ID_CONT = 0x75, GF_M2TS_TABLE_ID_RC = 0x76, GF_M2TS_TABLE_ID_CID = 0x77,
  GF_M2TS_TABLE_ID_MPE_FEC = 0x78, GF_M2TS_TABLE_ID_RES_NOT = 0x79, GF_M2TS_TABLE_ID_DIT = 0x7E, GF_M2TS_TABLE_ID_SIT = 0x7F
}
 
enum  {
  GF_M2TS_VIDEO_MPEG1 = 0x01, GF_M2TS_VIDEO_MPEG2 = 0x02, GF_M2TS_AUDIO_MPEG1 = 0x03, GF_M2TS_AUDIO_MPEG2 = 0x04,
  GF_M2TS_PRIVATE_SECTION = 0x05, GF_M2TS_PRIVATE_DATA = 0x06, GF_M2TS_MHEG = 0x07, GF_M2TS_13818_1_DSMCC = 0x08,
  GF_M2TS_H222_1 = 0x09, GF_M2TS_13818_6_ANNEX_A = 0x0A, GF_M2TS_13818_6_ANNEX_B = 0x0B, GF_M2TS_13818_6_ANNEX_C = 0x0C,
  GF_M2TS_13818_6_ANNEX_D = 0x0D, GF_M2TS_13818_1_AUXILIARY = 0x0E, GF_M2TS_AUDIO_AAC = 0x0F, GF_M2TS_VIDEO_MPEG4 = 0x10,
  GF_M2TS_AUDIO_LATM_AAC = 0x11, GF_M2TS_SYSTEMS_MPEG4_PES = 0x12, GF_M2TS_SYSTEMS_MPEG4_SECTIONS = 0x13, GF_M2TS_METADATA_PES = 0x15,
  GF_M2TS_VIDEO_H264 = 0x1B, GF_M2TS_VIDEO_SVC = 0x1F, GF_M2TS_VIDEO_HEVC = 0x24, GF_M2TS_VIDEO_SHVC = 0x27,
  GF_M2TS_VIDEO_DCII = 0x80, GF_M2TS_AUDIO_AC3 = 0x81, GF_M2TS_AUDIO_DTS = 0x8A, GF_M2TS_MPE_SECTIONS = 0x90,
  GF_M2TS_SUBTITLE_DVB = 0x100, GF_M2TS_AUDIO_EC3 = 0x150, GF_M2TS_VIDEO_VC1 = 0x151, GF_M2TS_DVB_TELETEXT = 0x152,
  GF_M2TS_DVB_VBI = 0x153, GF_M2TS_DVB_SUBTITLE = 0x154, GF_M2TS_METADATA_ID3_HLS = 0x155
}
 
enum  { GF_M2TS_AFDESC_TIMELINE_DESCRIPTOR = 0x04, GF_M2TS_AFDESC_LOCATION_DESCRIPTOR = 0x05, GF_M2TS_AFDESC_BASEURL_DESCRIPTOR = 0x06 }
 
enum  {
  GF_M2TS_PES_FRAMING_SKIP, GF_M2TS_PES_FRAMING_SKIP_NO_RESET, GF_M2TS_PES_FRAMING_RAW, GF_M2TS_PES_FRAMING_DEFAULT,
  GF_M2TS_PES_FRAMING_DEFAULT_NAL
}
 
enum  {
  GF_M2TS_PES_PCK_RAP = 1, GF_M2TS_PES_PCK_AU_START = 1<<1, GF_M2TS_PES_PCK_I_FRAME = 1<<2, GF_M2TS_PES_PCK_P_FRAME = 1<<3,
  GF_M2TS_PES_PCK_B_FRAME = 1<<4, GF_M2TS_PES_PCK_DISCONTINUITY = 1<<5
}
 
enum  {
  GF_M2TS_EVT_PAT_FOUND = 0, GF_M2TS_EVT_PAT_UPDATE, GF_M2TS_EVT_PAT_REPEAT, GF_M2TS_EVT_PMT_FOUND,
  GF_M2TS_EVT_PMT_REPEAT, GF_M2TS_EVT_PMT_UPDATE, GF_M2TS_EVT_SDT_FOUND, GF_M2TS_EVT_SDT_REPEAT,
  GF_M2TS_EVT_SDT_UPDATE, GF_M2TS_EVT_INT_FOUND, GF_M2TS_EVT_INT_REPEAT, GF_M2TS_EVT_INT_UPDATE,
  GF_M2TS_EVT_PES_PCK, GF_M2TS_EVT_PES_PCR, GF_M2TS_EVT_PES_TIMING, GF_M2TS_EVT_SL_PCK,
  GF_M2TS_EVT_IP_DATAGRAM, GF_M2TS_EVT_DURATION_ESTIMATED, GF_M2TS_EVT_AAC_CFG, GF_M2TS_EVT_TDT,
  GF_M2TS_EVT_TOT, GF_M2TS_EVT_DVB_GENERAL, GF_M2TS_EVT_DVB_MPE, GF_M2TS_EVT_CAT_FOUND,
  GF_M2TS_EVT_CAT_REPEAT, GF_M2TS_EVT_CAT_UPDATE, GF_M2TS_EVT_AIT_FOUND, GF_M2TS_EVT_DSMCC_FOUND,
  GF_M2TS_EVT_TEMI_LOCATION, GF_M2TS_EVT_TEMI_TIMECODE, GF_M2TS_EVT_EOS
}
 
enum  {
  GF_M2TS_TABLE_START = 1, GF_M2TS_TABLE_END = 1<<1, GF_M2TS_TABLE_FOUND = 1<<2, GF_M2TS_TABLE_UPDATE = 1<<3,
  GF_M2TS_TABLE_REPEAT = 1<<4
}
 
enum  metadata_carriage { METADATA_CARRIAGE_SAME_TS = 0, METADATA_CARRIAGE_DIFFERENT_TS = 1, METADATA_CARRIAGE_PS = 2, METADATA_CARRIAGE_OTHER = 3 }
 
enum  {
  GF_M2TS_ES_IS_PES = 1, GF_M2TS_ES_IS_SECTION = 1<<1, GF_M2TS_ES_IS_FMC = 1<<2, GF_M2TS_ES_IS_SL = 1<<3,
  GF_M2TS_ES_IS_MPEG4_OD = 1<<4, GF_M2TS_ES_IS_MPE = 1<<5, GF_M2TS_INHERIT_PCR = 1<<6, GF_M2TS_ES_STATIC_FLAGS_MASK = 0x0000FFFF,
  GF_M2TS_ES_SEND_REPEATED_SECTIONS = 1<<16, GF_M2TS_ES_FIRST_DTS = 1<<17, GF_M2TS_ES_IGNORE_NEXT_DISCONTINUITY = 1<<18, GF_M2TS_ES_ALREADY_DECLARED = 1<<19
}
 
enum  { GF_M2TS_ADAPTATION_RESERVED = 0, GF_M2TS_ADAPTATION_NONE = 1, GF_M2TS_ADAPTATION_ONLY = 2, GF_M2TS_ADAPTATION_AND_PAYLOAD = 3 }
 
enum  { GF_M2TS_MPEG4_SIGNALING_NONE = 0, GF_M2TS_MPEG4_SIGNALING_FULL, GF_M2TS_MPEG4_SIGNALING_SCENE }
 
enum  {
  GF_SEG_BOUNDARY_NONE =0, GF_SEG_BOUNDARY_START, GF_SEG_BOUNDARY_FORCE_PAT, GF_SEG_BOUNDARY_FORCE_PMT,
  GF_SEG_BOUNDARY_FORCE_PCR
}
 
enum  { GF_M2TS_STATE_IDLE, GF_M2TS_STATE_DATA, GF_M2TS_STATE_PADDING, GF_M2TS_STATE_EOS }
 

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_ESDgf_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_SDTgf_m2ts_get_sdt_info (GF_M2TS_Demuxer *ts, u32 program_id)
 
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)
 
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_Streamgf_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, 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)
 
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)
 

Data Structure Documentation

struct GF_M2TS_Section
Data Fields
unsigned char * data
u32 data_size
struct GF_M2TS_Table
Data Fields
struct __m2ts_demux_table * next
u8 is_init
u8 is_repeat
u8 table_id
u16 ex_table_id
u8 version_number
u8 last_version_number
u8 current_next_indicator
u8 section_number
u8 last_section_number
GF_List * sections
u32 table_size
struct GF_M2TS_SectionFilter
+ Collaboration diagram for 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
Data Fields
u16 application_format
u32 application_format_identifier
u8 format
u32 format_identifier
u8 service_id
Bool locator_record_flag
u32 locator_length
char * locator_data
enum metadata_carriage carriage_flag
u16 program_number
u16 ts_location
u16 ts_id
char * data
u32 data_size
struct GF_M2TS_TemiLocationDescriptor
Data Fields
u32 timeline_id
const char * external_URL
Bool is_announce
Bool is_splicing
Bool reload_external
Double activation_countdown
struct GF_M2TS_TemiTimecodeDescriptor
Data Fields
u32 timeline_id
u32 media_timescale
u64 media_timestamp
u64 pes_pts
Bool force_reload
Bool is_paused
Bool is_discontinuity
struct GF_M2TS_Program
+ Collaboration diagram for 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
struct tag_m2ts_es
+ Collaboration diagram for GF_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
Data Fields
u8 id
u16 pck_len
u8 data_alignment
u64 PTS
u64 DTS
u8 hdr_data_len
struct tag_m2ts_section_es
+ Collaboration diagram for GF_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
Data Fields
char language[3]
u8 type
u16 composition_page_id
u16 ancillary_page_id
struct GF_M2TS_DVB_Teletext_Descriptor
Data Fields
char language[3]
u8 type
u8 magazine_number
u8 page_number
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
Data Fields
u16 original_network_id
u16 transport_stream_id
u32 service_id
u32 EIT_schedule
u32 EIT_present_following
u32 running_status
u32 free_CA_mode
u8 service_type
char * provider
char * service
struct GF_M2TS_NIT
Data Fields
u16 network_id
unsigned char * network_name
u16 original_network_id
u16 transport_stream_id
u16 service_id
u32 service_type
u32 logical_channel_number
struct GF_M2TS_TDT_TOT
Data Fields
u16 year
u8 month
u8 day
u8 hour
u8 minute
u8 second
struct GF_M2TS_DVB_Content_Descriptor
Data Fields
u8 content_nibble_level_1
u8 content_nibble_level_2
u8 user_nibble
struct GF_M2TS_DVB_Rating_Descriptor
Data Fields
char country_code[3]
u8 value
struct GF_M2TS_DVB_Short_Event_Descriptor
Data Fields
unsigned char lang[3]
unsigned char * event_name
unsigned char * event_text
struct GF_M2TS_DVB_Extended_Event_Item
Data Fields
unsigned char * item
unsigned char * description
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
Data Fields
time_t unix_time
char country_code[3]
u8 country_region_id
s32 local_time_offset_seconds
time_t unix_next_toc
s32 next_time_offset_seconds
struct GF_M2TS_Component
Data Fields
u8 stream_content
u8 component_type
u8 component_tag
char language_code[3]
unsigned char * text
struct GF_M2TS_EIT_Event
Data Fields
u16 event_id
time_t unix_start
time_t unix_duration
u8 running_status
u8 free_CA_mode
GF_List * short_events
GF_List * extended_events
GF_List * components
GF_List * contents
GF_List * ratings
struct GF_M2TS_EIT
Data Fields
u32 original_network_id
u32 transport_stream_id
u16 service_id
GF_List * events
u8 table_id
struct GF_M2TS_PES_PCK
+ Collaboration diagram for 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
Data Fields
char * data
u32 data_len
u8 version_number
GF_M2TS_ES * stream
struct GF_M2TS_Header
Data Fields
u8 sync
u8 error
u8 payload_start
u8 priority
u16 pid
u8 scrambling_ctrl
u8 adaptation_field
u8 continuity_counter
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
Data Fields
struct __m2ts_section * next
u8 * data
u32 length
struct GF_M2TS_Mux_Table
Data Fields
struct __m2ts_table * next
u8 table_id
u8 version_number
struct __m2ts_section * section
struct GF_M2TS_Time
Data Fields
u32 sec
u32 nanosec
struct GF_M2TS_Packet
Data Fields
struct __m2ts_mux_pck * next
char * data
u32 data_len
u32 flags
u64 cts
u64 dts
u32 duration
char * mpeg2_af_descriptors
u32 mpeg2_af_descriptors_size
struct GF_M2TSDescriptor
Data Fields
u8 tag
u8 data_len
char * data
struct __m2ts_mux_program
+ Collaboration diagram for GF_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
+ Collaboration diagram for GF_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
Bool one_au_per_pes
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

Macro Definition Documentation

#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   0x4000
#define ABSTRACT_ES
Value:
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;
int16_t s16
Definition: setup.h:254
Definition: mpegts.h:516
uint32_t u32
Definition: setup.h:249
uint64_t u64
Definition: setup.h:248
#define GF_M2TS_BASE_DESCRIPTOR   u32 tag;
#define GF_M2TS_PSI_DEFAULT_REFRESH_RATE   200

Typedef Documentation

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)

Enumeration Type Documentation

anonymous enum
Enumerator
GF_M2TS_VIDEO_STREAM_DESCRIPTOR 
GF_M2TS_AUDIO_STREAM_DESCRIPTOR 
GF_M2TS_HIERARCHY_DESCRIPTOR 
GF_M2TS_REGISTRATION_DESCRIPTOR 
GF_M2TS_DATA_STREAM_ALIGNEMENT_DESCRIPTOR 
GF_M2TS_TARGET_BACKGROUND_GRID_DESCRIPTOR 
GF_M2TS_VIEW_WINDOW_DESCRIPTOR 
GF_M2TS_CA_DESCRIPTOR 
GF_M2TS_ISO_639_LANGUAGE_DESCRIPTOR 
GF_M2TS_DVB_IP_MAC_PLATFORM_NAME_DESCRIPTOR 
GF_M2TS_DVB_IP_MAC_PLATFORM_PROVIDER_NAME_DESCRIPTOR 
GF_M2TS_DVB_TARGET_IP_SLASH_DESCRIPTOR 
GF_M2TS_DVB_STREAM_LOCATION_DESCRIPTOR 
GF_M2TS_STD_DESCRIPTOR 
GF_M2TS_MPEG4_VIDEO_DESCRIPTOR 
GF_M2TS_MPEG4_AUDIO_DESCRIPTOR 
GF_M2TS_MPEG4_IOD_DESCRIPTOR 
GF_M2TS_MPEG4_SL_DESCRIPTOR 
GF_M2TS_MPEG4_FMC_DESCRIPTOR 
GF_M2TS_METADATA_POINTER_DESCRIPTOR 
GF_M2TS_METADATA_DESCRIPTOR 
GF_M2TS_AVC_VIDEO_DESCRIPTOR 
GF_M2TS_AVC_TIMING_HRD_DESCRIPTOR 
GF_M2TS_SVC_EXTENSION_DESCRIPTOR 
GF_M2TS_MPEG4_ODUPDATE_DESCRIPTOR 
GF_M2TS_DVB_NETWORK_NAME_DESCRIPTOR 
GF_M2TS_DVB_SERVICE_LIST_DESCRIPTOR 
GF_M2TS_DVB_STUFFING_DESCRIPTOR 
GF_M2TS_DVB_SAT_DELIVERY_SYSTEM_DESCRIPTOR 
GF_M2TS_DVB_CABLE_DELIVERY_SYSTEM_DESCRIPTOR 
GF_M2TS_DVB_VBI_DATA_DESCRIPTOR 
GF_M2TS_DVB_VBI_TELETEXT_DESCRIPTOR 
GF_M2TS_DVB_BOUQUET_NAME_DESCRIPTOR 
GF_M2TS_DVB_SERVICE_DESCRIPTOR 
GF_M2TS_DVB_COUNTRY_AVAILABILITY_DESCRIPTOR 
GF_M2TS_DVB_LINKAGE_DESCRIPTOR 
GF_M2TS_DVB_NVOD_REFERENCE_DESCRIPTOR 
GF_M2TS_DVB_TIME_SHIFTED_SERVICE_DESCRIPTOR 
GF_M2TS_DVB_SHORT_EVENT_DESCRIPTOR 
GF_M2TS_DVB_EXTENDED_EVENT_DESCRIPTOR 
GF_M2TS_DVB_TIME_SHIFTED_EVENT_DESCRIPTOR 
GF_M2TS_DVB_COMPONENT_DESCRIPTOR 
GF_M2TS_DVB_MOSAIC_DESCRIPTOR 
GF_M2TS_DVB_STREAM_IDENTIFIER_DESCRIPTOR 
GF_M2TS_DVB_CA_IDENTIFIER_DESCRIPTOR 
GF_M2TS_DVB_CONTENT_DESCRIPTOR 
GF_M2TS_DVB_PARENTAL_RATING_DESCRIPTOR 
GF_M2TS_DVB_TELETEXT_DESCRIPTOR 
GF_M2TS_DVB_LOCAL_TIME_OFFSET_DESCRIPTOR 
GF_M2TS_DVB_SUBTITLING_DESCRIPTOR 
GF_M2TS_DVB_PRIVATE_DATA_SPECIFIER_DESCRIPTOR 
GF_M2TS_DVB_DATA_BROADCAST_DESCRIPTOR 
GF_M2TS_DVB_DATA_BROADCAST_ID_DESCRIPTOR 
GF_M2TS_DVB_AC3_DESCRIPTOR 
GF_M2TS_DVB_TIME_SLICE_FEC_DESCRIPTOR 
GF_M2TS_DVB_EAC3_DESCRIPTOR 
GF_M2TS_DVB_LOGICAL_CHANNEL_DESCRIPTOR 
anonymous enum
Enumerator
GF_M2TS_PID_PAT 
GF_M2TS_PID_CAT 
GF_M2TS_PID_TSDT 
GF_M2TS_PID_NIT_ST 
GF_M2TS_PID_SDT_BAT_ST 
GF_M2TS_PID_EIT_ST_CIT 
GF_M2TS_PID_RST_ST 
GF_M2TS_PID_TDT_TOT_ST 
GF_M2TS_PID_NET_SYNC 
GF_M2TS_PID_RNT 
GF_M2TS_PID_IN_SIG 
GF_M2TS_PID_MEAS 
GF_M2TS_PID_DIT 
GF_M2TS_PID_SIT 
anonymous enum
Enumerator
GF_M2TS_TABLE_ID_PAT 
GF_M2TS_TABLE_ID_CAT 
GF_M2TS_TABLE_ID_PMT 
GF_M2TS_TABLE_ID_TSDT 
GF_M2TS_TABLE_ID_MPEG4_BIFS 
GF_M2TS_TABLE_ID_MPEG4_OD 
GF_M2TS_TABLE_ID_METADATA 
GF_M2TS_TABLE_ID_IPMP_CONTROL 
GF_M2TS_TABLE_ID_DSM_CC_ENCAPSULATED_DATA 
GF_M2TS_TABLE_ID_DSM_CC_UN_MESSAGE 
GF_M2TS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGE 
GF_M2TS_TABLE_ID_DSM_CC_STREAM_DESCRIPTION 
GF_M2TS_TABLE_ID_DSM_CC_PRIVATE 
GF_M2TS_TABLE_ID_NIT_ACTUAL 
GF_M2TS_TABLE_ID_NIT_OTHER 
GF_M2TS_TABLE_ID_SDT_ACTUAL 
GF_M2TS_TABLE_ID_SDT_OTHER 
GF_M2TS_TABLE_ID_BAT 
GF_M2TS_TABLE_ID_INT 
GF_M2TS_TABLE_ID_EIT_ACTUAL_PF 
GF_M2TS_TABLE_ID_EIT_OTHER_PF 
GF_M2TS_TABLE_ID_EIT_SCHEDULE_MIN 
GF_M2TS_TABLE_ID_EIT_SCHEDULE_ACTUAL_MAX 
GF_M2TS_TABLE_ID_EIT_SCHEDULE_MAX 
GF_M2TS_TABLE_ID_TDT 
GF_M2TS_TABLE_ID_RST 
GF_M2TS_TABLE_ID_ST 
GF_M2TS_TABLE_ID_TOT 
GF_M2TS_TABLE_ID_AIT 
GF_M2TS_TABLE_ID_CONT 
GF_M2TS_TABLE_ID_RC 
GF_M2TS_TABLE_ID_CID 
GF_M2TS_TABLE_ID_MPE_FEC 
GF_M2TS_TABLE_ID_RES_NOT 
GF_M2TS_TABLE_ID_DIT 
GF_M2TS_TABLE_ID_SIT 
anonymous enum
Enumerator
GF_M2TS_VIDEO_MPEG1 
GF_M2TS_VIDEO_MPEG2 
GF_M2TS_AUDIO_MPEG1 
GF_M2TS_AUDIO_MPEG2 
GF_M2TS_PRIVATE_SECTION 
GF_M2TS_PRIVATE_DATA 
GF_M2TS_MHEG 
GF_M2TS_13818_1_DSMCC 
GF_M2TS_H222_1 
GF_M2TS_13818_6_ANNEX_A 
GF_M2TS_13818_6_ANNEX_B 
GF_M2TS_13818_6_ANNEX_C 
GF_M2TS_13818_6_ANNEX_D 
GF_M2TS_13818_1_AUXILIARY 
GF_M2TS_AUDIO_AAC 
GF_M2TS_VIDEO_MPEG4 
GF_M2TS_AUDIO_LATM_AAC 
GF_M2TS_SYSTEMS_MPEG4_PES 
GF_M2TS_SYSTEMS_MPEG4_SECTIONS 
GF_M2TS_METADATA_PES 
GF_M2TS_VIDEO_H264 
GF_M2TS_VIDEO_SVC 
GF_M2TS_VIDEO_HEVC 
GF_M2TS_VIDEO_SHVC 
GF_M2TS_VIDEO_DCII 
GF_M2TS_AUDIO_AC3 
GF_M2TS_AUDIO_DTS 
GF_M2TS_MPE_SECTIONS 
GF_M2TS_SUBTITLE_DVB 
GF_M2TS_AUDIO_EC3 
GF_M2TS_VIDEO_VC1 
GF_M2TS_DVB_TELETEXT 
GF_M2TS_DVB_VBI 
GF_M2TS_DVB_SUBTITLE 
GF_M2TS_METADATA_ID3_HLS 
anonymous enum
Enumerator
GF_M2TS_AFDESC_TIMELINE_DESCRIPTOR 
GF_M2TS_AFDESC_LOCATION_DESCRIPTOR 
GF_M2TS_AFDESC_BASEURL_DESCRIPTOR 
anonymous enum
Enumerator
GF_M2TS_PES_FRAMING_SKIP 
GF_M2TS_PES_FRAMING_SKIP_NO_RESET 
GF_M2TS_PES_FRAMING_RAW 
GF_M2TS_PES_FRAMING_DEFAULT 
GF_M2TS_PES_FRAMING_DEFAULT_NAL 
anonymous enum
Enumerator
GF_M2TS_PES_PCK_RAP 
GF_M2TS_PES_PCK_AU_START 
GF_M2TS_PES_PCK_I_FRAME 
GF_M2TS_PES_PCK_P_FRAME 
GF_M2TS_PES_PCK_B_FRAME 
GF_M2TS_PES_PCK_DISCONTINUITY 
anonymous enum
Enumerator
GF_M2TS_EVT_PAT_FOUND 
GF_M2TS_EVT_PAT_UPDATE 
GF_M2TS_EVT_PAT_REPEAT 
GF_M2TS_EVT_PMT_FOUND 
GF_M2TS_EVT_PMT_REPEAT 
GF_M2TS_EVT_PMT_UPDATE 
GF_M2TS_EVT_SDT_FOUND 
GF_M2TS_EVT_SDT_REPEAT 
GF_M2TS_EVT_SDT_UPDATE 
GF_M2TS_EVT_INT_FOUND 
GF_M2TS_EVT_INT_REPEAT 
GF_M2TS_EVT_INT_UPDATE 
GF_M2TS_EVT_PES_PCK 
GF_M2TS_EVT_PES_PCR 
GF_M2TS_EVT_PES_TIMING 
GF_M2TS_EVT_SL_PCK 
GF_M2TS_EVT_IP_DATAGRAM 
GF_M2TS_EVT_DURATION_ESTIMATED 
GF_M2TS_EVT_AAC_CFG 
GF_M2TS_EVT_TDT 
GF_M2TS_EVT_TOT 
GF_M2TS_EVT_DVB_GENERAL 
GF_M2TS_EVT_DVB_MPE 
GF_M2TS_EVT_CAT_FOUND 
GF_M2TS_EVT_CAT_REPEAT 
GF_M2TS_EVT_CAT_UPDATE 
GF_M2TS_EVT_AIT_FOUND 
GF_M2TS_EVT_DSMCC_FOUND 
GF_M2TS_EVT_TEMI_LOCATION 
GF_M2TS_EVT_TEMI_TIMECODE 
GF_M2TS_EVT_EOS 
anonymous enum
Enumerator
GF_M2TS_TABLE_START 
GF_M2TS_TABLE_END 
GF_M2TS_TABLE_FOUND 
GF_M2TS_TABLE_UPDATE 
GF_M2TS_TABLE_REPEAT 
Enumerator
METADATA_CARRIAGE_SAME_TS 
METADATA_CARRIAGE_DIFFERENT_TS 
METADATA_CARRIAGE_PS 
METADATA_CARRIAGE_OTHER 
anonymous enum
Enumerator
GF_M2TS_ES_IS_PES 
GF_M2TS_ES_IS_SECTION 
GF_M2TS_ES_IS_FMC 
GF_M2TS_ES_IS_SL 
GF_M2TS_ES_IS_MPEG4_OD 
GF_M2TS_ES_IS_MPE 
GF_M2TS_INHERIT_PCR 
GF_M2TS_ES_STATIC_FLAGS_MASK 
GF_M2TS_ES_SEND_REPEATED_SECTIONS 
GF_M2TS_ES_FIRST_DTS 
GF_M2TS_ES_IGNORE_NEXT_DISCONTINUITY 
GF_M2TS_ES_ALREADY_DECLARED 
anonymous enum
Enumerator
GF_M2TS_ADAPTATION_RESERVED 
GF_M2TS_ADAPTATION_NONE 
GF_M2TS_ADAPTATION_ONLY 
GF_M2TS_ADAPTATION_AND_PAYLOAD 
anonymous enum
Enumerator
GF_M2TS_MPEG4_SIGNALING_NONE 
GF_M2TS_MPEG4_SIGNALING_FULL 
GF_M2TS_MPEG4_SIGNALING_SCENE 
anonymous enum
Enumerator
GF_SEG_BOUNDARY_NONE 
GF_SEG_BOUNDARY_START 
GF_SEG_BOUNDARY_FORCE_PAT 
GF_SEG_BOUNDARY_FORCE_PMT 
GF_SEG_BOUNDARY_FORCE_PCR 
anonymous enum
Enumerator
GF_M2TS_STATE_IDLE 
GF_M2TS_STATE_DATA 
GF_M2TS_STATE_PADDING 
GF_M2TS_STATE_EOS 

Function Documentation

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 
)
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_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 
)

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 
)
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 
)
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 
)