Data Structures |
struct | GF_M2TS_Section |
struct | GF_M2TS_Table |
struct | GF_M2TS_SectionFilter |
struct | GF_M2TS_MetadataPointerDescriptor |
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_MetadataDescriptor |
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 |
struct | GF_Tuner |
Defines |
#define | SECTION_HEADER_LENGTH 3 |
#define | SECTION_ADDITIONAL_HEADER_LENGTH 5 |
#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 |
#define | DVB_BUFFER_SIZE 3760 |
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_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) |
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) |