@remotion/media-parser 4.0.201 → 4.0.202

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 (113) hide show
  1. package/dist/boxes/iso-base-media/mvhd.js +2 -2
  2. package/dist/boxes/iso-base-media/stsd/keys.js +1 -1
  3. package/dist/boxes/webm/av1-codec-private.js +1 -1
  4. package/dist/boxes/webm/description.d.ts +2 -2
  5. package/dist/boxes/webm/description.js +2 -2
  6. package/dist/boxes/webm/ebml.d.ts +2 -2
  7. package/dist/boxes/webm/ebml.js +23 -1
  8. package/dist/boxes/webm/get-ready-tracks.d.ts +1 -1
  9. package/dist/boxes/webm/get-ready-tracks.js +3 -3
  10. package/dist/boxes/webm/get-sample-from-block.d.ts +17 -0
  11. package/dist/boxes/webm/get-sample-from-block.js +78 -0
  12. package/dist/boxes/webm/get-track.d.ts +2 -2
  13. package/dist/boxes/webm/get-track.js +26 -25
  14. package/dist/boxes/webm/make-header.d.ts +3 -8
  15. package/dist/boxes/webm/make-header.js +43 -20
  16. package/dist/boxes/webm/parse-ebml.d.ts +9 -4
  17. package/dist/boxes/webm/parse-ebml.js +122 -13
  18. package/dist/boxes/webm/segments/all-segments.d.ts +421 -107
  19. package/dist/boxes/webm/segments/all-segments.js +260 -33
  20. package/dist/boxes/webm/segments/seek-position.js +1 -1
  21. package/dist/boxes/webm/segments/seek.d.ts +1 -1
  22. package/dist/boxes/webm/segments/seek.js +2 -8
  23. package/dist/boxes/webm/segments/timestamp-scale.js +1 -1
  24. package/dist/boxes/webm/segments/track-entry.d.ts +3 -191
  25. package/dist/boxes/webm/segments/track-entry.js +2 -456
  26. package/dist/boxes/webm/segments.d.ts +3 -16
  27. package/dist/boxes/webm/segments.js +12 -196
  28. package/dist/boxes/webm/traversal.d.ts +5 -6
  29. package/dist/boxes/webm/traversal.js +6 -6
  30. package/dist/buffer-iterator.d.ts +1 -1
  31. package/dist/buffer-iterator.js +3 -3
  32. package/dist/create/create-media.d.ts +2 -0
  33. package/dist/create/create-media.js +36 -0
  34. package/dist/create/matroska-header.d.ts +1 -0
  35. package/dist/create/matroska-header.js +66 -0
  36. package/dist/create/matroska-info.d.ts +4 -0
  37. package/dist/create/matroska-info.js +39 -0
  38. package/dist/create/matroska-segment.d.ts +1 -0
  39. package/dist/create/matroska-segment.js +12 -0
  40. package/dist/create/matroska-trackentry.d.ts +21 -0
  41. package/dist/create/matroska-trackentry.js +191 -0
  42. package/dist/create-media.d.ts +1 -0
  43. package/dist/create-media.js +78 -0
  44. package/dist/get-audio-codec.d.ts +1 -1
  45. package/dist/get-audio-codec.js +13 -13
  46. package/dist/get-duration.js +12 -14
  47. package/dist/get-tracks.js +2 -2
  48. package/dist/get-video-codec.js +13 -13
  49. package/dist/parse-media.js +4 -1
  50. package/dist/parser-context.d.ts +1 -0
  51. package/dist/parser-state.js +3 -2
  52. package/dist/readers/from-fetch.d.ts +2 -0
  53. package/dist/readers/from-fetch.js +64 -0
  54. package/dist/readers/from-node.d.ts +2 -0
  55. package/dist/readers/from-node.js +40 -0
  56. package/dist/readers/from-web-file.d.ts +2 -0
  57. package/dist/readers/from-web-file.js +39 -0
  58. package/dist/readers/reader.d.ts +11 -0
  59. package/dist/readers/reader.js +2 -0
  60. package/dist/traversal.d.ts +19 -17
  61. package/dist/traversal.js +38 -39
  62. package/dist/writers/web-fs.d.ts +2 -0
  63. package/dist/writers/web-fs.js +28 -0
  64. package/dist/writers/writer.d.ts +9 -0
  65. package/dist/writers/writer.js +2 -0
  66. package/input.webm +0 -0
  67. package/package.json +2 -2
  68. package/src/boxes/iso-base-media/mvhd.ts +2 -2
  69. package/src/boxes/iso-base-media/stsd/keys.ts +1 -1
  70. package/src/boxes/webm/av1-codec-private.ts +1 -1
  71. package/src/boxes/webm/description.ts +7 -4
  72. package/src/boxes/webm/ebml.ts +24 -4
  73. package/src/boxes/webm/get-ready-tracks.ts +4 -4
  74. package/src/boxes/webm/get-sample-from-block.ts +125 -0
  75. package/src/boxes/webm/get-track.ts +38 -31
  76. package/src/boxes/webm/make-header.ts +58 -51
  77. package/src/boxes/webm/parse-ebml.ts +170 -16
  78. package/src/boxes/webm/segments/all-segments.ts +379 -62
  79. package/src/boxes/webm/segments/track-entry.ts +3 -846
  80. package/src/boxes/webm/segments.ts +18 -410
  81. package/src/boxes/webm/traversal.ts +17 -17
  82. package/src/buffer-iterator.ts +5 -4
  83. package/src/get-audio-codec.ts +14 -16
  84. package/src/get-duration.ts +15 -16
  85. package/src/get-tracks.ts +2 -2
  86. package/src/get-video-codec.ts +13 -15
  87. package/src/parse-media.ts +6 -1
  88. package/src/parser-context.ts +1 -0
  89. package/src/parser-state.ts +2 -2
  90. package/src/test/create-matroska.test.ts +237 -23
  91. package/src/test/matroska.test.ts +283 -348
  92. package/src/test/mvhd.test.ts +1 -1
  93. package/src/test/parse-esds.test.ts +2 -2
  94. package/src/test/parse-stco.test.ts +2 -2
  95. package/src/test/parse-stsc.test.ts +2 -2
  96. package/src/test/parse-stsz.test.ts +2 -2
  97. package/src/test/parse-stts.test.ts +1 -1
  98. package/src/test/stsd.test.ts +4 -2
  99. package/src/test/tkhd.test.ts +1 -1
  100. package/src/traversal.ts +62 -85
  101. package/tsconfig.tsbuildinfo +1 -1
  102. package/src/boxes/webm/segments/duration.ts +0 -29
  103. package/src/boxes/webm/segments/info.ts +0 -34
  104. package/src/boxes/webm/segments/main.ts +0 -6
  105. package/src/boxes/webm/segments/muxing.ts +0 -18
  106. package/src/boxes/webm/segments/seek-head.ts +0 -34
  107. package/src/boxes/webm/segments/seek-position.ts +0 -18
  108. package/src/boxes/webm/segments/seek.ts +0 -55
  109. package/src/boxes/webm/segments/timestamp-scale.ts +0 -17
  110. package/src/boxes/webm/segments/tracks.ts +0 -32
  111. package/src/boxes/webm/segments/void.ts +0 -18
  112. package/src/boxes/webm/segments/writing.ts +0 -18
  113. package/src/combine-uint8array.ts +0 -13
@@ -1,71 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseBitDepthSegment = exports.parseChannelsSegment = exports.parseSamplingFrequencySegment = exports.parseBlockElementSegment = exports.parseBlockAdditionsSegment = exports.parseReferenceBlockSegment = exports.parseBlockGroupSegment = exports.parseTrackNumber = exports.parseSimpleBlockOrBlockSegment = exports.parseTimestampSegment = exports.parseTagSegment = exports.parseTagsSegment = exports.parseDefaultFlagSegment = exports.parseSegmentUUIDSegment = exports.parseCrc32Segment = exports.parseCodecPrivateSegment = exports.parseInterlacedSegment = exports.parseTitleSegment = exports.parseColorSegment = exports.parseMaxBlockAdditionId = exports.parseAlphaModeSegment = exports.parseDisplayHeightSegment = exports.parseDisplayWidthSegment = exports.parseHeightSegment = exports.parseWidthSegment = exports.parseAudioSegment = exports.parseVideoSegment = exports.parseDefaultDurationSegment = exports.parseTrackTypeSegment = exports.parseCodecSegment = exports.parseLanguageSegment = exports.parseFlagLacing = exports.parseTrackUID = exports.parseTrackEntry = void 0;
4
- const block_simple_block_flags_1 = require("./block-simple-block-flags");
5
- const parse_children_1 = require("./parse-children");
6
- const parseTrackEntry = async (iterator, length, parserContext) => {
7
- const children = await (0, parse_children_1.expectChildren)({
8
- iterator,
9
- length,
10
- initialChildren: [],
11
- wrap: null,
12
- parserContext,
13
- });
14
- if (children.status === 'incomplete') {
15
- throw new Error('Incomplete children ' + length);
16
- }
17
- return {
18
- type: 'track-entry-segment',
19
- children: children.segments,
20
- };
21
- };
22
- exports.parseTrackEntry = parseTrackEntry;
23
- const parseTrackUID = (iterator, length) => {
24
- const bytes = iterator.getSlice(length);
25
- const asString = [...bytes]
26
- .map((b) => b.toString(16).padStart(2, '0'))
27
- .join('');
28
- return {
29
- type: 'track-uid-segment',
30
- trackUid: asString,
31
- };
32
- };
33
- exports.parseTrackUID = parseTrackUID;
34
- const parseFlagLacing = (iterator, length) => {
35
- if (length !== 1) {
36
- throw new Error('Expected flag lacing to be 1 byte');
37
- }
38
- const bytes = iterator.getSlice(length);
39
- if (bytes[0] !== 1 && bytes[0] !== 0) {
40
- throw new Error('Expected lacing to be 1 or 0');
41
- }
42
- return {
43
- type: 'flag-lacing-segment',
44
- lacing: Boolean(bytes[0]),
45
- };
46
- };
47
- exports.parseFlagLacing = parseFlagLacing;
48
- const parseLanguageSegment = (iterator, length) => {
49
- if (length !== 3) {
50
- throw new Error('Expected language segment to be 3 bytes');
51
- }
52
- const language = iterator.getByteString(length);
53
- return {
54
- type: 'language-segment',
55
- language,
56
- };
57
- };
58
- exports.parseLanguageSegment = parseLanguageSegment;
59
- const parseCodecSegment = (iterator, length) => {
60
- // Could make a TypeScript enum with it
61
- // https://www.matroska.org/technical/codec_specs.html
62
- const codec = iterator.getByteString(length);
63
- return {
64
- type: 'codec-segment',
65
- codec,
66
- };
67
- };
68
- exports.parseCodecSegment = parseCodecSegment;
3
+ exports.trackTypeToString = void 0;
69
4
  const trackTypeToString = (trackType) => {
70
5
  switch (trackType) {
71
6
  case 1:
@@ -86,393 +21,4 @@ const trackTypeToString = (trackType) => {
86
21
  throw new Error(`Unknown track type: ${trackType}`);
87
22
  }
88
23
  };
89
- const parseTrackTypeSegment = (iterator, length) => {
90
- if (length !== 1) {
91
- throw new Error('Expected track type segment to be 1 byte');
92
- }
93
- const trackType = iterator.getUint8();
94
- const trackTypeString = trackTypeToString(trackType);
95
- // Could make the return type nicer
96
- /* 1 - video,
97
- 2 - audio,
98
- 3 - complex,
99
- 16 - logo,
100
- 17 - subtitle,
101
- 18 - buttons,
102
- 32 - control,
103
- 33 - metadata;
104
- */
105
- return {
106
- type: 'track-type-segment',
107
- trackType: trackTypeString,
108
- };
109
- };
110
- exports.parseTrackTypeSegment = parseTrackTypeSegment;
111
- const parseDefaultDurationSegment = (iterator, length) => {
112
- const defaultDuration = iterator.getUint(length);
113
- return {
114
- type: 'default-duration-segment',
115
- defaultDuration,
116
- };
117
- };
118
- exports.parseDefaultDurationSegment = parseDefaultDurationSegment;
119
- const parseVideoSegment = async (iterator, length, parserContext) => {
120
- const children = await (0, parse_children_1.expectChildren)({
121
- iterator,
122
- length,
123
- initialChildren: [],
124
- wrap: null,
125
- parserContext,
126
- });
127
- if (children.status === 'incomplete') {
128
- throw new Error('Incomplete children');
129
- }
130
- return {
131
- type: 'video-segment',
132
- children: children.segments,
133
- };
134
- };
135
- exports.parseVideoSegment = parseVideoSegment;
136
- const parseAudioSegment = async (iterator, length, parserContext) => {
137
- const children = await (0, parse_children_1.expectChildren)({
138
- iterator,
139
- length,
140
- initialChildren: [],
141
- wrap: null,
142
- parserContext,
143
- });
144
- if (children.status === 'incomplete') {
145
- throw new Error('Incomplete children');
146
- }
147
- return {
148
- type: 'audio-segment',
149
- children: children.segments,
150
- };
151
- };
152
- exports.parseAudioSegment = parseAudioSegment;
153
- const parseWidthSegment = (iterator, length) => {
154
- if (length !== 2) {
155
- throw new Error('Expected width segment to be 2 bytes');
156
- }
157
- const width = iterator.getUint16();
158
- return {
159
- type: 'width-segment',
160
- width,
161
- };
162
- };
163
- exports.parseWidthSegment = parseWidthSegment;
164
- const parseHeightSegment = (iterator, length) => {
165
- if (length !== 2) {
166
- throw new Error('Expected height segment to be 2 bytes');
167
- }
168
- const height = iterator.getUint16();
169
- return {
170
- type: 'height-segment',
171
- height,
172
- };
173
- };
174
- exports.parseHeightSegment = parseHeightSegment;
175
- const parseDisplayWidthSegment = (iterator, length) => {
176
- if (length !== 2) {
177
- throw new Error(`Expected display width segment to be 2 bytes, got ${length}`);
178
- }
179
- const displayWidth = iterator.getUint16();
180
- return {
181
- type: 'display-width-segment',
182
- displayWidth,
183
- };
184
- };
185
- exports.parseDisplayWidthSegment = parseDisplayWidthSegment;
186
- const parseDisplayHeightSegment = (iterator, length) => {
187
- if (length !== 2) {
188
- throw new Error(`Expected display height segment to be 2 bytes, got ${length}`);
189
- }
190
- const displayHeight = iterator.getUint16();
191
- return {
192
- type: 'display-height-segment',
193
- displayHeight,
194
- };
195
- };
196
- exports.parseDisplayHeightSegment = parseDisplayHeightSegment;
197
- const parseAlphaModeSegment = (iterator, length) => {
198
- if (length !== 1) {
199
- throw new Error('Expected alpha mode segment to be 1 byte');
200
- }
201
- const alphaMode = iterator.getUint8();
202
- return {
203
- type: 'alpha-mode-segment',
204
- alphaMode,
205
- };
206
- };
207
- exports.parseAlphaModeSegment = parseAlphaModeSegment;
208
- const parseMaxBlockAdditionId = (iterator, length) => {
209
- if (length !== 1) {
210
- throw new Error('Expected alpha mode segment to be 1 byte');
211
- }
212
- const maxBlockAdditionId = iterator.getUint8();
213
- return {
214
- type: 'max-block-addition-id-segment',
215
- maxBlockAdditionId,
216
- };
217
- };
218
- exports.parseMaxBlockAdditionId = parseMaxBlockAdditionId;
219
- const parseColorSegment = (iterator, length) => {
220
- iterator.discard(length);
221
- return {
222
- type: 'color-segment',
223
- length,
224
- };
225
- };
226
- exports.parseColorSegment = parseColorSegment;
227
- const parseTitleSegment = (iterator, length) => {
228
- const title = iterator.getByteString(length);
229
- return {
230
- type: 'title-segment',
231
- title,
232
- };
233
- };
234
- exports.parseTitleSegment = parseTitleSegment;
235
- const parseInterlacedSegment = (iterator, length) => {
236
- if (length !== 1) {
237
- throw new Error('Expected interlaced segment to be 1 byte, but is ' + length);
238
- }
239
- const interlaced = iterator.getUint8();
240
- return {
241
- type: 'interlaced-segment',
242
- interlaced: Boolean(interlaced),
243
- };
244
- };
245
- exports.parseInterlacedSegment = parseInterlacedSegment;
246
- const parseCodecPrivateSegment = (iterator, length) => {
247
- return {
248
- type: 'codec-private-segment',
249
- codecPrivateData: iterator.getSlice(length),
250
- };
251
- };
252
- exports.parseCodecPrivateSegment = parseCodecPrivateSegment;
253
- const parseCrc32Segment = (iterator, length) => {
254
- return {
255
- type: 'crc32-segment',
256
- crc32: [...iterator.getSlice(length)],
257
- };
258
- };
259
- exports.parseCrc32Segment = parseCrc32Segment;
260
- const parseSegmentUUIDSegment = (iterator, length) => {
261
- return {
262
- type: 'segment-uuid-segment',
263
- segmentUUID: iterator.getSlice(length).toString(),
264
- };
265
- };
266
- exports.parseSegmentUUIDSegment = parseSegmentUUIDSegment;
267
- const parseDefaultFlagSegment = (iterator, length) => {
268
- if (length !== 1) {
269
- throw new Error('Expected default flag segment to be 1 byte');
270
- }
271
- return {
272
- type: 'default-flag-segment',
273
- defaultFlag: Boolean(iterator.getUint8()),
274
- };
275
- };
276
- exports.parseDefaultFlagSegment = parseDefaultFlagSegment;
277
- const parseTagsSegment = async (iterator, length, parserContext) => {
278
- const children = await (0, parse_children_1.expectChildren)({
279
- iterator,
280
- length,
281
- initialChildren: [],
282
- wrap: null,
283
- parserContext,
284
- });
285
- if (children.status === 'incomplete') {
286
- throw new Error('Incomplete children');
287
- }
288
- return {
289
- type: 'tags-segment',
290
- children: children.segments,
291
- };
292
- };
293
- exports.parseTagsSegment = parseTagsSegment;
294
- const parseTagSegment = (iterator, length) => {
295
- iterator.discard(length);
296
- return {
297
- type: 'tag-segment',
298
- length,
299
- };
300
- };
301
- exports.parseTagSegment = parseTagSegment;
302
- const parseTimestampSegment = (iterator, length) => {
303
- return {
304
- type: 'timestamp-segment',
305
- timestamp: iterator.getUint(length),
306
- };
307
- };
308
- exports.parseTimestampSegment = parseTimestampSegment;
309
- const parseSimpleBlockOrBlockSegment = async ({ iterator, length, parserContext, type, }) => {
310
- const start = iterator.counter.getOffset();
311
- const trackNumber = iterator.getVint();
312
- if (trackNumber === null) {
313
- throw new Error('Not enough data to get track number, should not happen');
314
- }
315
- const timecodeRelativeToCluster = iterator.getUint16();
316
- const { invisible, lacing, keyframe } = (0, block_simple_block_flags_1.parseBlockFlags)(iterator, type);
317
- const { codec, trackTimescale } = parserContext.parserState.getTrackInfoByNumber(trackNumber);
318
- const clusterOffset = parserContext.parserState.getTimestampOffsetForByteOffset(iterator.counter.getOffset());
319
- const timescale = parserContext.parserState.getTimescale();
320
- if (clusterOffset === undefined) {
321
- throw new Error('Could not find offset for byte offset ' + iterator.counter.getOffset());
322
- }
323
- // https://github.com/hubblec4/Matroska-Chapters-Specs/blob/master/notes.md/#timestampscale
324
- // The TimestampScale Element is used to calculate the Raw Timestamp of a Block. The timestamp is obtained by adding the Block's timestamp to the Cluster's Timestamp Element, and then multiplying that result by the TimestampScale. The result will be the Block's Raw Timestamp in nanoseconds.
325
- const timecodeInNanoSeconds = (timecodeRelativeToCluster + clusterOffset) *
326
- timescale *
327
- (trackTimescale !== null && trackTimescale !== void 0 ? trackTimescale : 1);
328
- // Timecode should be in microseconds
329
- const timecodeInMicroseconds = timecodeInNanoSeconds / 1000;
330
- if (!codec) {
331
- throw new Error('Could not find codec for track ' + trackNumber);
332
- }
333
- const remainingNow = length - (iterator.counter.getOffset() - start);
334
- let videoSample = null;
335
- if (codec.startsWith('V_')) {
336
- const partialVideoSample = {
337
- data: iterator.getSlice(remainingNow),
338
- cts: null,
339
- dts: null,
340
- duration: undefined,
341
- trackId: trackNumber,
342
- timestamp: timecodeInMicroseconds,
343
- };
344
- if (keyframe === null) {
345
- // If we don't know if this is a keyframe, we know after we emit the BlockGroup
346
- videoSample = partialVideoSample;
347
- }
348
- else {
349
- const sample = {
350
- ...partialVideoSample,
351
- type: keyframe ? 'key' : 'delta',
352
- };
353
- await parserContext.parserState.onVideoSample(trackNumber, sample);
354
- }
355
- }
356
- if (codec.startsWith('A_')) {
357
- await parserContext.parserState.onAudioSample(trackNumber, {
358
- data: iterator.getSlice(remainingNow),
359
- trackId: trackNumber,
360
- timestamp: timecodeInMicroseconds,
361
- type: 'key',
362
- });
363
- }
364
- const remainingNowAfter = length - (iterator.counter.getOffset() - start);
365
- if (remainingNowAfter > 0) {
366
- iterator.discard(remainingNowAfter);
367
- }
368
- return {
369
- type: 'simple-block-or-block-segment',
370
- length,
371
- trackNumber,
372
- timecodeInMicroseconds,
373
- keyframe,
374
- lacing,
375
- invisible,
376
- videoSample,
377
- };
378
- };
379
- exports.parseSimpleBlockOrBlockSegment = parseSimpleBlockOrBlockSegment;
380
- const parseTrackNumber = (iterator, length) => {
381
- if (length !== 1) {
382
- throw new Error('Expected track number to be 1 byte');
383
- }
384
- const trackNumber = iterator.getUint8();
385
- return {
386
- type: 'track-number-segment',
387
- trackNumber,
388
- };
389
- };
390
- exports.parseTrackNumber = parseTrackNumber;
391
- const parseBlockGroupSegment = async (iterator, length, parserContext) => {
392
- const children = await (0, parse_children_1.expectChildren)({
393
- iterator,
394
- length,
395
- initialChildren: [],
396
- wrap: null,
397
- parserContext,
398
- });
399
- if (children.status === 'incomplete') {
400
- throw new Error('Incomplete boxes are not allowed');
401
- }
402
- return {
403
- type: 'block-group-segment',
404
- children: children.segments,
405
- };
406
- };
407
- exports.parseBlockGroupSegment = parseBlockGroupSegment;
408
- const parseReferenceBlockSegment = (iterator, length) => {
409
- if (length > 4) {
410
- throw new Error(`Expected reference block segment to be 4 bytes, but got ${length}`);
411
- }
412
- const referenceBlock = length === 4
413
- ? iterator.getUint32()
414
- : length === 3
415
- ? iterator.getUint24()
416
- : length === 2
417
- ? iterator.getUint16()
418
- : iterator.getUint8();
419
- return {
420
- type: 'reference-block-segment',
421
- referenceBlock,
422
- };
423
- };
424
- exports.parseReferenceBlockSegment = parseReferenceBlockSegment;
425
- const parseBlockAdditionsSegment = (iterator, length) => {
426
- const blockAdditions = iterator.getSlice(length);
427
- return {
428
- type: 'block-additions-segment',
429
- blockAdditions,
430
- };
431
- };
432
- exports.parseBlockAdditionsSegment = parseBlockAdditionsSegment;
433
- const parseBlockElementSegment = (iterator, length) => {
434
- iterator.discard(length);
435
- return {
436
- type: 'block-element-segment',
437
- length,
438
- };
439
- };
440
- exports.parseBlockElementSegment = parseBlockElementSegment;
441
- const parseSamplingFrequencySegment = (iterator, length) => {
442
- if (length === 4) {
443
- return {
444
- type: 'sampling-frequency-segment',
445
- samplingFrequency: iterator.getFloat32(),
446
- };
447
- }
448
- if (length === 8) {
449
- return {
450
- type: 'sampling-frequency-segment',
451
- samplingFrequency: iterator.getFloat64(),
452
- };
453
- }
454
- throw new Error(`Expected length of sampling frequency segment to be 4 or 8, got ${length}`);
455
- };
456
- exports.parseSamplingFrequencySegment = parseSamplingFrequencySegment;
457
- const parseChannelsSegment = (iterator, length) => {
458
- if (length !== 1) {
459
- throw new Error(`Expected length of channels segment to be 1, got ${length}`);
460
- }
461
- const channels = iterator.getUint8();
462
- return {
463
- type: 'channels-segment',
464
- channels,
465
- };
466
- };
467
- exports.parseChannelsSegment = parseChannelsSegment;
468
- const parseBitDepthSegment = (iterator, length) => {
469
- if (length !== 1) {
470
- throw new Error(`Expected length of bit depth segment to be 1, got ${length}`);
471
- }
472
- const bitDepth = iterator.getUint8();
473
- return {
474
- type: 'bit-depth-segment',
475
- bitDepth,
476
- };
477
- };
478
- exports.parseBitDepthSegment = parseBitDepthSegment;
24
+ exports.trackTypeToString = trackTypeToString;
@@ -1,20 +1,7 @@
1
1
  import type { BufferIterator } from '../../buffer-iterator';
2
2
  import type { ParseResult } from '../../parse-result';
3
3
  import type { ParserContext } from '../../parser-context';
4
- import type { PossibleEbml } from './segments/all-segments';
5
- import type { DurationSegment } from './segments/duration';
6
- import type { InfoSegment } from './segments/info';
7
- import { type MainSegment } from './segments/main';
8
- import { type MuxingAppSegment } from './segments/muxing';
9
- import type { SeekIdSegment } from './segments/seek';
10
- import { type SeekSegment } from './segments/seek';
11
- import type { SeekHeadSegment } from './segments/seek-head';
12
- import { type SeekPositionSegment } from './segments/seek-position';
13
- import type { TimestampScaleSegment } from './segments/timestamp-scale';
14
- import type { AlphaModeSegment, AudioSegment, BitDepthSegment, BlockAdditionsSegment, BlockElement, BlockGroupSegment, ChannelsSegment, ClusterSegment, CodecPrivateSegment, CodecSegment, ColorSegment, Crc32Segment, DefaultDurationSegment, DefaultFlagSegment, DisplayHeightSegment, DisplayWidthSegment, FlagLacingSegment, HeightSegment, InterlacedSegment, LanguageSegment, MaxBlockAdditionId, ReferenceBlockSegment, SamplingFrequencySegment, SegmentUUIDSegment, SimpleBlockOrBlockSegment, TagSegment, TagsSegment, TimestampSegment, TitleSegment, TrackEntrySegment, TrackNumberSegment, TrackTypeSegment, TrackUIDSegment, VideoSegment, WidthSegment } from './segments/track-entry';
15
- import type { TracksSegment } from './segments/tracks';
16
- import type { VoidSegment } from './segments/void';
17
- import type { WritingAppSegment } from './segments/writing';
18
- export type MatroskaSegment = MainSegment | SeekHeadSegment | SeekSegment | SeekPositionSegment | VoidSegment | InfoSegment | TimestampScaleSegment | MuxingAppSegment | WritingAppSegment | DurationSegment | TracksSegment | TrackEntrySegment | TrackNumberSegment | TrackUIDSegment | FlagLacingSegment | LanguageSegment | CodecSegment | TrackTypeSegment | DefaultDurationSegment | VideoSegment | WidthSegment | HeightSegment | DisplayWidthSegment | DisplayHeightSegment | AlphaModeSegment | MaxBlockAdditionId | ColorSegment | TitleSegment | InterlacedSegment | CodecPrivateSegment | Crc32Segment | SegmentUUIDSegment | DefaultFlagSegment | TagsSegment | TagSegment | ClusterSegment | TimestampSegment | SimpleBlockOrBlockSegment | BlockGroupSegment | BlockElement | SeekIdSegment | AudioSegment | SamplingFrequencySegment | ChannelsSegment | BitDepthSegment | ReferenceBlockSegment | BlockAdditionsSegment | PossibleEbml;
19
- export type OnTrackEntrySegment = (trackEntry: TrackEntrySegment) => void;
4
+ import type { PossibleEbml, TrackEntry } from './segments/all-segments';
5
+ export type MatroskaSegment = PossibleEbml;
6
+ export type OnTrackEntrySegment = (trackEntry: TrackEntry) => void;
20
7
  export declare const expectSegment: (iterator: BufferIterator, parserContext: ParserContext) => Promise<ParseResult>;