@remotion/media-parser 4.0.200 → 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 (180) hide show
  1. package/dist/av1-codec-string.d.ts +5 -0
  2. package/dist/av1-codec-string.js +18 -1
  3. package/dist/bitstream/av1.d.ts +2 -0
  4. package/dist/bitstream/av1.js +12 -0
  5. package/dist/boxes/iso-base-media/avcc-hvcc.d.ts +20 -0
  6. package/dist/boxes/iso-base-media/avcc-hvcc.js +73 -0
  7. package/dist/boxes/iso-base-media/avcc.d.ts +18 -0
  8. package/dist/boxes/iso-base-media/avcc.js +27 -0
  9. package/dist/boxes/iso-base-media/esds-descriptors.d.ts +21 -0
  10. package/dist/boxes/iso-base-media/esds-descriptors.js +62 -0
  11. package/dist/boxes/iso-base-media/esds.d.ts +15 -0
  12. package/dist/boxes/iso-base-media/esds.js +27 -0
  13. package/dist/boxes/iso-base-media/mdat/mdat.js +2 -1
  14. package/dist/boxes/iso-base-media/moov/moov.js +1 -0
  15. package/dist/boxes/iso-base-media/mvhd.js +2 -2
  16. package/dist/boxes/iso-base-media/process-box.d.ts +4 -2
  17. package/dist/boxes/iso-base-media/process-box.js +56 -40
  18. package/dist/boxes/iso-base-media/stsd/keys.js +1 -1
  19. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +2 -1
  20. package/dist/boxes/iso-base-media/stsd/mebx.js +2 -1
  21. package/dist/boxes/iso-base-media/stsd/samples.js +3 -0
  22. package/dist/boxes/iso-base-media/stsd/stco.d.ts +3 -2
  23. package/dist/boxes/iso-base-media/stsd/stco.js +2 -2
  24. package/dist/boxes/iso-base-media/trak/trak.js +1 -0
  25. package/dist/boxes/webm/av1-codec-private.js +1 -1
  26. package/dist/boxes/webm/bitstream/av1.js +10 -1
  27. package/dist/boxes/webm/description.d.ts +2 -2
  28. package/dist/boxes/webm/description.js +2 -2
  29. package/dist/boxes/webm/ebml.d.ts +2 -2
  30. package/dist/boxes/webm/ebml.js +23 -1
  31. package/dist/boxes/webm/get-ready-tracks.d.ts +1 -1
  32. package/dist/boxes/webm/get-ready-tracks.js +3 -3
  33. package/dist/boxes/webm/get-sample-from-block.d.ts +17 -0
  34. package/dist/boxes/webm/get-sample-from-block.js +78 -0
  35. package/dist/boxes/webm/get-track.d.ts +2 -2
  36. package/dist/boxes/webm/get-track.js +26 -25
  37. package/dist/boxes/webm/make-header.d.ts +3 -1
  38. package/dist/boxes/webm/make-header.js +90 -32
  39. package/dist/boxes/webm/parse-ebml.d.ts +12 -0
  40. package/dist/boxes/webm/parse-ebml.js +175 -0
  41. package/dist/boxes/webm/parse-webm-header.js +8 -9
  42. package/dist/boxes/webm/segments/all-segments.d.ts +572 -1
  43. package/dist/boxes/webm/segments/all-segments.js +353 -2
  44. package/dist/boxes/webm/segments/track-entry.d.ts +5 -189
  45. package/dist/boxes/webm/segments/track-entry.js +2 -457
  46. package/dist/boxes/webm/segments.d.ts +3 -16
  47. package/dist/boxes/webm/segments.js +40 -219
  48. package/dist/boxes/webm/traversal.d.ts +5 -5
  49. package/dist/boxes/webm/traversal.js +17 -6
  50. package/dist/buffer-iterator.d.ts +10 -7
  51. package/dist/buffer-iterator.js +83 -7
  52. package/dist/create/create-media.d.ts +2 -0
  53. package/dist/create/create-media.js +36 -0
  54. package/dist/create/matroska-header.d.ts +1 -0
  55. package/dist/create/matroska-header.js +66 -0
  56. package/dist/create/matroska-info.d.ts +4 -0
  57. package/dist/create/matroska-info.js +39 -0
  58. package/dist/create/matroska-segment.d.ts +1 -0
  59. package/dist/create/matroska-segment.js +12 -0
  60. package/dist/create/matroska-trackentry.d.ts +21 -0
  61. package/dist/create/matroska-trackentry.js +191 -0
  62. package/dist/create-media.d.ts +1 -0
  63. package/dist/create-media.js +78 -0
  64. package/dist/from-fetch.js +13 -3
  65. package/dist/from-input-type-file.d.ts +2 -0
  66. package/dist/from-input-type-file.js +37 -0
  67. package/dist/from-node.js +9 -2
  68. package/dist/from-web-file.js +6 -1
  69. package/dist/from-web.js +15 -6
  70. package/dist/get-audio-codec.d.ts +2 -2
  71. package/dist/get-audio-codec.js +13 -13
  72. package/dist/get-codec.d.ts +4 -0
  73. package/dist/get-codec.js +22 -0
  74. package/dist/get-duration.js +12 -14
  75. package/dist/get-sample-positions.js +1 -1
  76. package/dist/get-tracks.js +2 -2
  77. package/dist/get-video-codec.js +13 -13
  78. package/dist/has-all-info.js +1 -1
  79. package/dist/options.d.ts +3 -2
  80. package/dist/parse-media.js +17 -10
  81. package/dist/parse-video.js +16 -0
  82. package/dist/parser-context.d.ts +1 -0
  83. package/dist/parser-state.d.ts +4 -3
  84. package/dist/parser-state.js +16 -3
  85. package/dist/reader.d.ts +1 -1
  86. package/dist/readers/from-fetch.d.ts +2 -0
  87. package/dist/readers/from-fetch.js +64 -0
  88. package/dist/readers/from-node.d.ts +2 -0
  89. package/dist/readers/from-node.js +40 -0
  90. package/dist/readers/from-web-file.d.ts +2 -0
  91. package/dist/readers/from-web-file.js +39 -0
  92. package/dist/readers/reader.d.ts +11 -0
  93. package/dist/readers/reader.js +2 -0
  94. package/dist/traversal.d.ts +19 -17
  95. package/dist/traversal.js +38 -39
  96. package/dist/web-file.d.ts +2 -0
  97. package/dist/web-file.js +37 -0
  98. package/dist/writers/web-fs.d.ts +2 -0
  99. package/dist/writers/web-fs.js +28 -0
  100. package/dist/writers/writer.d.ts +9 -0
  101. package/dist/writers/writer.js +2 -0
  102. package/input.webm +0 -0
  103. package/package.json +2 -2
  104. package/src/boxes/iso-base-media/mdat/mdat.ts +2 -1
  105. package/src/boxes/iso-base-media/moov/moov.ts +1 -0
  106. package/src/boxes/iso-base-media/mvhd.ts +2 -2
  107. package/src/boxes/iso-base-media/process-box.ts +70 -40
  108. package/src/boxes/iso-base-media/stsd/keys.ts +1 -1
  109. package/src/boxes/iso-base-media/stsd/mebx.ts +3 -0
  110. package/src/boxes/iso-base-media/stsd/samples.ts +3 -0
  111. package/src/boxes/iso-base-media/stsd/stco.ts +5 -3
  112. package/src/boxes/iso-base-media/trak/trak.ts +1 -0
  113. package/src/boxes/webm/av1-codec-private.ts +1 -1
  114. package/src/boxes/webm/description.ts +7 -4
  115. package/src/boxes/webm/ebml.ts +24 -4
  116. package/src/boxes/webm/get-ready-tracks.ts +4 -4
  117. package/src/boxes/webm/get-sample-from-block.ts +125 -0
  118. package/src/boxes/webm/get-track.ts +38 -31
  119. package/src/boxes/webm/make-header.ts +129 -32
  120. package/src/boxes/webm/parse-ebml.ts +247 -0
  121. package/src/boxes/webm/parse-webm-header.ts +8 -12
  122. package/src/boxes/webm/segments/all-segments.ts +539 -1
  123. package/src/boxes/webm/segments/track-entry.ts +5 -843
  124. package/src/boxes/webm/segments.ts +48 -435
  125. package/src/boxes/webm/traversal.ts +28 -15
  126. package/src/buffer-iterator.ts +104 -10
  127. package/src/from-fetch.ts +22 -3
  128. package/src/from-node.ts +18 -4
  129. package/src/from-web-file.ts +11 -1
  130. package/src/get-audio-codec.ts +14 -16
  131. package/src/get-duration.ts +15 -16
  132. package/src/get-sample-positions.ts +1 -1
  133. package/src/get-tracks.ts +2 -2
  134. package/src/get-video-codec.ts +13 -15
  135. package/src/has-all-info.ts +1 -1
  136. package/src/options.ts +3 -2
  137. package/src/parse-media.ts +20 -9
  138. package/src/parse-video.ts +17 -0
  139. package/src/parser-context.ts +1 -0
  140. package/src/parser-state.ts +22 -5
  141. package/src/reader.ts +1 -0
  142. package/src/test/create-matroska.test.ts +255 -7
  143. package/src/test/matroska.test.ts +311 -334
  144. package/src/test/mvhd.test.ts +1 -1
  145. package/src/test/parse-esds.test.ts +2 -2
  146. package/src/test/parse-stco.test.ts +4 -2
  147. package/src/test/parse-stsc.test.ts +2 -2
  148. package/src/test/parse-stsz.test.ts +2 -2
  149. package/src/test/parse-stts.test.ts +1 -1
  150. package/src/test/stream-local.test.ts +23 -9
  151. package/src/test/stream-remote.test.ts +23 -19
  152. package/src/test/stsd.test.ts +6 -2
  153. package/src/test/tkhd.test.ts +1 -1
  154. package/src/traversal.ts +62 -85
  155. package/tsconfig.tsbuildinfo +1 -1
  156. package/dist/boxes/iso-base-media/ftype.d.ts +0 -9
  157. package/dist/boxes/iso-base-media/ftype.js +0 -31
  158. package/dist/get-video-metadata.d.ts +0 -2
  159. package/dist/get-video-metadata.js +0 -44
  160. package/dist/read-and-increment-offset.d.ts +0 -28
  161. package/dist/read-and-increment-offset.js +0 -177
  162. package/dist/understand-vorbis.d.ts +0 -1
  163. package/dist/understand-vorbis.js +0 -12
  164. package/src/boxes/webm/segments/duration.ts +0 -29
  165. package/src/boxes/webm/segments/info.ts +0 -34
  166. package/src/boxes/webm/segments/main.ts +0 -6
  167. package/src/boxes/webm/segments/muxing.ts +0 -18
  168. package/src/boxes/webm/segments/seek-head.ts +0 -34
  169. package/src/boxes/webm/segments/seek-position.ts +0 -18
  170. package/src/boxes/webm/segments/seek.ts +0 -45
  171. package/src/boxes/webm/segments/timestamp-scale.ts +0 -17
  172. package/src/boxes/webm/segments/tracks.ts +0 -32
  173. package/src/boxes/webm/segments/unknown.ts +0 -19
  174. package/src/boxes/webm/segments/void.ts +0 -18
  175. package/src/boxes/webm/segments/writing.ts +0 -18
  176. package/src/combine-uint8array.ts +0 -13
  177. /package/dist/{boxes/webm/bitstream/av1/frame.d.ts → get-samples.d.ts} +0 -0
  178. /package/dist/{boxes/webm/bitstream/av1/frame.js → get-samples.js} +0 -0
  179. /package/dist/{boxes/webm/bitstream/h264/get-h264-descriptor.d.ts → sample-aspect-ratio.d.ts} +0 -0
  180. /package/dist/{boxes/webm/bitstream/h264/get-h264-descriptor.js → sample-aspect-ratio.js} +0 -0
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSegmentName = exports.knownIdsWithThreeLength = exports.knownIdsWithTwoLength = exports.knownIdsWithOneLength = exports.matroskaElements = void 0;
3
+ exports.flagDefault = exports.videoSegment = exports.audioSegment = exports.maxBlockAdditionIdSegment = exports.blockAdditionsSegment = exports.codecPrivate = exports.defaultDuration = exports.language = exports.color = exports.trackUID = exports.trackNumber = exports.tags = exports.tagSegment = exports.flagLacing = exports.displayHeight = exports.displayWidth = exports.bitDepth = exports.interlaced = exports.alphaMode = exports.channels = exports.samplingFrequency = exports.titleType = exports.infoType = exports.writingApp = exports.timestampScale = exports.duration = exports.muxingApp = exports.heightType = exports.widthType = exports.trackType = exports.codecID = exports.voidHeader = exports.seekHead = exports.seek = exports.seekPosition = exports.seekId = exports.matroskaHeader = exports.docTypeReadVersion = exports.docTypeVersion = exports.docType = exports.ebmlMaxSizeLength = exports.ebmlMaxIdLength = exports.ebmlReadVersion = exports.ebmlVersion = exports.getIdForName = exports.getSegmentName = exports.knownIdsWithThreeLength = exports.knownIdsWithTwoLength = exports.knownIdsWithOneLength = exports.matroskaElements = void 0;
4
+ exports.ebmlMap = exports.cluster = exports.segment = exports.blockGroup = exports.simpleBlock = exports.block = exports.timestampEntry = exports.tracks = exports.trackEntry = exports.trackTimestampScale = exports.codecName = exports.blockElement = exports.referenceBlock = void 0;
4
5
  exports.matroskaElements = {
6
+ Header: '0x1a45dfa3',
5
7
  EBMLMaxIDLength: '0x42f2',
6
8
  EBMLVersion: '0x4286',
7
- EBMLReadVersion: '0x42F7',
9
+ EBMLReadVersion: '0x42f7',
8
10
  EBMLMaxSizeLength: '0x42f3',
9
11
  DocType: '0x4282',
10
12
  DocTypeVersion: '0x4287',
@@ -280,3 +282,352 @@ const getSegmentName = (id) => {
280
282
  return (_a = Object.entries(exports.matroskaElements).find(([, value]) => value === id)) === null || _a === void 0 ? void 0 : _a[0];
281
283
  };
282
284
  exports.getSegmentName = getSegmentName;
285
+ const getIdForName = (name) => {
286
+ var _a;
287
+ const value = (_a = Object.entries(exports.matroskaElements).find(([key]) => key === name)) === null || _a === void 0 ? void 0 : _a[1];
288
+ if (!value) {
289
+ throw new Error(`Could not find id for name ${name}`);
290
+ }
291
+ return value;
292
+ };
293
+ exports.getIdForName = getIdForName;
294
+ exports.ebmlVersion = {
295
+ name: 'EBMLVersion',
296
+ type: 'uint',
297
+ };
298
+ exports.ebmlReadVersion = {
299
+ name: 'EBMLReadVersion',
300
+ type: 'uint',
301
+ };
302
+ exports.ebmlMaxIdLength = {
303
+ name: 'EBMLMaxIDLength',
304
+ type: 'uint',
305
+ };
306
+ exports.ebmlMaxSizeLength = {
307
+ name: 'EBMLMaxSizeLength',
308
+ type: 'uint',
309
+ };
310
+ exports.docType = {
311
+ name: 'DocType',
312
+ type: 'string',
313
+ };
314
+ exports.docTypeVersion = {
315
+ name: 'DocTypeVersion',
316
+ type: 'uint',
317
+ };
318
+ exports.docTypeReadVersion = {
319
+ name: 'DocTypeReadVersion',
320
+ type: 'uint',
321
+ };
322
+ const voidEbml = {
323
+ name: 'Void',
324
+ type: 'uint8array',
325
+ };
326
+ exports.matroskaHeader = {
327
+ name: 'Header',
328
+ type: 'children',
329
+ };
330
+ exports.seekId = {
331
+ name: 'SeekID',
332
+ type: 'hex-string',
333
+ };
334
+ exports.seekPosition = {
335
+ name: 'SeekPosition',
336
+ type: 'uint',
337
+ };
338
+ exports.seek = {
339
+ name: 'Seek',
340
+ type: 'children',
341
+ };
342
+ exports.seekHead = {
343
+ name: 'SeekHead',
344
+ type: 'children',
345
+ };
346
+ exports.voidHeader = {
347
+ name: 'Void',
348
+ type: 'uint8array',
349
+ };
350
+ exports.codecID = {
351
+ name: 'CodecID',
352
+ type: 'string',
353
+ };
354
+ exports.trackType = {
355
+ name: 'TrackType',
356
+ type: 'uint',
357
+ };
358
+ exports.widthType = {
359
+ name: 'PixelWidth',
360
+ type: 'uint',
361
+ };
362
+ exports.heightType = {
363
+ name: 'PixelHeight',
364
+ type: 'uint',
365
+ };
366
+ exports.muxingApp = {
367
+ name: 'MuxingApp',
368
+ type: 'string',
369
+ };
370
+ exports.duration = {
371
+ name: 'Duration',
372
+ type: 'float',
373
+ };
374
+ exports.timestampScale = {
375
+ name: 'TimestampScale',
376
+ type: 'uint',
377
+ };
378
+ exports.writingApp = {
379
+ name: 'WritingApp',
380
+ type: 'string',
381
+ };
382
+ exports.infoType = {
383
+ name: 'Info',
384
+ type: 'children',
385
+ };
386
+ exports.titleType = {
387
+ name: 'Title',
388
+ type: 'string',
389
+ };
390
+ exports.samplingFrequency = {
391
+ name: 'SamplingFrequency',
392
+ type: 'float',
393
+ };
394
+ exports.channels = {
395
+ name: 'Channels',
396
+ type: 'uint',
397
+ };
398
+ exports.alphaMode = {
399
+ name: 'AlphaMode',
400
+ type: 'uint',
401
+ };
402
+ exports.interlaced = {
403
+ name: 'FlagInterlaced',
404
+ type: 'uint',
405
+ };
406
+ exports.bitDepth = {
407
+ name: 'BitDepth',
408
+ type: 'uint',
409
+ };
410
+ exports.displayWidth = {
411
+ name: 'DisplayWidth',
412
+ type: 'uint',
413
+ };
414
+ exports.displayHeight = {
415
+ name: 'DisplayHeight',
416
+ type: 'uint',
417
+ };
418
+ exports.flagLacing = {
419
+ name: 'FlagLacing',
420
+ type: 'uint',
421
+ };
422
+ exports.tagSegment = {
423
+ name: 'Tag',
424
+ type: 'uint8array',
425
+ };
426
+ exports.tags = {
427
+ name: 'Tags',
428
+ type: 'children',
429
+ };
430
+ exports.trackNumber = {
431
+ name: 'TrackNumber',
432
+ type: 'uint',
433
+ };
434
+ exports.trackUID = {
435
+ name: 'TrackUID',
436
+ type: 'hex-string',
437
+ };
438
+ exports.color = {
439
+ name: 'Colour',
440
+ type: 'uint8array',
441
+ };
442
+ exports.language = {
443
+ name: 'Language',
444
+ type: 'string',
445
+ };
446
+ exports.defaultDuration = {
447
+ name: 'DefaultDuration',
448
+ type: 'uint',
449
+ };
450
+ exports.codecPrivate = {
451
+ name: 'CodecPrivate',
452
+ type: 'uint8array',
453
+ };
454
+ exports.blockAdditionsSegment = {
455
+ name: 'BlockAdditions',
456
+ type: 'uint8array',
457
+ };
458
+ exports.maxBlockAdditionIdSegment = {
459
+ name: 'MaxBlockAdditionID',
460
+ type: 'uint',
461
+ };
462
+ exports.audioSegment = {
463
+ name: 'Audio',
464
+ type: 'children',
465
+ };
466
+ exports.videoSegment = {
467
+ name: 'Video',
468
+ type: 'children',
469
+ };
470
+ exports.flagDefault = {
471
+ name: 'FlagDefault',
472
+ type: 'uint8array',
473
+ };
474
+ exports.referenceBlock = {
475
+ name: 'ReferenceBlock',
476
+ type: 'uint',
477
+ };
478
+ exports.blockElement = {
479
+ name: 'Block',
480
+ type: 'uint8array',
481
+ };
482
+ exports.codecName = {
483
+ name: 'CodecName',
484
+ type: 'string',
485
+ };
486
+ exports.trackTimestampScale = {
487
+ name: 'TrackTimestampScale',
488
+ type: 'float',
489
+ };
490
+ exports.trackEntry = {
491
+ name: 'TrackEntry',
492
+ type: 'children',
493
+ };
494
+ exports.tracks = {
495
+ name: 'Tracks',
496
+ type: 'children',
497
+ };
498
+ exports.timestampEntry = {
499
+ name: 'Timestamp',
500
+ type: 'uint',
501
+ };
502
+ exports.block = {
503
+ name: 'Block',
504
+ type: 'uint8array',
505
+ };
506
+ exports.simpleBlock = {
507
+ name: 'SimpleBlock',
508
+ type: 'uint8array',
509
+ };
510
+ exports.blockGroup = {
511
+ name: 'BlockGroup',
512
+ type: 'children',
513
+ };
514
+ exports.segment = {
515
+ name: 'Segment',
516
+ type: 'children',
517
+ };
518
+ exports.cluster = {
519
+ name: 'Cluster',
520
+ type: 'children',
521
+ };
522
+ exports.ebmlMap = {
523
+ [exports.matroskaElements.Header]: exports.matroskaHeader,
524
+ [exports.matroskaElements.DocType]: exports.docType,
525
+ [exports.matroskaElements.DocTypeVersion]: exports.docTypeVersion,
526
+ [exports.matroskaElements.DocTypeReadVersion]: exports.docTypeReadVersion,
527
+ [exports.matroskaElements.EBMLVersion]: exports.ebmlVersion,
528
+ [exports.matroskaElements.EBMLReadVersion]: exports.ebmlReadVersion,
529
+ [exports.matroskaElements.EBMLMaxIDLength]: exports.ebmlMaxIdLength,
530
+ [exports.matroskaElements.EBMLMaxSizeLength]: exports.ebmlMaxSizeLength,
531
+ [exports.matroskaElements.Void]: voidEbml,
532
+ [exports.matroskaElements.Cues]: {
533
+ name: 'Cues',
534
+ type: 'uint8array',
535
+ },
536
+ [exports.matroskaElements.DateUTC]: {
537
+ name: 'DateUTC',
538
+ type: 'uint8array',
539
+ },
540
+ [exports.matroskaElements.TrackTimestampScale]: exports.trackTimestampScale,
541
+ [exports.matroskaElements.CodecDelay]: {
542
+ name: 'CodecDelay',
543
+ type: 'uint8array',
544
+ },
545
+ [exports.matroskaElements.SeekPreRoll]: {
546
+ name: 'SeekPreRoll',
547
+ type: 'uint8array',
548
+ },
549
+ [exports.matroskaElements.DiscardPadding]: {
550
+ name: 'DiscardPadding',
551
+ type: 'uint8array',
552
+ },
553
+ [exports.matroskaElements.OutputSamplingFrequency]: {
554
+ name: 'OutputSamplingFrequency',
555
+ type: 'uint8array',
556
+ },
557
+ [exports.matroskaElements.CodecName]: exports.codecName,
558
+ [exports.matroskaElements.Position]: {
559
+ name: 'Position',
560
+ type: 'uint8array',
561
+ },
562
+ [exports.matroskaElements.SliceDuration]: {
563
+ name: 'SliceDuration',
564
+ type: 'uint8array',
565
+ },
566
+ [exports.matroskaElements.SeekHead]: exports.seekHead,
567
+ [exports.matroskaElements.Seek]: exports.seek,
568
+ [exports.matroskaElements.SeekID]: exports.seekId,
569
+ [exports.matroskaElements.SeekPosition]: exports.seekPosition,
570
+ [exports.matroskaElements.Crc32]: {
571
+ name: 'Crc32',
572
+ type: 'uint8array',
573
+ },
574
+ [exports.matroskaElements.MuxingApp]: exports.muxingApp,
575
+ [exports.matroskaElements.WritingApp]: {
576
+ name: 'WritingApp',
577
+ type: 'string',
578
+ },
579
+ [exports.matroskaElements.SegmentUUID]: {
580
+ name: 'SegmentUUID',
581
+ type: 'string',
582
+ },
583
+ [exports.matroskaElements.Duration]: exports.duration,
584
+ [exports.matroskaElements.CodecID]: {
585
+ name: 'CodecID',
586
+ type: 'string',
587
+ },
588
+ [exports.matroskaElements.TrackType]: exports.trackType,
589
+ [exports.matroskaElements.PixelWidth]: exports.widthType,
590
+ [exports.matroskaElements.PixelHeight]: exports.heightType,
591
+ [exports.matroskaElements.TimestampScale]: exports.timestampScale,
592
+ [exports.matroskaElements.Info]: exports.infoType,
593
+ [exports.matroskaElements.Title]: exports.titleType,
594
+ [exports.matroskaElements.SamplingFrequency]: exports.samplingFrequency,
595
+ [exports.matroskaElements.Channels]: exports.channels,
596
+ [exports.matroskaElements.AlphaMode]: exports.alphaMode,
597
+ [exports.matroskaElements.FlagInterlaced]: exports.interlaced,
598
+ [exports.matroskaElements.BitDepth]: exports.bitDepth,
599
+ [exports.matroskaElements.DisplayHeight]: exports.displayHeight,
600
+ [exports.matroskaElements.DisplayWidth]: exports.displayWidth,
601
+ [exports.matroskaElements.FlagLacing]: exports.flagLacing,
602
+ [exports.matroskaElements.Tags]: exports.tags,
603
+ [exports.matroskaElements.Tag]: exports.tagSegment,
604
+ [exports.matroskaElements.TrackNumber]: exports.trackNumber,
605
+ [exports.matroskaElements.TrackUID]: exports.trackUID,
606
+ [exports.matroskaElements.Colour]: exports.color,
607
+ [exports.matroskaElements.Language]: exports.language,
608
+ [exports.matroskaElements.DefaultDuration]: exports.defaultDuration,
609
+ [exports.matroskaElements.CodecPrivate]: exports.codecPrivate,
610
+ [exports.matroskaElements.BlockAdditions]: exports.blockAdditionsSegment,
611
+ [exports.matroskaElements.MaxBlockAdditionID]: exports.maxBlockAdditionIdSegment,
612
+ [exports.matroskaElements.Audio]: exports.audioSegment,
613
+ [exports.matroskaElements.Video]: exports.videoSegment,
614
+ [exports.matroskaElements.FlagDefault]: exports.flagDefault,
615
+ [exports.matroskaElements.ReferenceBlock]: exports.referenceBlock,
616
+ [exports.matroskaElements.TrackEntry]: exports.trackEntry,
617
+ [exports.matroskaElements.Timestamp]: {
618
+ name: 'Timestamp',
619
+ type: 'uint',
620
+ },
621
+ [exports.matroskaElements.Tracks]: exports.tracks,
622
+ [exports.matroskaElements.Block]: exports.block,
623
+ [exports.matroskaElements.SimpleBlock]: exports.simpleBlock,
624
+ [exports.matroskaElements.BlockGroup]: exports.blockGroup,
625
+ [exports.matroskaElements.Segment]: {
626
+ name: 'Segment',
627
+ type: 'children',
628
+ },
629
+ [exports.matroskaElements.Cluster]: {
630
+ name: 'Cluster',
631
+ type: 'children',
632
+ },
633
+ };
@@ -1,193 +1,9 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { ParserContext } from '../../../parser-context';
3
- import type { VideoSample } from '../../../webcodec-sample-types';
4
- import type { MatroskaSegment } from '../segments';
5
- import type { matroskaElements } from './all-segments';
6
- export type TrackEntrySegment = {
7
- type: 'track-entry-segment';
8
- children: MatroskaSegment[];
9
- };
10
- export declare const parseTrackEntry: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<TrackEntrySegment>;
11
- export type TrackNumberSegment = {
12
- type: 'track-number-segment';
13
- trackNumber: number;
14
- };
15
- export type TrackUIDSegment = {
16
- type: 'track-uid-segment';
17
- trackUid: string;
18
- };
19
- export declare const parseTrackUID: (iterator: BufferIterator, length: number) => TrackUIDSegment;
20
- export type FlagLacingSegment = {
21
- type: 'flag-lacing-segment';
22
- lacing: boolean;
23
- };
24
- export declare const parseFlagLacing: (iterator: BufferIterator, length: number) => FlagLacingSegment;
25
- export type LanguageSegment = {
26
- type: 'language-segment';
27
- language: string;
28
- };
29
- export declare const parseLanguageSegment: (iterator: BufferIterator, length: number) => LanguageSegment;
30
- export type CodecSegment = {
31
- type: 'codec-segment';
1
+ import type { TrackEntry } from './all-segments';
2
+ export type TrackInfo = {
32
3
  codec: string;
4
+ trackTimescale: number | null;
33
5
  };
34
- export declare const parseCodecSegment: (iterator: BufferIterator, length: number) => CodecSegment;
35
6
  type TrackType = 'video' | 'audio' | 'complex' | 'subtitle' | 'button' | 'control' | 'metadata';
36
- export type TrackTypeSegment = {
37
- type: 'track-type-segment';
38
- trackType: TrackType;
39
- };
40
- export declare const parseTrackTypeSegment: (iterator: BufferIterator, length: number) => TrackTypeSegment;
41
- export type DefaultDurationSegment = {
42
- type: 'default-duration-segment';
43
- defaultDuration: number;
44
- };
45
- export declare const parseDefaultDurationSegment: (iterator: BufferIterator, length: number) => DefaultDurationSegment;
46
- export type VideoSegment = {
47
- type: 'video-segment';
48
- children: MatroskaSegment[];
49
- };
50
- export declare const parseVideoSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<VideoSegment>;
51
- export type AudioSegment = {
52
- type: 'audio-segment';
53
- children: MatroskaSegment[];
54
- };
55
- export declare const parseAudioSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<AudioSegment>;
56
- export type WidthSegment = {
57
- type: 'width-segment';
58
- width: number;
59
- };
60
- export declare const parseWidthSegment: (iterator: BufferIterator, length: number) => WidthSegment;
61
- export type HeightSegment = {
62
- type: 'height-segment';
63
- height: number;
64
- };
65
- export declare const parseHeightSegment: (iterator: BufferIterator, length: number) => HeightSegment;
66
- export type DisplayWidthSegment = {
67
- type: 'display-width-segment';
68
- displayWidth: number;
69
- };
70
- export declare const parseDisplayWidthSegment: (iterator: BufferIterator, length: number) => DisplayWidthSegment;
71
- export type DisplayHeightSegment = {
72
- type: 'display-height-segment';
73
- displayHeight: number;
74
- };
75
- export declare const parseDisplayHeightSegment: (iterator: BufferIterator, length: number) => DisplayHeightSegment;
76
- export type AlphaModeSegment = {
77
- type: 'alpha-mode-segment';
78
- alphaMode: number;
79
- };
80
- export declare const parseAlphaModeSegment: (iterator: BufferIterator, length: number) => AlphaModeSegment;
81
- export type MaxBlockAdditionId = {
82
- type: 'max-block-addition-id-segment';
83
- maxBlockAdditionId: number;
84
- };
85
- export declare const parseMaxBlockAdditionId: (iterator: BufferIterator, length: number) => MaxBlockAdditionId;
86
- export type ColorSegment = {
87
- type: 'color-segment';
88
- length: number;
89
- };
90
- export declare const parseColorSegment: (iterator: BufferIterator, length: number) => ColorSegment;
91
- export type TitleSegment = {
92
- type: 'title-segment';
93
- title: string;
94
- };
95
- export declare const parseTitleSegment: (iterator: BufferIterator, length: number) => TitleSegment;
96
- export type InterlacedSegment = {
97
- type: 'interlaced-segment';
98
- interlaced: boolean;
99
- };
100
- export declare const parseInterlacedSegment: (iterator: BufferIterator, length: number) => InterlacedSegment;
101
- export type CodecPrivateSegment = {
102
- type: 'codec-private-segment';
103
- codecPrivateData: Uint8Array;
104
- };
105
- export declare const parseCodecPrivateSegment: (iterator: BufferIterator, length: number) => CodecPrivateSegment;
106
- export type Crc32Segment = {
107
- type: 'crc32-segment';
108
- crc32: number[];
109
- };
110
- export declare const parseCrc32Segment: (iterator: BufferIterator, length: number) => Crc32Segment;
111
- export type SegmentUUIDSegment = {
112
- type: 'segment-uuid-segment';
113
- segmentUUID: string;
114
- };
115
- export declare const parseSegmentUUIDSegment: (iterator: BufferIterator, length: number) => SegmentUUIDSegment;
116
- export type DefaultFlagSegment = {
117
- type: 'default-flag-segment';
118
- defaultFlag: boolean;
119
- };
120
- export declare const parseDefaultFlagSegment: (iterator: BufferIterator, length: number) => DefaultFlagSegment;
121
- export type TagsSegment = {
122
- type: 'tags-segment';
123
- children: MatroskaSegment[];
124
- };
125
- export declare const parseTagsSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<TagsSegment>;
126
- export type TagSegment = {
127
- type: 'tag-segment';
128
- length: number;
129
- };
130
- export declare const parseTagSegment: (iterator: BufferIterator, length: number) => TagSegment;
131
- export type ClusterSegment = {
132
- type: 'cluster-segment';
133
- children: MatroskaSegment[];
134
- };
135
- export type TimestampSegment = {
136
- type: 'timestamp-segment';
137
- timestamp: number;
138
- };
139
- export declare const parseTimestampSegment: (iterator: BufferIterator, length: number) => TimestampSegment;
140
- export type SimpleBlockOrBlockSegment = {
141
- type: 'simple-block-or-block-segment';
142
- length: number;
143
- trackNumber: number;
144
- timecode: number;
145
- keyframe: boolean | null;
146
- lacing: number;
147
- invisible: boolean;
148
- videoSample: Omit<VideoSample, 'type'> | null;
149
- };
150
- export type GetTracks = () => TrackEntrySegment[];
151
- export declare const parseSimpleBlockOrBlockSegment: ({ iterator, length, parserContext, type, }: {
152
- iterator: BufferIterator;
153
- length: number;
154
- parserContext: ParserContext;
155
- type: (typeof matroskaElements)['Block'] | (typeof matroskaElements)['SimpleBlock'];
156
- }) => Promise<SimpleBlockOrBlockSegment>;
157
- export declare const parseTrackNumber: (iterator: BufferIterator, length: number) => TrackNumberSegment;
158
- export type BlockGroupSegment = {
159
- type: 'block-group-segment';
160
- children: MatroskaSegment[];
161
- };
162
- export declare const parseBlockGroupSegment: (iterator: BufferIterator, length: number, parserContext: ParserContext) => Promise<BlockGroupSegment>;
163
- export type ReferenceBlockSegment = {
164
- type: 'reference-block-segment';
165
- referenceBlock: number;
166
- };
167
- export declare const parseReferenceBlockSegment: (iterator: BufferIterator, length: number) => ReferenceBlockSegment;
168
- export type BlockAdditionsSegment = {
169
- type: 'block-additions-segment';
170
- blockAdditions: Uint8Array;
171
- };
172
- export declare const parseBlockAdditionsSegment: (iterator: BufferIterator, length: number) => BlockAdditionsSegment;
173
- export type BlockElement = {
174
- type: 'block-element-segment';
175
- length: number;
176
- };
177
- export declare const parseBlockElementSegment: (iterator: BufferIterator, length: number) => BlockElement;
178
- export type SamplingFrequencySegment = {
179
- type: 'sampling-frequency-segment';
180
- samplingFrequency: number;
181
- };
182
- export declare const parseSamplingFrequencySegment: (iterator: BufferIterator, length: number) => SamplingFrequencySegment;
183
- export type ChannelsSegment = {
184
- type: 'channels-segment';
185
- channels: number;
186
- };
187
- export declare const parseChannelsSegment: (iterator: BufferIterator, length: number) => ChannelsSegment;
188
- export type BitDepthSegment = {
189
- type: 'bit-depth-segment';
190
- bitDepth: number;
191
- };
192
- export declare const parseBitDepthSegment: (iterator: BufferIterator, length: number) => BitDepthSegment;
7
+ export declare const trackTypeToString: (trackType: number) => TrackType;
8
+ export type GetTracks = () => TrackEntry[];
193
9
  export {};