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