| Description | Uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables | 
MPEG frame parsers.
2.5.2009.06 - initial release
2.5.2011.08 - more versatile demuxer
| Name | Description | 
|---|---|
Class unaBitReader_abstract | 
Abstract base class for bit-reader. | 
Class unaBitReader_file | 
Bit-reader based on file storage. | 
Class unaBitReader_stream | 
Bit-reader based on streaming. | 
Class unaMpegAudio_layer123 | 
MPEG audio frame parser. | 
Class unaMpegES | 
Elementary stream | 
packed record unaMpegHeader | 
MPEG Audio header. | 
Class unaMpegSReaderList | 
List of Section readers | 
Class unaMpegTSDemuxer | 
MPEG-TS Demuxer | 
Class unaMpegTSDemuxerSectionReader | 
Internal section reader helper. | 
record unaMpegTSDemuxerStat | 
|
Class unaMpegTSDescriptor | 
TS Descriptor | 
Class unaMpegTSDescriptorList | 
List of Descriptors | 
Class unaMpegTSEvent | 
TS Event | 
Class unaMpegTSNetwork | 
MPEG-TS Network | 
Class unaMpegTSProgram | 
MPEG-TS Program | 
Class unaMpegTSService | 
TS Service | 
Class unaMpegTS_pwnID | 
Abstract class with ID, which can read itself from reader | 
Class unaMpegTS_pwnIDList | 
Base list which indexes unaMpegTS_pwnID objects by their tags | 
TPID	 = uint32; | 
punaMpegTSDemuxerStat = ˆunaMpegTSDemuxerStat; | 
TPID	 = uint32; | 
punaMpegTSDemuxerStat = ˆunaMpegTSDemuxerStat; | 
| 
 Some statistic  | 
c_descISO639_cleanef		= $01; | 
| 
 Undefined  | 
c_descISO639_hearingImp	= $02; | 
| 
 Clean effects  | 
c_descISO639_res_end		= $FF; | 
| 
 Reserved  | 
c_descISO639_res_start	= $80; | 
c_descISO639_undef		= $00; | 
| 
 audio types for ISO_639_lang tag  | 
c_descISO639_userPriv_end	= $7F; | 
| 
 User Private  | 
c_descISO639_userPriv_start	= $04; | 
| 
 Visual impaired commentary  | 
c_descISO639_visualImp	= $03; | 
| 
 Hearing impaired  | 
c_descTagDVB_AAC				= $7C; | 
c_descTagDVB_AC3				= $6A; | 
c_descTagDVB_adaptation_field_data		= $70; | 
c_descTagDVB_ancillary_data			= $6B; | 
c_descTagDVB_announcement_support		= $6E; | 
c_descTagDVB_application_signalling		= $6F; | 
c_descTagDVB_bouquet_name			= $47; | 
c_descTagDVB_cable_delivery_system		= $44; | 
c_descTagDVB_CA_identifier			= $53; | 
c_descTagDVB_cell_frequency_link		= $6D; | 
c_descTagDVB_cell_list			= $6C; | 
c_descTagDVB_component			= $50; | 
c_descTagDVB_content				= $54; | 
c_descTagDVB_content_identifier		= $76; | 
c_descTagDVB_country_availability		= $49; | 
c_descTagDVB_data_broadcast			= $64; | 
c_descTagDVB_data_broadcast_id		= $66; | 
c_descTagDVB_default_authority		= $73; | 
c_descTagDVB_DSNG				= $68; | 
c_descTagDVB_DTS				= $7B; | 
c_descTagDVB_ECM_repetition_rate		= $78; | 
c_descTagDVB_enhanced_AC3			= $7A; | 
c_descTagDVB_extended_event			= $4E; | 
c_descTagDVB_extension			= $7F; | 
c_descTagDVB_frequency_list			= $62; | 
c_descTagDVB_FTA_content_management		= $7E; | 
c_descTagDVB_linkage				= $4A; | 
c_descTagDVB_local_time_offset		= $58; | 
c_descTagDVB_mosaic				= $51; | 
c_descTagDVB_multilingual_bouquet_name	= $5C; | 
c_descTagDVB_multilingual_component		= $5E; | 
c_descTagDVB_multilingual_network_name	= $5B; | 
c_descTagDVB_multilingual_service_name	= $5D; | 
c_descTagDVB_network_name			= $40; | 
| 
 DBV descriptors  | 
c_descTagDVB_NVOD_reference			= $4B; | 
c_descTagDVB_parental_rating			= $55; | 
c_descTagDVB_partial_transport_stream		= $63; | 
c_descTagDVB_PDC				= $69; | 
c_descTagDVB_private_data_specifier		= $5F; | 
c_descTagDVB_related_content			= $74; | 
c_descTagDVB_S2_satellite_delivery_system	= $79; | 
c_descTagDVB_satellite_delivery_system	= $43; | 
c_descTagDVB_scrambling			= $65; | 
c_descTagDVB_service				= $48; | 
c_descTagDVB_service_availability		= $72; | 
c_descTagDVB_service_identifier		= $71; | 
c_descTagDVB_service_list			= $41; | 
c_descTagDVB_service_move			= $60; | 
c_descTagDVB_short_event			= $4D; | 
c_descTagDVB_short_smoothing_buffer		= $61; | 
c_descTagDVB_stream_identifier		= $52; | 
c_descTagDVB_stuffing				= $42; | 
c_descTagDVB_subtitling			= $59; | 
c_descTagDVB_telephone			= $57; | 
c_descTagDVB_teletext				= $56; | 
c_descTagDVB_terrestrial_delivery_system	= $5A; | 
c_descTagDVB_time_shifted_event		= $4F; | 
c_descTagDVB_time_shifted_service		= $4C; | 
c_descTagDVB_time_slice_fec_identifier	= $77; | 
c_descTagDVB_transport_stream			= $67; | 
c_descTagDVB_TVA_id				= $75; | 
c_descTagDVB_VBI_data				= $45; | 
c_descTagDVB_VBI_teletext			= $46; | 
c_descTagDVB_XAIT_location			= $7D; | 
c_descTag_13818_6_13		= $13; | 
| 
 IBP_desc  | 
c_descTag_13818_6_14		= $14; | 
c_descTag_13818_6_15		= $15; | 
c_descTag_13818_6_16		= $16; | 
c_descTag_13818_6_17		= $17; | 
c_descTag_13818_6_18		= $18; | 
c_descTag_13818_6_19		= $19; | 
c_descTag_13818_6_1A		= $1A; | 
c_descTag_audio		= $03; | 
| 
 video_stream_desc  | 
c_descTag_AVC_timing		= $2A; | 
| 
 IPMP_desc  | 
c_descTag_AVC_video		= $28; | 
| 
 metadata_STD_descriptor  | 
c_descTag_CA			= $09; | 
| 
 video_window_desc  | 
c_descTag_content_labeling	= $24; | 
| 
 multiplexbuffer_descriptor  | 
c_descTag_copyright		= $0D; | 
| 
 MBU_desc  | 
c_descTag_DS_alignment	= $06; | 
| 
 registration_desc  | 
c_descTag_external_ES_ID	= $20; | 
| 
 FMC_desc  | 
c_descTag_FlexMuxTiming	= $2C; | 
| 
 MPEG-2_AAC_audio  | 
c_descTag_FMC			= $1F; | 
| 
 SL_desc  | 
c_descTag_FmxBufferSize	= $22; | 
| 
 MuxCode_descriptor  | 
c_descTag_hierarchy		= $04; | 
| 
 audio_stream_desc  | 
c_descTag_IBP			= $12; | 
| 
 STD_desc  | 
c_descTag_IOD			= $1D; | 
| 
 MPEG-4_audio_d  | 
c_descTag_IPMP		= $29; | 
| 
 AVC video desc  | 
c_descTag_ISO_639_lang	= $0A; | 
| 
 CA_desc  | 
c_descTag_maxbitrate		= $0E; | 
| 
 copyright_desc  | 
c_descTag_MBU			= $0C; | 
| 
 system_clock_desc  | 
c_descTag_metadata		= $26; | 
| 
 metadata_pointer_descriptor  | 
c_descTag_metadata_pointer	= $25; | 
| 
 content_labeling_descriptor  | 
c_descTag_metadata_STD	= $27; | 
| 
 metadata_descriptor  | 
c_descTag_MPEG2_AAC_audio	= $2B; | 
| 
 AVC timing/HRD  | 
c_descTag_MPEG4_audio		= $1C; | 
| 
 MPEG-4_video_d  | 
c_descTag_MPEG4_video		= $1B; | 
c_descTag_multiplexbuffer	= $23; | 
| 
 FmxBufferSize_descriptor  | 
c_descTag_MuxCode		= $21; | 
| 
 external_ES_ID_descriptor  | 
c_descTag_PDI			= $0F; | 
| 
 maxbitrate_desc  | 
c_descTag_registration	= $05; | 
| 
 hierarchy_desc  | 
c_descTag_res00		= $00; | 
| 
 User Private descriptor tag possible values  | 
c_descTag_res01		= $01; | 
c_descTag_res2D_start		= $2D; | 
| 
 _desc  | 
c_descTag_res3F_end		= $3F; | 
c_descTag_SL			= $1E; | 
| 
 IOD_desc  | 
c_descTag_SMB			= $10; | 
| 
 PDI_desc  | 
c_descTag_STD			= $11; | 
| 
 SMB_desc  | 
c_descTag_system_clock	= $0B; | 
| 
 ISO_639_lang_desc  | 
c_descTag_TBG			= $07; | 
| 
 DS_alignment_desc  | 
c_descTag_userPriv_end	= $FF; | 
c_descTag_userPriv_start	= $40; | 
c_descTag_video		= $02; | 
| 
 Reserved  | 
c_descTag_video_window	= $08; | 
| 
 TBG_desc  | 
c_mpegFreq: array[1..3, 0..3] of int =
    (
     
     (44100, 48000, 32000, 0),
     
     (22050, 24000, 16000, 0),
     
     (11025, 12000, 8000, 0)
    ); | 
| 
 Defines sampling rates for MPEG audio frame: - first index is 1 for MPEG1, 2 for MPEG2, 3 for MPEG2.5 - second index is [header.sampling_frequency] field  | 
c_mpeg_bitrate: array[1..3, 0..14, 1..3] of int =
    (
     
     (
      (  0,   0,   0),
      ( 32,  32,  32),
      ( 64,  48,  40),
      ( 96,  56,  48),
      (128,  64,  56),
      (160,  80,  64),
      (192,  96,  80),
      (224, 112,  96),
      (256, 128, 112),
      (288, 160, 128),
      (320, 192, 160),
      (352, 224, 192),
      (384, 256, 224),
      (416, 320, 256),
      (448, 384, 320)
     ),
     
     (
      (  0,   0,   0),
      ( 32,   8,   8),
      ( 48,  16,  16),
      ( 56,  24,  24),
      ( 64,  32,  32),
      ( 80,  40,  40),
      ( 96,  48,  48),
      (112,  56,  56),
      (128,  64,  64),
      (144,  80,  80),
      (160,  96,  96),
      (176, 112, 112),
      (192, 128, 128),
      (224, 144, 144),
      (256, 160, 160)
     ),
     
     (
      (  0,   0,   0),
      ( 32,   8,   8),
      ( 48,  16,  16),
      ( 56,  24,  24),
      ( 64,  32,  32),
      ( 80,  40,  40),
      ( 96,  48,  48),
      (112,  56,  56),
      (128,  64,  64),
      (144,  80,  80),
      (160,  96,  96),
      (176, 112, 112),
      (192, 128, 128),
      (224, 144, 144),
      (256, 160, 160)
     )
    ); | 
| 
 Defines various MP3 bitrates: - first index is 1 for MPEG1, 2 for MPEG2, 3 for MPEG2.5 - second index is [header.bitrate_index] field - third index is 1 (layer I), 2 (layer II) or 3 (layer III)  | 
c_PESST_ancillary_stream		= $F9; | 
| 
 1111 1000  | 
c_PESST_audio_stream_x		= $C0; | 
| 
 1011 1111  | 
c_PESST_audio_stream_x_mask	  	= $E0; | 
| 
 1110 xxxx - up to 16 video streams  | 
c_PESST_ECM_stream			= $F0; | 
| 
 1111 0000  | 
c_PESST_EMM_stream			= $F1; | 
| 
 1111 0000  | 
c_PESST_padding_stream		= $BE; | 
| 
 1011 1101  | 
c_PESST_private_stream_1		= $BD; | 
| 
 1011 1100  | 
c_PESST_private_stream_2		= $BF; | 
| 
 1011 1110  | 
c_PESST_program_stream_directory	= $FF; | 
| 
 1111 1100 … 1111 1110 reserved data stream  | 
c_PESST_program_stream_map		= $BC; | 
| 
 forbidden PES stream types  | 
c_PESST_stream_13522			= $F3; | 
| 
 1111 0010  | 
c_PESST_stream_14496_FlexMux		= $FB; | 
| 
 1111 1010  | 
c_PESST_stream_14496_SL		= $FA; | 
| 
 1111 1001  | 
c_PESST_stream_222_A			= $F4; | 
| 
 1111 0011  | 
c_PESST_stream_222_B	 		= $F5; | 
| 
 1111 0100  | 
c_PESST_stream_222_C			= $F6; | 
| 
 1111 0101  | 
c_PESST_stream_222_D			= $F7; | 
| 
 1111 0110  | 
c_PESST_stream_222_E			= $F8; | 
| 
 1111 0111  | 
c_PESST_stream_A_or_DSMCC		= $F2; | 
| 
 1111 0001  | 
c_PESST_stream_reserved_FC		= $FC; | 
| 
 1111 1011  | 
c_PESST_stream_reserved_FD		= $FD; | 
| 
 1111 1100 … 1111 1110 reserved data stream  | 
c_PESST_stream_reserved_FE		= $FE; | 
| 
 1111 1100 … 1111 1110 reserved data stream  | 
c_PESST_video_stream_x		= $E0; | 
| 
 110x xxxx - up to 32 audio streams  | 
c_PESST_video_stream_x_mask		= $F0; | 
| 
 1110 0000  | 
c_PID_CAT		= $0001; | 
c_PID_DIT		= $001E; | 
c_PID_EIT		= $0012; | 
c_PID_IPMP		= $0003; | 
c_PID_IS		= $001C; | 
c_PID_MEAS		= $001D; | 
c_PID_NIT     	= $0010; | 
c_PID_NS		= $0015; | 
c_PID_null		= $1FFF; | 
c_PID_PAT		= $0000; | 
| 
 PIDs  | 
c_PID_RNT		= $0016; | 
c_PID_RST		= $0013; | 
c_PID_SDT_BAT		= $0011; | 
c_PID_SIT		= $001F; | 
c_PID_TDT_TOT		= $0014; | 
c_PID_TSDT		= $0002; | 
c_PMTST_AVC_1_pack			= $13; | 
| 
 ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets  | 
c_PMTST_AVC_1_pack_PES		= $12; | 
| 
 ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3  | 
c_PMTST_AVC_audio			= $11; | 
| 
 ISO/IEC 14496-2 Visual  | 
c_PMTST_AVC_H264_video	    	= $1B; | 
| 
 IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP)  | 
c_PMTST_AVC_visual			= $10; | 
| 
 ISO/IEC 13818-7 Audio with ADTS transport syntax  | 
c_PMTST_H222_1			= $09; | 
| 
 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A DSM-CC  | 
c_PMTST_IPMP				= $7F; | 
| 
 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved  | 
c_PMTST_meta_DC    			= $17; | 
| 
 Metadata carried in metadata_sections  | 
c_PMTST_meta_meta    			= $16; | 
| 
 Metadata carried in PES packets  | 
c_PMTST_meta_object			= $18; | 
| 
 Metadata carried in ISO/IEC 13818-6 Data Carousel  | 
c_PMTST_meta_PES    		 	= $15; | 
| 
 ISO/IEC 13818-6 Synchronized Download Protocol  | 
c_PMTST_meta_SDP		    	= $19; | 
| 
 Metadata carried in ISO/IEC 13818-6 Object Carousel  | 
c_PMTST_MHEG				= $07; | 
| 
 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 PES packets containing private data  | 
c_PMTST_MPEG1_audio			= $03; | 
| 
 ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream  | 
c_PMTST_MPEG1_video			= $01; | 
| 
 ITU-T | ISO/IEC Reserved  | 
c_PMTST_MPEG2_6_typeA			= $0A; | 
| 
 ITU-T Rec. H.222.1  | 
c_PMTST_MPEG2_6_typeB			= $0B; | 
| 
 ISO/IEC 13818-6 type A  | 
c_PMTST_MPEG2_6_typeC			= $0C; | 
| 
 ISO/IEC 13818-6 type B  | 
c_PMTST_MPEG2_6_typeD			= $0D; | 
| 
 ISO/IEC 13818-6 type C  | 
c_PMTST_MPEG2_ADTS		        = $0F; | 
| 
 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 auxiliary  | 
c_PMTST_MPEG2_audio			= $04; | 
| 
 ISO/IEC 11172-3 Audio  | 
c_PMTST_MPEG2_aux			= $0E; | 
| 
 ISO/IEC 13818-6 type D  | 
c_PMTST_MPEG2_DSM_CC			= $08; | 
| 
 ISO/IEC 13522 MHEG  | 
c_PMTST_MPEG2_IPMP		    	= $1A; | 
| 
 Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol  | 
c_PMTST_MPEG2_PESprivate		= $06; | 
| 
 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 private_sections  | 
c_PMTST_MPEG2_private			= $05; | 
| 
 ISO/IEC 13818-3 Audio  | 
c_PMTST_MPEG2_reserved_end		= $7E; | 
c_PMTST_MPEG2_reserved_start    	= $1C; | 
| 
 AVC video stream as defined in ITU-T Rec. H.264 | ISO/IEC 14496-10 Video  | 
c_PMTST_MPEG2_SDP			= $14; | 
| 
 ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC 14496_sections  | 
c_PMTST_MPEG2_video			= $02; | 
| 
 ISO/IEC 11172-2 Video  | 
c_PMTST_reserved			= $00; | 
| 
 1111 1111 PMT stream types  | 
c_PMTST_user_private_end		= $FF; | 
c_PMTST_user_private_start		= $80; | 
| 
 IPMP stream  | 
c_table_id_AIT	= $74; | 
| 
 time_offset_section  | 
c_table_id_BAT	= $4A; | 
| 
 service_description_section - other_transport_stream 47 to 0x49 reserved for future use  | 
c_table_id_CAT	= $01; | 
| 
 program_association_section  | 
c_table_id_CIT	= $77; | 
| 
 related content section (TS 102 323 [13])  | 
c_table_id_CT		= $75; | 
| 
 application information section (TS 102 812 [15])  | 
c_table_id_DIT	= $7E; | 
| 
 MPE-IFEC section (TS 102 772 [51]) 7B to 0x7D reserved for future use  | 
c_table_id_EIT_a	= $4E; | 
| 
 bouquet_association_section 4B to 0x4D reserved for future use  | 
c_table_id_EIT_o	= $4F; | 
| 
 event_information_section - actual_transport_stream, present/following  | 
c_table_id_forbidden	= $FF; | 
| 
 selection_information_section 80 to 0xFE user defined  | 
c_table_id_MPE_FEC	= $78; | 
| 
 content identifier section (TS 102 323 [13])  | 
c_table_id_MPE_IFEC	= $7A; | 
| 
 resolution notification section (TS 102 323 [13])  | 
c_table_id_NIT_a	= $40; | 
| 
 transport_stream_description_section 04 to 0x3F reserved  | 
c_table_id_NIT_o	= $41; | 
| 
 network_information_section - actual_network  | 
c_table_id_PAT	= $00; | 
| 
 c_PID_PMT = $FFFF; // this is not an actual PID, rather an internal flag : Allocation of table_id values  | 
c_table_id_PMT	= $02; | 
| 
 conditional_access_section  | 
c_table_id_RCT	= $76; | 
| 
 container section (TS 102 323 [13])  | 
c_table_id_RNT	= $79; | 
| 
 MPE-FEC section (EN 301 192 [4])  | 
c_table_id_RST	= $71; | 
| 
 time_date_section  | 
c_table_id_SDT_ats	= $42; | 
| 
 network_information_section - other_network  | 
c_table_id_SDT_o	= $46; | 
| 
 service_description_section - actual_transport_stream 43 to 0x45 reserved for future use  | 
c_table_id_SIT	= $7F; | 
| 
 discontinuity_information_section  | 
c_table_id_ST		= $72; | 
| 
 running_status_section  | 
c_table_id_TOT	= $73; | 
| 
 stuffing_section  | 
c_table_id_TSDT	= $03; | 
| 
 program_map_section  | 
c_TS_packet_size	= 188; | 
| 
 ————- == MPEG TS == ————-  | 
(c) 2012 Lake of Soft