@remotion/media-parser 4.0.230 → 4.0.232

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 (110) hide show
  1. package/dist/add-avc-profile-to-track.d.ts +3 -0
  2. package/dist/add-avc-profile-to-track.js +35 -0
  3. package/dist/add-new-matroska-tracks.d.ts +6 -1
  4. package/dist/add-new-matroska-tracks.js +16 -1
  5. package/dist/boxes/avc/parse-avc.d.ts +18 -0
  6. package/dist/boxes/avc/parse-avc.js +96 -0
  7. package/dist/boxes/iso-base-media/make-track.js +3 -3
  8. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +2 -2
  9. package/dist/boxes/iso-base-media/mdat/mdat.js +5 -2
  10. package/dist/boxes/iso-base-media/moov/moov.js +2 -2
  11. package/dist/boxes/iso-base-media/process-box.d.ts +5 -5
  12. package/dist/boxes/iso-base-media/process-box.js +38 -37
  13. package/dist/boxes/iso-base-media/stsd/mebx.js +2 -2
  14. package/dist/boxes/iso-base-media/stsd/samples.d.ts +2 -2
  15. package/dist/boxes/iso-base-media/stsd/samples.js +9 -9
  16. package/dist/boxes/iso-base-media/trak/trak.js +2 -2
  17. package/dist/boxes/iso-base-media/traversal.d.ts +1 -1
  18. package/dist/boxes/riff/expect-riff-box.d.ts +16 -0
  19. package/dist/boxes/riff/expect-riff-box.js +49 -0
  20. package/dist/boxes/riff/get-tracks-from-avi.d.ts +21 -0
  21. package/dist/boxes/riff/get-tracks-from-avi.js +108 -0
  22. package/dist/boxes/riff/is-movi.d.ts +2 -0
  23. package/dist/boxes/riff/is-movi.js +12 -0
  24. package/dist/boxes/riff/parse-avih.d.ts +6 -0
  25. package/dist/boxes/riff/parse-avih.js +32 -0
  26. package/dist/boxes/riff/parse-box.d.ts +13 -0
  27. package/dist/boxes/riff/parse-box.js +113 -0
  28. package/dist/boxes/riff/parse-fmt-box.d.ts +7 -0
  29. package/dist/boxes/riff/parse-fmt-box.js +33 -0
  30. package/dist/boxes/riff/parse-list-box.d.ts +8 -0
  31. package/dist/boxes/riff/parse-list-box.js +30 -0
  32. package/dist/boxes/riff/parse-movi.d.ts +17 -0
  33. package/dist/boxes/riff/parse-movi.js +122 -0
  34. package/dist/boxes/riff/parse-riff-box.d.ts +10 -0
  35. package/dist/boxes/riff/parse-riff-box.js +33 -0
  36. package/dist/boxes/riff/parse-strf.d.ts +7 -0
  37. package/dist/boxes/riff/parse-strf.js +67 -0
  38. package/dist/boxes/riff/parse-strh.d.ts +6 -0
  39. package/dist/boxes/riff/parse-strh.js +46 -0
  40. package/dist/boxes/riff/riff-box.d.ts +81 -0
  41. package/dist/boxes/riff/riff-box.js +2 -0
  42. package/dist/boxes/riff/strf.d.ts +7 -0
  43. package/dist/boxes/riff/strf.js +67 -0
  44. package/dist/boxes/riff/timescale.d.ts +1 -0
  45. package/dist/boxes/riff/timescale.js +4 -0
  46. package/dist/boxes/riff/traversal.d.ts +8 -0
  47. package/dist/boxes/riff/traversal.js +36 -0
  48. package/dist/boxes/webm/parse-ebml.js +2 -2
  49. package/dist/boxes/webm/parse-webm-header.d.ts +2 -2
  50. package/dist/boxes/webm/parse-webm-header.js +23 -4
  51. package/dist/boxes/webm/segments/parse-children.d.ts +12 -7
  52. package/dist/boxes/webm/segments/parse-children.js +67 -57
  53. package/dist/boxes/webm/segments.d.ts +8 -3
  54. package/dist/boxes/webm/segments.js +70 -39
  55. package/dist/boxes/webm/traversal.d.ts +2 -2
  56. package/dist/buffer-iterator.d.ts +6 -1
  57. package/dist/buffer-iterator.js +24 -5
  58. package/dist/create/iso-base-media/create-iso-base-media.d.ts +1 -1
  59. package/dist/create/iso-base-media/create-iso-base-media.js +4 -9
  60. package/dist/create/matroska/cluster.d.ts +7 -1
  61. package/dist/create/matroska/cluster.js +8 -5
  62. package/dist/create/matroska/create-matroska-media.d.ts +1 -1
  63. package/dist/create/matroska/create-matroska-media.js +27 -14
  64. package/dist/create/media-fn.d.ts +1 -1
  65. package/dist/create/mp3/create-mp3.d.ts +2 -0
  66. package/dist/create/mp3/create-mp3.js +49 -0
  67. package/dist/create/wav/create-wav.d.ts +2 -0
  68. package/dist/create/wav/create-wav.js +108 -0
  69. package/dist/emit-available-info.d.ts +2 -2
  70. package/dist/emit-available-info.js +28 -13
  71. package/dist/esm/buffer.mjs +2 -2
  72. package/dist/esm/from-node.mjs +2 -1
  73. package/dist/esm/index.mjs +1513 -331
  74. package/dist/esm/web-fs.mjs +2 -2
  75. package/dist/get-audio-codec.d.ts +3 -3
  76. package/dist/get-audio-codec.js +1 -6
  77. package/dist/get-container.d.ts +3 -3
  78. package/dist/get-container.js +9 -7
  79. package/dist/get-dimensions.d.ts +3 -3
  80. package/dist/get-duration.d.ts +8 -3
  81. package/dist/get-duration.js +37 -15
  82. package/dist/get-fps.d.ts +3 -3
  83. package/dist/get-fps.js +36 -2
  84. package/dist/get-tracks.d.ts +4 -7
  85. package/dist/get-tracks.js +55 -27
  86. package/dist/get-video-codec.d.ts +5 -4
  87. package/dist/get-video-codec.js +39 -15
  88. package/dist/has-all-info.d.ts +2 -2
  89. package/dist/has-all-info.js +9 -9
  90. package/dist/index.d.ts +5 -3
  91. package/dist/index.js +5 -1
  92. package/dist/options.d.ts +17 -10
  93. package/dist/parse-media.js +43 -14
  94. package/dist/parse-result.d.ts +35 -6
  95. package/dist/parse-video.d.ts +3 -3
  96. package/dist/parse-video.js +8 -16
  97. package/dist/parser-context.d.ts +1 -0
  98. package/dist/parser-state.d.ts +11 -0
  99. package/dist/parser-state.js +30 -0
  100. package/dist/readers/from-node.js +2 -1
  101. package/dist/readers/reader.d.ts +2 -2
  102. package/dist/register-track.d.ts +13 -0
  103. package/dist/register-track.js +25 -0
  104. package/dist/version.d.ts +1 -0
  105. package/dist/version.js +5 -0
  106. package/dist/writers/buffer-implementation/writer.d.ts +2 -2
  107. package/dist/writers/buffer-implementation/writer.js +2 -2
  108. package/dist/writers/web-fs.js +2 -3
  109. package/dist/writers/writer.d.ts +5 -3
  110. package/package.json +3 -3
@@ -1,9 +1,9 @@
1
1
  import type { AllParseMediaFields, Options, ParseMediaCallbacks, ParseMediaFields, ParseMediaResult } from './options';
2
- import type { ParseResult } from './parse-result';
2
+ import type { ParseResult, Structure } from './parse-result';
3
3
  import type { ParserState } from './parser-state';
4
4
  export declare const emitAvailableInfo: ({ hasInfo, parseResult, moreFields, state, returnValue, contentLength, name, }: {
5
5
  hasInfo: Record<keyof Options<ParseMediaFields>, boolean>;
6
- parseResult: ParseResult;
6
+ parseResult: ParseResult<Structure> | null;
7
7
  moreFields: ParseMediaCallbacks<AllParseMediaFields>;
8
8
  state: ParserState;
9
9
  returnValue: ParseMediaResult<AllParseMediaFields>;
@@ -12,16 +12,19 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
12
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
13
13
  const keys = Object.keys(hasInfo);
14
14
  for (const key of keys) {
15
- if (key === 'boxes') {
16
- if (hasInfo.boxes && returnValue.boxes === undefined) {
17
- (_a = moreFields.onBoxes) === null || _a === void 0 ? void 0 : _a.call(moreFields, parseResult.segments);
18
- returnValue.boxes = parseResult.segments;
15
+ if (key === 'structure') {
16
+ if (parseResult &&
17
+ hasInfo.structure &&
18
+ returnValue.structure === undefined) {
19
+ (_a = moreFields.onStructure) === null || _a === void 0 ? void 0 : _a.call(moreFields, parseResult.segments);
20
+ returnValue.structure = parseResult.segments;
19
21
  }
20
22
  continue;
21
23
  }
22
24
  if (key === 'durationInSeconds') {
23
25
  if (hasInfo.durationInSeconds &&
24
- returnValue.durationInSeconds === undefined) {
26
+ returnValue.durationInSeconds === undefined &&
27
+ parseResult) {
25
28
  const durationInSeconds = (0, get_duration_1.getDuration)(parseResult.segments, state);
26
29
  (_b = moreFields.onDurationInSeconds) === null || _b === void 0 ? void 0 : _b.call(moreFields, durationInSeconds);
27
30
  returnValue.durationInSeconds = durationInSeconds;
@@ -29,7 +32,9 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
29
32
  continue;
30
33
  }
31
34
  if (key === 'dimensions') {
32
- if (hasInfo.dimensions && returnValue.dimensions === undefined) {
35
+ if (hasInfo.dimensions &&
36
+ returnValue.dimensions === undefined &&
37
+ parseResult) {
33
38
  const dimensionsQueried = (0, get_dimensions_1.getDimensions)(parseResult.segments, state);
34
39
  const dimensions = {
35
40
  height: dimensionsQueried.height,
@@ -42,7 +47,8 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
42
47
  }
43
48
  if (key === 'unrotatedDimensions') {
44
49
  if (returnValue.unrotatedDimensions === undefined &&
45
- hasInfo.unrotatedDimensions) {
50
+ hasInfo.unrotatedDimensions &&
51
+ parseResult) {
46
52
  const dimensionsQueried = (0, get_dimensions_1.getDimensions)(parseResult.segments, state);
47
53
  const unrotatedDimensions = {
48
54
  height: dimensionsQueried.unrotatedHeight,
@@ -54,7 +60,9 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
54
60
  continue;
55
61
  }
56
62
  if (key === 'rotation') {
57
- if (returnValue.rotation === undefined && hasInfo.rotation) {
63
+ if (returnValue.rotation === undefined &&
64
+ hasInfo.rotation &&
65
+ parseResult) {
58
66
  const dimensionsQueried = (0, get_dimensions_1.getDimensions)(parseResult.segments, state);
59
67
  const { rotation } = dimensionsQueried;
60
68
  (_e = moreFields.onRotation) === null || _e === void 0 ? void 0 : _e.call(moreFields, rotation);
@@ -63,7 +71,7 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
63
71
  continue;
64
72
  }
65
73
  if (key === 'fps') {
66
- if (returnValue.fps === undefined && hasInfo.fps) {
74
+ if (returnValue.fps === undefined && hasInfo.fps && parseResult) {
67
75
  const fps = (0, get_fps_1.getFps)(parseResult.segments);
68
76
  (_f = moreFields.onFps) === null || _f === void 0 ? void 0 : _f.call(moreFields, fps);
69
77
  returnValue.fps = fps;
@@ -71,7 +79,9 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
71
79
  continue;
72
80
  }
73
81
  if (key === 'videoCodec') {
74
- if (returnValue.videoCodec === undefined && hasInfo.videoCodec) {
82
+ if (returnValue.videoCodec === undefined &&
83
+ hasInfo.videoCodec &&
84
+ parseResult) {
75
85
  const videoCodec = (0, get_video_codec_1.getVideoCodec)(parseResult.segments);
76
86
  (_g = moreFields.onVideoCodec) === null || _g === void 0 ? void 0 : _g.call(moreFields, videoCodec);
77
87
  returnValue.videoCodec = videoCodec;
@@ -79,7 +89,9 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
79
89
  continue;
80
90
  }
81
91
  if (key === 'audioCodec') {
82
- if (returnValue.audioCodec === undefined && hasInfo.audioCodec) {
92
+ if (returnValue.audioCodec === undefined &&
93
+ hasInfo.audioCodec &&
94
+ parseResult) {
83
95
  const audioCodec = (0, get_audio_codec_1.getAudioCodec)(parseResult.segments, state);
84
96
  (_h = moreFields.onAudioCodec) === null || _h === void 0 ? void 0 : _h.call(moreFields, audioCodec);
85
97
  returnValue.audioCodec = audioCodec;
@@ -89,7 +101,8 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
89
101
  if (key === 'tracks') {
90
102
  if (hasInfo.tracks &&
91
103
  returnValue.videoTracks === undefined &&
92
- returnValue.audioTracks === undefined) {
104
+ returnValue.audioTracks === undefined &&
105
+ parseResult) {
93
106
  const { videoTracks, audioTracks } = (0, get_tracks_1.getTracks)(parseResult.segments, state);
94
107
  (_j = moreFields.onTracks) === null || _j === void 0 ? void 0 : _j.call(moreFields, { videoTracks, audioTracks });
95
108
  returnValue.videoTracks = videoTracks;
@@ -120,7 +133,9 @@ const emitAvailableInfo = ({ hasInfo, parseResult, moreFields, state, returnValu
120
133
  continue;
121
134
  }
122
135
  if (key === 'container') {
123
- if (returnValue.container === undefined && hasInfo.container) {
136
+ if (returnValue.container === undefined &&
137
+ hasInfo.container &&
138
+ parseResult) {
124
139
  const container = (0, get_container_1.getContainer)(parseResult.segments);
125
140
  (_o = moreFields.onContainer) === null || _o === void 0 ? void 0 : _o.call(moreFields, container);
126
141
  returnValue.container = container;
@@ -1,5 +1,5 @@
1
1
  // src/writers/buffer-implementation/writer.ts
2
- var createContent = () => {
2
+ var createContent = ({ filename, mimeType }) => {
3
3
  const buf = new ArrayBuffer(0, {
4
4
  maxByteLength: 2000000000
5
5
  });
@@ -29,7 +29,7 @@ var createContent = () => {
29
29
  return Promise.reject(new Error("Already called .remove() on the result"));
30
30
  }
31
31
  const arr = new Uint8Array(buf);
32
- return Promise.resolve(new File([arr.slice()], "hi", { type: "video/webm" }));
32
+ return Promise.resolve(new File([arr.slice()], filename, { type: mimeType }));
33
33
  },
34
34
  remove() {
35
35
  removed = true;
@@ -1,6 +1,7 @@
1
1
  // src/readers/from-node.ts
2
2
  import { createReadStream } from "fs";
3
3
  import { stat } from "node:fs/promises";
4
+ import { sep } from "path";
4
5
  import { Readable } from "stream";
5
6
  var nodeReader = {
6
7
  read: async (src, range, signal) => {
@@ -32,7 +33,7 @@ var nodeReader = {
32
33
  }
33
34
  },
34
35
  contentLength: stats.size,
35
- name: src.split("/").pop(),
36
+ name: src.split(sep).pop(),
36
37
  supportsContentRange: true
37
38
  };
38
39
  },