@alessmicrosystems/mpegts.js 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +158 -0
  3. package/README_ja.md +153 -0
  4. package/README_zh.md +157 -0
  5. package/d.ts/mpegts.d.ts +524 -0
  6. package/d.ts/src/core/mse-events.d.ts +9 -0
  7. package/d.ts/src/core/transmuxing-events.d.ts +24 -0
  8. package/d.ts/src/demux/aac.d.ts +44 -0
  9. package/d.ts/src/demux/ac3.d.ts +70 -0
  10. package/d.ts/src/demux/av1-parser.d.ts +77 -0
  11. package/d.ts/src/demux/av1.d.ts +11 -0
  12. package/d.ts/src/demux/base-demuxer.d.ts +55 -0
  13. package/d.ts/src/demux/h264.d.ts +40 -0
  14. package/d.ts/src/demux/h265.d.ts +65 -0
  15. package/d.ts/src/demux/klv.d.ts +17 -0
  16. package/d.ts/src/demux/mp3.d.ts +6 -0
  17. package/d.ts/src/demux/mpeg4-audio.d.ts +28 -0
  18. package/d.ts/src/demux/pat-pmt-pes.d.ts +106 -0
  19. package/d.ts/src/demux/patpmt.d.ts +40 -0
  20. package/d.ts/src/demux/pes-private-data.d.ts +14 -0
  21. package/d.ts/src/demux/pgs-data.d.ts +9 -0
  22. package/d.ts/src/demux/scte35.d.ts +250 -0
  23. package/d.ts/src/demux/sei.d.ts +8 -0
  24. package/d.ts/src/demux/smpte2038.d.ts +22 -0
  25. package/d.ts/src/demux/ts-demuxer.d.ts +124 -0
  26. package/d.ts/src/player/live-latency-chaser.d.ts +10 -0
  27. package/d.ts/src/player/live-latency-synchronizer.d.ts +10 -0
  28. package/d.ts/src/player/loading-controller.d.ts +19 -0
  29. package/d.ts/src/player/mse-player.d.ts +30 -0
  30. package/d.ts/src/player/player-engine-dedicated-thread-worker.d.ts +2 -0
  31. package/d.ts/src/player/player-engine-dedicated-thread.d.ts +48 -0
  32. package/d.ts/src/player/player-engine-main-thread.d.ts +50 -0
  33. package/d.ts/src/player/player-engine-worker-cmd-def.d.ts +25 -0
  34. package/d.ts/src/player/player-engine-worker-msg-def.d.ts +54 -0
  35. package/d.ts/src/player/player-engine-worker.d.ts +2 -0
  36. package/d.ts/src/player/player-engine.d.ts +16 -0
  37. package/d.ts/src/player/player-events.d.ts +21 -0
  38. package/d.ts/src/player/seeking-handler.d.ts +22 -0
  39. package/d.ts/src/player/startup-stall-jumper.d.ts +14 -0
  40. package/d.ts/src/utils/typedarray-equality.d.ts +2 -0
  41. package/dist/mpegts.js +3 -0
  42. package/dist/mpegts.js.LICENSE.txt +7 -0
  43. package/dist/mpegts.js.map +1 -0
  44. package/package.json +53 -0
  45. package/src/config.js +67 -0
  46. package/src/core/features.js +88 -0
  47. package/src/core/media-info.js +127 -0
  48. package/src/core/media-segment-info.js +230 -0
  49. package/src/core/mse-controller.js +599 -0
  50. package/src/core/mse-events.ts +28 -0
  51. package/src/core/transmuxer.js +346 -0
  52. package/src/core/transmuxing-controller.js +628 -0
  53. package/src/core/transmuxing-events.ts +43 -0
  54. package/src/core/transmuxing-worker.js +286 -0
  55. package/src/demux/aac.ts +397 -0
  56. package/src/demux/ac3.ts +335 -0
  57. package/src/demux/amf-parser.js +243 -0
  58. package/src/demux/av1-parser.ts +629 -0
  59. package/src/demux/av1.ts +103 -0
  60. package/src/demux/base-demuxer.ts +69 -0
  61. package/src/demux/demux-errors.js +26 -0
  62. package/src/demux/exp-golomb.js +116 -0
  63. package/src/demux/flv-demuxer.js +1854 -0
  64. package/src/demux/h264.ts +187 -0
  65. package/src/demux/h265-parser.js +501 -0
  66. package/src/demux/h265.ts +214 -0
  67. package/src/demux/klv.ts +40 -0
  68. package/src/demux/mp3.ts +7 -0
  69. package/src/demux/mpeg4-audio.ts +45 -0
  70. package/src/demux/pat-pmt-pes.ts +132 -0
  71. package/src/demux/pes-private-data.ts +16 -0
  72. package/src/demux/pgs-data.ts +11 -0
  73. package/src/demux/scte35.ts +723 -0
  74. package/src/demux/sei.ts +99 -0
  75. package/src/demux/smpte2038.ts +89 -0
  76. package/src/demux/sps-parser.js +298 -0
  77. package/src/demux/ts-demuxer.ts +2405 -0
  78. package/src/index.js +4 -0
  79. package/src/io/fetch-stream-loader.js +266 -0
  80. package/src/io/io-controller.js +647 -0
  81. package/src/io/loader.js +134 -0
  82. package/src/io/param-seek-handler.js +85 -0
  83. package/src/io/range-seek-handler.js +52 -0
  84. package/src/io/speed-sampler.js +93 -0
  85. package/src/io/websocket-loader.js +151 -0
  86. package/src/io/xhr-moz-chunked-loader.js +211 -0
  87. package/src/io/xhr-msstream-loader.js +307 -0
  88. package/src/io/xhr-range-loader.js +366 -0
  89. package/src/mpegts.js +95 -0
  90. package/src/player/live-latency-chaser.ts +66 -0
  91. package/src/player/live-latency-synchronizer.ts +79 -0
  92. package/src/player/loading-controller.ts +142 -0
  93. package/src/player/mse-player.ts +150 -0
  94. package/src/player/native-player.js +262 -0
  95. package/src/player/player-engine-dedicated-thread.ts +479 -0
  96. package/src/player/player-engine-main-thread.ts +463 -0
  97. package/src/player/player-engine-worker-cmd-def.ts +62 -0
  98. package/src/player/player-engine-worker-msg-def.ts +102 -0
  99. package/src/player/player-engine-worker.ts +370 -0
  100. package/src/player/player-engine.ts +35 -0
  101. package/src/player/player-errors.js +39 -0
  102. package/src/player/player-events.ts +40 -0
  103. package/src/player/seeking-handler.ts +205 -0
  104. package/src/player/startup-stall-jumper.ts +86 -0
  105. package/src/remux/aac-silent.js +56 -0
  106. package/src/remux/mp4-generator.js +866 -0
  107. package/src/remux/mp4-remuxer.js +778 -0
  108. package/src/utils/browser.js +128 -0
  109. package/src/utils/exception.js +73 -0
  110. package/src/utils/logger.js +140 -0
  111. package/src/utils/logging-control.js +165 -0
  112. package/src/utils/polyfill.js +68 -0
  113. package/src/utils/typedarray-equality.ts +69 -0
  114. package/src/utils/utf8-conv.js +84 -0
  115. package/src/utils/webworkify-webpack.js +202 -0
  116. package/tsconfig.json +16 -0
  117. package/tslint.json +1 -0
  118. package/types/index.d.ts +3 -0
  119. package/types/test-flv.ts +8 -0
  120. package/types/tsconfig.json +24 -0
  121. package/webpack.config.js +55 -0
@@ -0,0 +1,77 @@
1
+ import ExpGolomb from './exp-golomb.js';
2
+ type OperatingPoint = {
3
+ operating_point_idc: number;
4
+ level: number;
5
+ tier: number;
6
+ decoder_model_present_for_this_op?: boolean;
7
+ };
8
+ type SequenceHeaderDetails = {
9
+ frame_id_numbers_present_flag: boolean;
10
+ additional_frame_id_length_minus_1?: number;
11
+ delta_frame_id_length_minus_2?: number;
12
+ reduced_still_picture_header: boolean;
13
+ decoder_model_info_present_flag: boolean;
14
+ operating_points_cnt_minus_1?: number;
15
+ operating_points: OperatingPoint[];
16
+ buffer_removal_time_length_minus_1: number;
17
+ equal_picture_interval: boolean;
18
+ seq_force_screen_content_tools: number;
19
+ seq_force_integer_mv: number;
20
+ enable_order_hint: boolean;
21
+ order_hint_bits: number;
22
+ enable_superres: boolean;
23
+ frame_width_bit: number;
24
+ frame_height_bit: number;
25
+ max_frame_width: number;
26
+ max_frame_height: number;
27
+ };
28
+ type FrameResolutions = {
29
+ UpscaledWidth: number;
30
+ FrameWidth: number;
31
+ FrameHeight: number;
32
+ RenderWidth: number;
33
+ RenderHeight: number;
34
+ };
35
+ type AV1Metadata = {
36
+ codec_mimetype: string;
37
+ level: number;
38
+ level_string: string;
39
+ tier: number;
40
+ profile_idc: number;
41
+ profile_string: string;
42
+ bit_depth: number;
43
+ ref_frames: number;
44
+ chroma_format: number;
45
+ chroma_format_string: string;
46
+ sequence_header: SequenceHeaderDetails;
47
+ sequence_header_data: Uint8Array;
48
+ keyframe?: boolean;
49
+ frame_rate: {
50
+ fixed: boolean;
51
+ fps: number;
52
+ fps_den: number;
53
+ fps_num: number;
54
+ };
55
+ sar_ratio?: {
56
+ width: number;
57
+ height: number;
58
+ };
59
+ codec_size?: {
60
+ width: number;
61
+ height: number;
62
+ };
63
+ present_size?: {
64
+ width: number;
65
+ height: number;
66
+ };
67
+ };
68
+ declare class AV1OBUParser {
69
+ static parseOBUs(uint8array: Uint8Array, meta?: AV1Metadata | null): AV1Metadata;
70
+ static parseSeuqneceHeader(uint8array: Uint8Array): Omit<AV1Metadata, 'sequence_header_data'>;
71
+ static parseOBUFrameHeader(uint8array: Uint8Array, temporal_id: number, spatial_id: number, meta: AV1Metadata): AV1Metadata;
72
+ static frameSizeAndRenderSize(gb: ExpGolomb, frame_size_override_flag: boolean, sequence_header: SequenceHeaderDetails): FrameResolutions;
73
+ static getLevelString(level: number, tier: number): string;
74
+ static getChromaFormat(mono_chrome: boolean, subsampling_x: number, subsampling_y: number): number;
75
+ static getChromaFormatString(mono_chrome: boolean, subsampling_x: number, subsampling_y: number): string;
76
+ }
77
+ export default AV1OBUParser;
@@ -0,0 +1,11 @@
1
+ export declare class AV1OBUInMpegTsParser {
2
+ private readonly TAG;
3
+ private data_;
4
+ private current_startcode_offset_;
5
+ private eof_flag_;
6
+ static _ebsp2rbsp(uint8array: Uint8Array): Uint8Array;
7
+ constructor(data: Uint8Array);
8
+ private findNextStartCodeOffset;
9
+ readNextOBUPayload(): Uint8Array | null;
10
+ }
11
+ export default AV1OBUInMpegTsParser;
@@ -0,0 +1,55 @@
1
+ import MediaInfo from '../core/media-info';
2
+ import { PESPrivateData, PESPrivateDataDescriptor } from './pes-private-data';
3
+ import { SMPTE2038Data } from './smpte2038';
4
+ import { SCTE35Data } from './scte35';
5
+ import { KLVData } from './klv';
6
+ import { PGSData } from './pgs-data';
7
+ import { SEIData } from './sei';
8
+ type OnErrorCallback = (type: string, info: string) => void;
9
+ type OnMediaInfoCallback = (mediaInfo: MediaInfo) => void;
10
+ type OnMetaDataArrivedCallback = (metadata: any) => void;
11
+ type OnTrackMetadataCallback = (type: string, metadata: any) => void;
12
+ type OnDataAvailableCallback = (audioTrack: any, videoTrack: any) => void;
13
+ type OnTimedID3MetadataCallback = (timed_id3_data: PESPrivateData) => void;
14
+ type onPGSSubitleDataCallback = (pgs_data: PGSData) => void;
15
+ type OnSynchronousKLVMetadataCallback = (synchronous_klv_data: KLVData) => void;
16
+ type OnAsynchronousKLVMetadataCallback = (asynchronous_klv_data: PESPrivateData) => void;
17
+ type OnSMPTE2038MetadataCallback = (smpte2038_data: SMPTE2038Data) => void;
18
+ type OnSEICallback = (sei_data: SEIData) => void;
19
+ type OnSCTE35MetadataCallback = (scte35_data: SCTE35Data) => void;
20
+ type OnPESPrivateDataCallback = (private_data: PESPrivateData) => void;
21
+ type OnPESPrivateDataDescriptorCallback = (private_data_descriptor: PESPrivateDataDescriptor) => void;
22
+ export type TracksUpdatedInfo = {
23
+ audioTracks: Array<{
24
+ pid: number;
25
+ codec: string;
26
+ lang?: string;
27
+ }>;
28
+ subtitleTracks: Array<{
29
+ pid: number;
30
+ type: string;
31
+ lang?: string;
32
+ }>;
33
+ };
34
+ type OnTracksUpdatedCallback = (info: TracksUpdatedInfo) => void;
35
+ export default abstract class BaseDemuxer {
36
+ onError: OnErrorCallback;
37
+ onMediaInfo: OnMediaInfoCallback;
38
+ onMetaDataArrived: OnMetaDataArrivedCallback;
39
+ onTrackMetadata: OnTrackMetadataCallback;
40
+ onDataAvailable: OnDataAvailableCallback;
41
+ onTimedID3Metadata: OnTimedID3MetadataCallback;
42
+ onPGSSubtitleData: onPGSSubitleDataCallback;
43
+ onSynchronousKLVMetadata: OnSynchronousKLVMetadataCallback;
44
+ onAsynchronousKLVMetadata: OnAsynchronousKLVMetadataCallback;
45
+ onSMPTE2038Metadata: OnSMPTE2038MetadataCallback;
46
+ onSEI: OnSEICallback;
47
+ onSCTE35Metadata: OnSCTE35MetadataCallback;
48
+ onPESPrivateData: OnPESPrivateDataCallback;
49
+ onPESPrivateDataDescriptor: OnPESPrivateDataDescriptorCallback;
50
+ onTracksUpdated: OnTracksUpdatedCallback;
51
+ constructor();
52
+ destroy(): void;
53
+ abstract parseChunks(chunk: ArrayBuffer, byteStart: number): number;
54
+ }
55
+ export {};
@@ -0,0 +1,40 @@
1
+ export declare enum H264NaluType {
2
+ kUnspecified = 0,
3
+ kSliceNonIDR = 1,
4
+ kSliceDPA = 2,
5
+ kSliceDPB = 3,
6
+ kSliceDPC = 4,
7
+ kSliceIDR = 5,
8
+ kSliceSEI = 6,
9
+ kSliceSPS = 7,
10
+ kSlicePPS = 8,
11
+ kSliceAUD = 9,
12
+ kEndOfSequence = 10,
13
+ kEndOfStream = 11,
14
+ kFiller = 12,
15
+ kSPSExt = 13,
16
+ kReserved0 = 14
17
+ }
18
+ export declare class H264NaluPayload {
19
+ type: H264NaluType;
20
+ data: Uint8Array;
21
+ }
22
+ export declare class H264NaluAVC1 {
23
+ type: H264NaluType;
24
+ data: Uint8Array;
25
+ constructor(nalu: H264NaluPayload);
26
+ }
27
+ export declare class H264AnnexBParser {
28
+ private readonly TAG;
29
+ private data_;
30
+ private current_startcode_offset_;
31
+ private eof_flag_;
32
+ constructor(data: Uint8Array);
33
+ private findNextStartCodeOffset;
34
+ readNextNaluPayload(): H264NaluPayload | null;
35
+ }
36
+ export declare class AVCDecoderConfigurationRecord {
37
+ private data;
38
+ constructor(sps: Uint8Array, pps: Uint8Array, sps_details: any);
39
+ getData(): Uint8Array;
40
+ }
@@ -0,0 +1,65 @@
1
+ export declare enum H265NaluType {
2
+ kSliceIDR_W_RADL = 19,
3
+ kSliceIDR_N_LP = 20,
4
+ kSliceCRA_NUT = 21,
5
+ kSliceVPS = 32,
6
+ kSliceSPS = 33,
7
+ kSlicePPS = 34,
8
+ kSliceAUD = 35,
9
+ kSliceSEI = 39,
10
+ kSliceSEISuffix = 40
11
+ }
12
+ export declare class H265NaluPayload {
13
+ type: H265NaluType;
14
+ data: Uint8Array;
15
+ }
16
+ export declare class H265NaluHVC1 {
17
+ type: H265NaluType;
18
+ data: Uint8Array;
19
+ constructor(nalu: H265NaluPayload);
20
+ }
21
+ export declare class H265AnnexBParser {
22
+ private readonly TAG;
23
+ private data_;
24
+ private current_startcode_offset_;
25
+ private eof_flag_;
26
+ constructor(data: Uint8Array);
27
+ private findNextStartCodeOffset;
28
+ readNextNaluPayload(): H265NaluPayload | null;
29
+ }
30
+ export type HEVCDecoderConfigurationRecordType = {
31
+ configurationVersion: 1;
32
+ } & VPSHEVCDecoderConfigurationRecordType & SPSHEVCDecoderConfigurationRecordType & PPSHEVCDecoderConfigurationRecordType;
33
+ export type VPSHEVCDecoderConfigurationRecordType = {
34
+ num_temporal_layers: number;
35
+ temporal_id_nested: boolean;
36
+ };
37
+ export type SPSHEVCDecoderConfigurationRecordType = {
38
+ general_profile_space: number;
39
+ general_tier_flag: number;
40
+ general_level_idc: number;
41
+ general_profile_idc: number;
42
+ general_profile_compatibility_flags_1: number;
43
+ general_profile_compatibility_flags_2: number;
44
+ general_profile_compatibility_flags_3: number;
45
+ general_profile_compatibility_flags_4: number;
46
+ general_constraint_indicator_flags_1: number;
47
+ general_constraint_indicator_flags_2: number;
48
+ general_constraint_indicator_flags_3: number;
49
+ general_constraint_indicator_flags_4: number;
50
+ general_constraint_indicator_flags_5: number;
51
+ general_constraint_indicator_flags_6: number;
52
+ constant_frame_rate: number;
53
+ min_spatial_segmentation_idc: number;
54
+ chroma_format_idc: number;
55
+ bit_depth_luma_minus8: number;
56
+ bit_depth_chroma_minus8: number;
57
+ };
58
+ export type PPSHEVCDecoderConfigurationRecordType = {
59
+ parallelismType: number;
60
+ };
61
+ export declare class HEVCDecoderConfigurationRecord {
62
+ private data;
63
+ constructor(vps: Uint8Array, sps: Uint8Array, pps: Uint8Array, detail: HEVCDecoderConfigurationRecordType);
64
+ getData(): Uint8Array;
65
+ }
@@ -0,0 +1,17 @@
1
+ export declare class KLVData {
2
+ pid: number;
3
+ stream_id: number;
4
+ pts?: number;
5
+ dts?: number;
6
+ access_units: AccessUnit[];
7
+ data: Uint8Array;
8
+ len: number;
9
+ }
10
+ type AccessUnit = {
11
+ service_id: number;
12
+ sequence_number: number;
13
+ flags: number;
14
+ data: Uint8Array;
15
+ };
16
+ export declare const klv_parse: (data: Uint8Array) => AccessUnit[];
17
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare class MP3Data {
2
+ object_type: number;
3
+ sample_rate: number;
4
+ channel_count: number;
5
+ data: Uint8Array;
6
+ }
@@ -0,0 +1,28 @@
1
+ export declare enum MPEG4AudioObjectTypes {
2
+ kNull = 0,
3
+ kAACMain = 1,
4
+ kAAC_LC = 2,
5
+ kAAC_SSR = 3,
6
+ kAAC_LTP = 4,
7
+ kAAC_SBR = 5,
8
+ kAAC_Scalable = 6,
9
+ kLayer1 = 32,
10
+ kLayer2 = 33,
11
+ kLayer3 = 34
12
+ }
13
+ export declare enum MPEG4SamplingFrequencyIndex {
14
+ k96000Hz = 0,
15
+ k88200Hz = 1,
16
+ k64000Hz = 2,
17
+ k48000Hz = 3,
18
+ k44100Hz = 4,
19
+ k32000Hz = 5,
20
+ k24000Hz = 6,
21
+ k22050Hz = 7,
22
+ k16000Hz = 8,
23
+ k12000Hz = 9,
24
+ k11025Hz = 10,
25
+ k8000Hz = 11,
26
+ k7350Hz = 12
27
+ }
28
+ export declare const MPEG4SamplingFrequencies: number[];
@@ -0,0 +1,106 @@
1
+ interface ProgramToPMTPIDMap {
2
+ [program: number]: number;
3
+ }
4
+ export declare class PAT {
5
+ version_number: number;
6
+ network_pid: number;
7
+ program_pmt_pid: ProgramToPMTPIDMap;
8
+ }
9
+ export declare enum StreamType {
10
+ kMPEG1Audio = 3,
11
+ kMPEG2Audio = 4,
12
+ kPESPrivateData = 6,
13
+ kADTSAAC = 15,
14
+ kLOASAAC = 17,
15
+ kAC3 = 129,
16
+ kEAC3 = 135,
17
+ kMetadata = 21,
18
+ kSCTE35 = 134,
19
+ kPGS = 144,
20
+ kH264 = 27,
21
+ kH265 = 36
22
+ }
23
+ interface PIDToStreamTypeMap {
24
+ [pid: number]: StreamType;
25
+ }
26
+ export declare class PMT {
27
+ program_number: number;
28
+ version_number: number;
29
+ pcr_pid: number;
30
+ pid_stream_type: PIDToStreamTypeMap;
31
+ common_pids: {
32
+ h264: number | undefined;
33
+ h265: number | undefined;
34
+ av1: number | undefined;
35
+ adts_aac: number | undefined;
36
+ loas_aac: number | undefined;
37
+ opus: number | undefined;
38
+ ac3: number | undefined;
39
+ eac3: number | undefined;
40
+ mp3: number | undefined;
41
+ };
42
+ pes_private_data_pids: {
43
+ [pid: number]: boolean;
44
+ };
45
+ timed_id3_pids: {
46
+ [pid: number]: boolean;
47
+ };
48
+ pgs_pids: {
49
+ [pid: number]: boolean;
50
+ };
51
+ pgs_langs: {
52
+ [pid: number]: string;
53
+ };
54
+ synchronous_klv_pids: {
55
+ [pid: number]: boolean;
56
+ };
57
+ asynchronous_klv_pids: {
58
+ [pid: number]: boolean;
59
+ };
60
+ scte_35_pids: {
61
+ [pid: number]: boolean;
62
+ };
63
+ smpte2038_pids: {
64
+ [oid: number]: boolean;
65
+ };
66
+ all_audio_pids: Array<{
67
+ pid: number;
68
+ codec: string;
69
+ lang?: string;
70
+ }>;
71
+ subtitle_pids: Array<{
72
+ pid: number;
73
+ type: string;
74
+ lang?: string;
75
+ }>;
76
+ parsed_sections: {
77
+ [section_number: number]: boolean;
78
+ };
79
+ }
80
+ export interface ProgramToPMTMap {
81
+ [program: number]: PMT;
82
+ }
83
+ export declare class PESData {
84
+ pid: number;
85
+ data: Uint8Array;
86
+ stream_type: StreamType;
87
+ file_position: number;
88
+ random_access_indicator: number;
89
+ }
90
+ export declare class SectionData {
91
+ pid: number;
92
+ data: Uint8Array;
93
+ file_position: number;
94
+ random_access_indicator: number;
95
+ }
96
+ export declare class SliceQueue {
97
+ slices: Uint8Array[];
98
+ total_length: number;
99
+ expected_length: number;
100
+ file_position: number;
101
+ random_access_indicator: 0;
102
+ }
103
+ export interface PIDToSliceQueues {
104
+ [pid: number]: SliceQueue;
105
+ }
106
+ export {};
@@ -0,0 +1,40 @@
1
+ interface ProgramPMTPIDMap {
2
+ [program: number]: number;
3
+ }
4
+ export declare class PAT {
5
+ version_number: number;
6
+ network_pid: number;
7
+ program_pmt_pid: ProgramPMTPIDMap;
8
+ }
9
+ export declare enum StreamType {
10
+ kMPEG1Audio = 3,
11
+ kMPEG2Audio = 4,
12
+ kPESPrivateData = 6,
13
+ kADTSAAC = 15,
14
+ kID3 = 21,
15
+ kH264 = 27,
16
+ kH265 = 36
17
+ }
18
+ interface PIDStreamTypeMap {
19
+ [pid: number]: StreamType;
20
+ }
21
+ export declare class PMT {
22
+ program_number: number;
23
+ version_number: number;
24
+ pcr_pid: number;
25
+ pid_stream_type: PIDStreamTypeMap;
26
+ common_pids: {
27
+ h264: number | undefined;
28
+ adts_aac: number | undefined;
29
+ };
30
+ pes_private_data_pids: {
31
+ [pid: number]: boolean;
32
+ };
33
+ timed_id3_pids: {
34
+ [pid: number]: boolean;
35
+ };
36
+ }
37
+ export interface ProgramPMTMap {
38
+ [program: number]: PMT;
39
+ }
40
+ export {};
@@ -0,0 +1,14 @@
1
+ export declare class PESPrivateData {
2
+ pid: number;
3
+ stream_id: number;
4
+ pts?: number;
5
+ dts?: number;
6
+ nearest_pts?: number;
7
+ data: Uint8Array;
8
+ len: number;
9
+ }
10
+ export declare class PESPrivateDataDescriptor {
11
+ pid: number;
12
+ stream_type: number;
13
+ descriptor: Uint8Array;
14
+ }
@@ -0,0 +1,9 @@
1
+ export declare class PGSData {
2
+ pid: number;
3
+ stream_id: number;
4
+ pts?: number;
5
+ dts?: number;
6
+ lang: string;
7
+ data: Uint8Array;
8
+ len: number;
9
+ }