libgpac
Documentation of the core library of GPAC
mpegts.h File Reference

MPEG-TS demultiplexer and multiplexer APIs. More...

#include <gpac/list.h>
#include <gpac/network.h>
#include <gpac/thread.h>
#include <gpac/internal/odf_dev.h>
+ Include dependency graph for mpegts.h:

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_Header
 
struct  GF_M2TS_AdaptationField
 
struct  GF_ESIPacket
 
struct  __esi_video_info
 
struct  __esi_audio_info
 
struct  GF_ESInterface
 
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
 
#define SECTION_ADDITIONAL_HEADER_LENGTH   5
 
#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_PSI_DEFAULT_REFRESH_RATE   200
 

Typedefs

typedef struct tag_m2ts_demux GF_M2TS_Demuxer
 
typedef void(* gf_m2ts_section_callback) (GF_M2TS_Demuxer *demux, 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_META_ID3 = GF_4CC('I','D','3',' ') }
 
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_HEVC_VIDEO_DESCRIPTOR = 0x38 , 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 , GF_M2TS_DOLBY_VISION_DESCRIPTOR = 0xB0
}
 
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_M2TSStreamType {
  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_SYNC_DOWNLOAD_PROTOCOL = 0x14 ,
  GF_M2TS_METADATA_PES = 0x15 , GF_M2TS_METADATA_SECTION = 0x16 , GF_M2TS_METADATA_DATA_CAROUSEL = 0x17 , GF_M2TS_METADATA_OBJECT_CAROUSEL = 0x18 ,
  GF_M2TS_METADATA_SYNC_DOWNLOAD_PROTOCOL = 0x19 , GF_M2TS_IPMP = 0x1A , GF_M2TS_VIDEO_H264 = 0x1B , GF_M2TS_MPEG4_AUDIO_NO_SYNTAX = 0x1C ,
  GF_M2TS_MPEG4_TEXT = 0x1D , GF_M2TS_AUX_VIDEO_23002_2 = 0x1E , GF_M2TS_VIDEO_SVC = 0x1F , GF_M2TS_VIDEO_MVC = 0x20 ,
  GF_M2TS_VIDEO_15444_1 = 0x21 , GF_M2TS_VIDEO_MPEG2_ADD_STEREO = 0x22 , GF_M2TS_VIDEO_H264_ADD_STEREO = 0x23 , GF_M2TS_VIDEO_HEVC = 0x24 ,
  GF_M2TS_VIDEO_HEVC_TEMPORAL = 0x25 , GF_M2TS_VIDEO_MVCD = 0x26 , GF_M2TS_TEMI = 0x27 , GF_M2TS_VIDEO_SHVC = 0x28 ,
  GF_M2TS_VIDEO_SHVC_TEMPORAL = 0x29 , GF_M2TS_VIDEO_MHVC = 0x2A , GF_M2TS_VIDEO_MHVC_TEMPORAL = 0x2B , GF_M2TS_GREEN = 0x2C ,
  GF_M2TS_MHAS_MAIN = 0x2D , GF_M2TS_MHAS_AUX = 0x2E , GF_M2TS_QUALITY_SEC = 0x2F , GF_M2TS_MORE_SEC = 0x30 ,
  GF_M2TS_VIDEO_HEVC_MCTS = 0x31 , GF_M2TS_JPEG_XS = 0x32 , GF_M2TS_VIDEO_VVC = 0x33 , GF_M2TS_VIDEO_VVC_TEMPORAL = 0x34 ,
  GF_M2TS_HLS_AC3_CRYPT = 0xc1 , GF_M2TS_HLS_EC3_CRYPT = 0xc2 , GF_M2TS_HLS_AAC_CRYPT = 0xcf , GF_M2TS_HLS_AVC_CRYPT = 0xdb ,
  GF_M2TS_VIDEO_VC1 = 0xEA , GF_M2TS_VIDEO_DCII = 0x80 , GF_M2TS_AUDIO_AC3 = 0x81 , GF_M2TS_AUDIO_DTS = 0x82 ,
  GF_M2TS_AUDIO_TRUEHD = 0x83 , GF_M2TS_AUDIO_EC3 = 0x84 , GF_M2TS_MPE_SECTIONS = 0x90 , GF_M2TS_SUBTITLE_DVB = 0x100 ,
  GF_M2TS_AUDIO_OPUS = 0x101 , GF_M2TS_VIDEO_AV1 = 0x102 , GF_M2TS_DVB_TELETEXT = 0x152 , GF_M2TS_DVB_VBI = 0x153 ,
  GF_M2TS_DVB_SUBTITLE = 0x154 , GF_M2TS_METADATA_ID3_HLS = 0x155
}
 
enum  {
  GF_M2TS_RA_STREAM_AC3 = GF_4CC('A','C','-','3') , GF_M2TS_RA_STREAM_EAC3 = GF_4CC('E','A','C','3') , GF_M2TS_RA_STREAM_VC1 = GF_4CC('V','C','-','1') , GF_M2TS_RA_STREAM_HEVC = GF_4CC('H','E','V','C') ,
  GF_M2TS_RA_STREAM_DTS1 = GF_4CC('D','T','S','1') , GF_M2TS_RA_STREAM_DTS2 = GF_4CC('D','T','S','2') , GF_M2TS_RA_STREAM_DTS3 = GF_4CC('D','T','S','3') , GF_M2TS_RA_STREAM_OPUS = GF_4CC('O','p','u','s') ,
  GF_M2TS_RA_STREAM_DOVI = GF_4CC('D','O','V','I') , GF_M2TS_RA_STREAM_AV1 = GF_4CC('A','V','0','1') , GF_M2TS_RA_STREAM_GPAC = GF_4CC('G','P','A','C')
}
 
enum  { GF_M2TS_AFDESC_TIMELINE_DESCRIPTOR = 0x04 , GF_M2TS_AFDESC_LOCATION_DESCRIPTOR = 0x05 , GF_M2TS_AFDESC_BASEURL_DESCRIPTOR = 0x06 }
 
enum  GF_M2TSPesFraming { GF_M2TS_PES_FRAMING_SKIP , GF_M2TS_PES_FRAMING_SKIP_NO_RESET , GF_M2TS_PES_FRAMING_RAW , GF_M2TS_PES_FRAMING_DEFAULT }
 
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_PCK , 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_STREAM_REMOVED
}
 
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_FAKE_PCR = 1<<7 ,
  GF_M2TS_GPAC_CODEC_ID = 1<<8 , GF_M2TS_ES_IS_PMT = 1<<9 , GF_M2TS_ES_IS_PCR_REUSE = 1<<10 , GF_M2TS_ES_STATIC_FLAGS_MASK = 0x0000FFFF ,
  GF_M2TS_ES_SEND_REPEATED_SECTIONS = 1<<16 , GF_M2TS_ES_IGNORE_NEXT_DISCONTINUITY = 1<<17 , GF_M2TS_ES_ALREADY_DECLARED = 1<<18 , GF_M2TS_ES_TEMI_INFO = 1<<19 ,
  GF_M2TS_ES_FULL_AU = 1<<20 , GF_M2TS_CHECK_DISC = 1<<21 , GF_M2TS_CHECK_VC1 = 1<<22
}
 
enum  { GF_ESI_INPUT_DATA_FLUSH , GF_ESI_INPUT_DATA_PULL , GF_ESI_INPUT_DATA_RELEASE , GF_ESI_INPUT_DESTROY }
 
enum  { GF_ESI_OUTPUT_DATA_DISPATCH }
 
enum  {
  GF_ESI_DATA_AU_START = 1 , GF_ESI_DATA_AU_END = 1<<1 , GF_ESI_DATA_HAS_CTS = 1<<2 , GF_ESI_DATA_HAS_DTS = 1<<3 ,
  GF_ESI_DATA_REPEAT = 1<<4
}
 
enum  {
  GF_ESI_AU_PULL_CAP = 1 , GF_ESI_STREAM_IS_OVER = 1<<2 , GF_ESI_STREAM_WITHOUT_MPEG4_SYSTEMS = 1<<3 , GF_ESI_AAC_USE_LATM = 1<<4 ,
  GF_ESI_STREAM_FLUSH = 1<<5 , GF_ESI_STREAM_HLS_SAES = 1<<6 , GF_ESI_FORCE_DOLBY_VISION = 1<<7 , GF_ESI_STREAM_SPARSE = 1<<8
}
 
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_M2TS_PackMode { GF_M2TS_PACK_AUDIO_ONLY =0 , GF_M2TS_PACK_NONE , GF_M2TS_PACK_ALL }
 
enum  GF_M2TSMuxState { GF_M2TS_STATE_IDLE , GF_M2TS_STATE_DATA , GF_M2TS_STATE_PADDING , GF_M2TS_STATE_EOS }
 

Functions

const char * gf_m2ts_get_stream_name (GF_M2TSStreamType streamType)
 
Bool gf_m2ts_probe_file (const char *fileName)
 
Bool gf_m2ts_probe_data (const u8 *data, u32 size)
 
GF_Err gf_m2ts_restamp (u8 *buffer, u32 size, s64 ts_shift, u8 is_pes[GF_M2TS_MAX_STREAMS])
 
GF_M2TS_Demuxergf_m2ts_demux_new ()
 
void gf_m2ts_demux_del (GF_M2TS_Demuxer *demux)
 
void gf_m2ts_reset_parsers (GF_M2TS_Demuxer *demux)
 
void gf_m2ts_mark_seg_start (GF_M2TS_Demuxer *demux)
 
void gf_m2ts_reset_parsers_for_program (GF_M2TS_Demuxer *demux, GF_M2TS_Program *program)
 
GF_Err gf_m2ts_set_pes_framing (GF_M2TS_PES *pes, GF_M2TSPesFraming mode)
 
GF_Err gf_m2ts_process_data (GF_M2TS_Demuxer *demux, u8 *data, u32 data_size)
 
void gf_m2ts_demux_dmscc_init (GF_M2TS_Demuxer *demux)
 
GF_M2TS_SDT * gf_m2ts_get_sdt_info (GF_M2TS_Demuxer *demux, u32 program_id)
 
void gf_m2ts_flush_pes (GF_M2TS_Demuxer *demux, GF_M2TS_PES *pes, u32 force_flush)
 
void gf_m2ts_flush_all (GF_M2TS_Demuxer *demux, Bool no_force_flush)
 
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 *muxer)
 
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, u64 pcr_offset, u32 mpeg4_signaling, u32 pmt_version, Bool initial_disc, u64 force_first_pts)
 
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, Bool needs_mutex)
 
void gf_m2ts_mux_update_config (GF_M2TS_Mux *muxer, Bool reset_time)
 
void gf_m2ts_program_stream_remove (GF_M2TS_Mux_Stream *stream)
 
GF_M2TS_Mux_Program * gf_m2ts_mux_program_find (GF_M2TS_Mux *muxer, u32 program_number)
 
u32 gf_m2ts_mux_program_count (GF_M2TS_Mux *muxer)
 
u32 gf_m2ts_mux_program_get_stream_count (GF_M2TS_Mux_Program *program)
 
u32 gf_m2ts_mux_program_get_pmt_pid (GF_M2TS_Mux_Program *program)
 
u32 gf_m2ts_mux_program_get_pcr_pid (GF_M2TS_Mux_Program *program)
 
const u8gf_m2ts_mux_process (GF_M2TS_Mux *muxer, GF_M2TSMuxState *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)
 
u64 gf_m2ts_get_ts_clock_90k (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)
 
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_program_force_keep_ts (GF_M2TS_Mux_Program *program)
 
void gf_m2ts_mux_enable_sdt (GF_M2TS_Mux *muxer, u32 refresh_rate_ms)
 

Detailed Description

>