@remotion/media-parser 4.0.277 → 4.0.278

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 (260) hide show
  1. package/dist/aac-codecprivate.js +13 -6
  2. package/dist/add-avc-profile-to-track.js +9 -5
  3. package/dist/buffer-iterator.js +13 -8
  4. package/dist/combine-uint8-arrays.js +5 -1
  5. package/dist/containers/aac/parse-aac.js +13 -9
  6. package/dist/containers/aac/types.js +2 -1
  7. package/dist/containers/avc/codec-string.js +5 -1
  8. package/dist/containers/avc/color.js +9 -3
  9. package/dist/containers/avc/create-sps-pps-data.js +9 -5
  10. package/dist/containers/avc/interpret-sps.js +13 -7
  11. package/dist/containers/avc/key.js +5 -1
  12. package/dist/containers/avc/parse-avc.js +7 -3
  13. package/dist/containers/avc/sps-and-pps.js +5 -1
  14. package/dist/containers/flac/get-block-size.js +5 -1
  15. package/dist/containers/flac/get-channel-count.js +5 -1
  16. package/dist/containers/flac/get-duration-from-flac.js +5 -1
  17. package/dist/containers/flac/get-metadata-from-flac.js +5 -1
  18. package/dist/containers/flac/get-sample-rate.js +5 -1
  19. package/dist/containers/flac/parse-flac-frame.js +19 -14
  20. package/dist/containers/flac/parse-flac.js +19 -15
  21. package/dist/containers/flac/parse-header.js +5 -1
  22. package/dist/containers/flac/parse-metadata.js +5 -1
  23. package/dist/containers/flac/parse-streaminfo.js +7 -3
  24. package/dist/containers/flac/parse-unknown-block.js +5 -1
  25. package/dist/containers/flac/types.js +2 -1
  26. package/dist/containers/iso-base-media/base-media-box.js +2 -1
  27. package/dist/containers/iso-base-media/base-type.js +2 -1
  28. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +5 -1
  29. package/dist/containers/iso-base-media/esds/esds-descriptors.js +10 -5
  30. package/dist/containers/iso-base-media/esds/esds.js +7 -3
  31. package/dist/containers/iso-base-media/ftyp.js +5 -1
  32. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +8 -4
  33. package/dist/containers/iso-base-media/get-children.js +7 -3
  34. package/dist/containers/iso-base-media/get-keyframes.js +11 -7
  35. package/dist/containers/iso-base-media/get-moov-atom.js +17 -13
  36. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +24 -20
  37. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +7 -3
  38. package/dist/containers/iso-base-media/make-track.js +34 -30
  39. package/dist/containers/iso-base-media/mdat/mdat.js +20 -16
  40. package/dist/containers/iso-base-media/mdhd.js +5 -1
  41. package/dist/containers/iso-base-media/meta/hdlr.js +5 -1
  42. package/dist/containers/iso-base-media/meta/ilst.js +5 -1
  43. package/dist/containers/iso-base-media/moov/moov.js +7 -3
  44. package/dist/containers/iso-base-media/mvhd.js +11 -7
  45. package/dist/containers/iso-base-media/parse-boxes.js +9 -5
  46. package/dist/containers/iso-base-media/parse-icc-profile.js +8 -4
  47. package/dist/containers/iso-base-media/process-box.js +67 -63
  48. package/dist/containers/iso-base-media/stsd/av1c.js +5 -1
  49. package/dist/containers/iso-base-media/stsd/avcc.js +5 -1
  50. package/dist/containers/iso-base-media/stsd/colr.js +7 -3
  51. package/dist/containers/iso-base-media/stsd/ctts.js +5 -1
  52. package/dist/containers/iso-base-media/stsd/hvcc.js +7 -3
  53. package/dist/containers/iso-base-media/stsd/keys.js +5 -1
  54. package/dist/containers/iso-base-media/stsd/mebx.js +7 -3
  55. package/dist/containers/iso-base-media/stsd/pasp.js +5 -1
  56. package/dist/containers/iso-base-media/stsd/samples.js +13 -8
  57. package/dist/containers/iso-base-media/stsd/stco.js +5 -1
  58. package/dist/containers/iso-base-media/stsd/stsc.js +5 -1
  59. package/dist/containers/iso-base-media/stsd/stsd.js +7 -3
  60. package/dist/containers/iso-base-media/stsd/stss.js +5 -1
  61. package/dist/containers/iso-base-media/stsd/stsz.js +5 -1
  62. package/dist/containers/iso-base-media/stsd/stts.js +5 -1
  63. package/dist/containers/iso-base-media/tfdt.js +5 -1
  64. package/dist/containers/iso-base-media/tfhd.js +5 -1
  65. package/dist/containers/iso-base-media/tkhd.js +8 -4
  66. package/dist/containers/iso-base-media/to-date.js +5 -1
  67. package/dist/containers/iso-base-media/trak/trak.js +7 -3
  68. package/dist/containers/iso-base-media/traversal.js +57 -33
  69. package/dist/containers/iso-base-media/trun.js +5 -1
  70. package/dist/containers/iso-base-media/void-box.js +2 -1
  71. package/dist/containers/m3u/after-manifest-fetch.js +15 -11
  72. package/dist/containers/m3u/fetch-m3u8-stream.js +7 -3
  73. package/dist/containers/m3u/get-chunks.js +5 -1
  74. package/dist/containers/m3u/get-duration-from-m3u.js +8 -4
  75. package/dist/containers/m3u/get-playlist.js +12 -6
  76. package/dist/containers/m3u/get-streams.js +9 -3
  77. package/dist/containers/m3u/iterate-over-segment-files.js +15 -11
  78. package/dist/containers/m3u/parse-directive.js +10 -6
  79. package/dist/containers/m3u/parse-m3u-manifest.js +7 -3
  80. package/dist/containers/m3u/parse-m3u-media-directive.js +10 -5
  81. package/dist/containers/m3u/parse-m3u.js +11 -7
  82. package/dist/containers/m3u/parse-m3u8-text.js +7 -3
  83. package/dist/containers/m3u/parse-stream-inf.js +7 -2
  84. package/dist/containers/m3u/run-over-m3u.js +13 -9
  85. package/dist/containers/m3u/sample-sorter.js +8 -4
  86. package/dist/containers/m3u/select-stream.js +11 -4
  87. package/dist/containers/m3u/types.js +2 -1
  88. package/dist/containers/mp3/get-duration.js +9 -5
  89. package/dist/containers/mp3/get-frame-length.js +7 -2
  90. package/dist/containers/mp3/get-metadata-from-mp3.js +5 -1
  91. package/dist/containers/mp3/id3-v1.js +5 -1
  92. package/dist/containers/mp3/id3.js +5 -1
  93. package/dist/containers/mp3/parse-mp3.js +11 -7
  94. package/dist/containers/mp3/parse-mpeg-header.js +14 -10
  95. package/dist/containers/mp3/samples-per-mpeg-file.js +5 -1
  96. package/dist/containers/riff/expect-riff-box.js +15 -11
  97. package/dist/containers/riff/get-duration.js +12 -7
  98. package/dist/containers/riff/get-tracks-from-avi.js +28 -20
  99. package/dist/containers/riff/is-movi.js +5 -1
  100. package/dist/containers/riff/parse-avih.js +5 -1
  101. package/dist/containers/riff/parse-isft.js +5 -1
  102. package/dist/containers/riff/parse-list-box.js +7 -3
  103. package/dist/containers/riff/parse-movi.js +18 -13
  104. package/dist/containers/riff/parse-riff-body.js +13 -9
  105. package/dist/containers/riff/parse-riff-box.js +13 -9
  106. package/dist/containers/riff/parse-riff-header.js +5 -1
  107. package/dist/containers/riff/parse-riff.js +9 -5
  108. package/dist/containers/riff/parse-strf.js +5 -1
  109. package/dist/containers/riff/parse-strh.js +7 -3
  110. package/dist/containers/riff/parse-video-section.js +11 -7
  111. package/dist/containers/riff/riff-box.js +2 -1
  112. package/dist/containers/riff/timescale.js +4 -1
  113. package/dist/containers/riff/traversal.js +15 -7
  114. package/dist/containers/transport-stream/adts-header.js +10 -6
  115. package/dist/containers/transport-stream/boxes.js +2 -1
  116. package/dist/containers/transport-stream/discard-rest-of-packet.js +7 -2
  117. package/dist/containers/transport-stream/find-separator.js +4 -1
  118. package/dist/containers/transport-stream/get-tracks.js +16 -10
  119. package/dist/containers/transport-stream/handle-aac-packet.js +16 -12
  120. package/dist/containers/transport-stream/handle-avc-packet.js +26 -22
  121. package/dist/containers/transport-stream/next-pes-header-store.js +5 -1
  122. package/dist/containers/transport-stream/parse-packet.js +17 -13
  123. package/dist/containers/transport-stream/parse-pat.js +10 -5
  124. package/dist/containers/transport-stream/parse-pes.js +5 -1
  125. package/dist/containers/transport-stream/parse-pmt.js +7 -3
  126. package/dist/containers/transport-stream/parse-stream-packet.js +17 -13
  127. package/dist/containers/transport-stream/parse-transport-stream.js +9 -5
  128. package/dist/containers/transport-stream/process-stream-buffers.js +17 -12
  129. package/dist/containers/transport-stream/traversal.js +10 -4
  130. package/dist/containers/wav/get-duration-from-wav.js +8 -3
  131. package/dist/containers/wav/get-metadata-from-wav.js +5 -1
  132. package/dist/containers/wav/parse-data.js +9 -5
  133. package/dist/containers/wav/parse-fmt.js +7 -3
  134. package/dist/containers/wav/parse-header.js +5 -1
  135. package/dist/containers/wav/parse-id3.js +5 -1
  136. package/dist/containers/wav/parse-list.js +5 -1
  137. package/dist/containers/wav/parse-video-section.js +7 -3
  138. package/dist/containers/wav/parse-wav.js +19 -15
  139. package/dist/containers/wav/types.js +2 -1
  140. package/dist/containers/webm/allowed-partial-segments.js +4 -1
  141. package/dist/containers/webm/av1-codec-private.js +7 -3
  142. package/dist/containers/webm/color.js +10 -6
  143. package/dist/containers/webm/description.js +10 -6
  144. package/dist/containers/webm/get-ready-tracks.js +18 -13
  145. package/dist/containers/webm/get-sample-from-block.js +16 -12
  146. package/dist/containers/webm/make-track.js +48 -43
  147. package/dist/containers/webm/parse-ebml.js +19 -14
  148. package/dist/containers/webm/parse-webm-header.js +7 -3
  149. package/dist/containers/webm/segments/all-segments.js +173 -168
  150. package/dist/containers/webm/segments/block-simple-block-flags.js +8 -4
  151. package/dist/containers/webm/segments/track-entry.js +5 -1
  152. package/dist/containers/webm/segments.js +13 -9
  153. package/dist/containers/webm/traversal.js +67 -37
  154. package/dist/convert-audio-or-video-sample.js +5 -1
  155. package/dist/download-and-parse-media.js +14 -10
  156. package/dist/emit-available-info.js +38 -34
  157. package/dist/emitter.js +5 -1
  158. package/dist/errors.js +15 -6
  159. package/dist/esm/index.mjs +1 -1
  160. package/dist/esm/worker.mjs +4 -5
  161. package/dist/fetch.js +17 -1
  162. package/dist/file-types/bmp.js +7 -3
  163. package/dist/file-types/detect-file-type.js +38 -24
  164. package/dist/file-types/index.js +26 -22
  165. package/dist/file-types/jpeg.js +9 -4
  166. package/dist/file-types/pdf.js +7 -3
  167. package/dist/file-types/png.js +9 -4
  168. package/dist/file-types/webp.js +7 -3
  169. package/dist/forward-controller.js +5 -1
  170. package/dist/get-audio-codec.js +38 -25
  171. package/dist/get-container.js +10 -5
  172. package/dist/get-dimensions.js +13 -8
  173. package/dist/get-duration.js +34 -27
  174. package/dist/get-fields-from-callbacks.js +5 -1
  175. package/dist/get-fps.js +34 -24
  176. package/dist/get-is-hdr.js +10 -5
  177. package/dist/get-keyframes.js +11 -6
  178. package/dist/get-location.js +9 -4
  179. package/dist/get-number-of-audio-channels.js +7 -2
  180. package/dist/get-sample-aspect-ratio.js +30 -17
  181. package/dist/get-sample-positions-from-lpcm.js +9 -5
  182. package/dist/get-sample-positions.js +5 -1
  183. package/dist/get-sample-rate.js +7 -2
  184. package/dist/get-tracks.js +40 -29
  185. package/dist/get-video-codec.js +34 -26
  186. package/dist/has-all-info.js +38 -33
  187. package/dist/index.js +47 -32
  188. package/dist/init-video.js +28 -24
  189. package/dist/internal-parse-media.js +39 -35
  190. package/dist/is-audio-structure.js +5 -1
  191. package/dist/log.js +12 -8
  192. package/dist/make-hvc1-codec-strings.js +5 -1
  193. package/dist/media-parser-controller.js +11 -7
  194. package/dist/metadata/get-metadata.js +22 -17
  195. package/dist/metadata/metadata-from-iso.js +17 -12
  196. package/dist/metadata/metadata-from-matroska.js +7 -3
  197. package/dist/metadata/metadata-from-riff.js +7 -3
  198. package/dist/node-writer.js +17 -1
  199. package/dist/node.js +17 -1
  200. package/dist/options.js +2 -1
  201. package/dist/parse-media-on-worker-entry.js +7 -3
  202. package/dist/parse-media.js +12 -8
  203. package/dist/parse-result.js +2 -1
  204. package/dist/pause-signal.js +5 -1
  205. package/dist/perform-seek.js +10 -6
  206. package/dist/readers/fetch/get-body-and-reader.js +5 -1
  207. package/dist/readers/fetch/resolve-url.js +5 -1
  208. package/dist/readers/from-fetch.js +21 -14
  209. package/dist/readers/from-node.js +23 -17
  210. package/dist/readers/from-web-file.js +13 -7
  211. package/dist/readers/reader.js +2 -1
  212. package/dist/readers/universal.js +16 -13
  213. package/dist/readers/web.js +12 -9
  214. package/dist/register-track.js +15 -9
  215. package/dist/remotion-license-acknowledge.js +8 -4
  216. package/dist/run-parse-iteration.js +25 -21
  217. package/dist/samples-from-moof.js +10 -6
  218. package/dist/skip.js +5 -1
  219. package/dist/state/aac-state.js +5 -1
  220. package/dist/state/can-skip-tracks.js +8 -3
  221. package/dist/state/emitted-fields.js +5 -1
  222. package/dist/state/flac-state.js +5 -1
  223. package/dist/state/has-tracks-section.js +7 -3
  224. package/dist/state/images.js +5 -1
  225. package/dist/state/iso-base-media/cached-sample-positions.js +13 -8
  226. package/dist/state/iso-base-media/iso-state.js +9 -5
  227. package/dist/state/iso-base-media/moov-box.js +5 -1
  228. package/dist/state/keyframes.js +5 -1
  229. package/dist/state/m3u-state.js +9 -5
  230. package/dist/state/may-skip-video-data.js +7 -3
  231. package/dist/state/mp3.js +5 -1
  232. package/dist/state/need-samples-for-fields.js +5 -1
  233. package/dist/state/parser-state.js +39 -35
  234. package/dist/state/riff.js +5 -1
  235. package/dist/state/sample-callbacks.js +12 -8
  236. package/dist/state/slow-duration-fps.js +5 -1
  237. package/dist/state/structure.js +5 -1
  238. package/dist/state/transport-stream.js +7 -3
  239. package/dist/state/video-section.js +5 -1
  240. package/dist/state/webm.js +9 -5
  241. package/dist/throttled-progress.js +5 -1
  242. package/dist/truthy.js +4 -1
  243. package/dist/universal.js +5 -1
  244. package/dist/version.d.ts +1 -1
  245. package/dist/version.js +4 -1
  246. package/dist/web.js +5 -1
  247. package/dist/webcodec-sample-types.js +2 -1
  248. package/dist/worker/forward-controller.js +7 -3
  249. package/dist/worker/serialize-error.js +19 -14
  250. package/dist/worker/worker-types.js +2 -1
  251. package/dist/worker-server-entry.js +5 -3
  252. package/dist/worker-server.js +16 -12
  253. package/dist/worker-web-entry.js +5 -3
  254. package/dist/worker.d.ts +3 -2
  255. package/dist/worker.js +11 -2
  256. package/dist/worker.module.d.ts +4 -0
  257. package/dist/worker.module.js +16 -0
  258. package/dist/writers/node.js +23 -16
  259. package/dist/writers/writer.js +2 -1
  260. package/package.json +3 -3
package/dist/errors.js CHANGED
@@ -1,4 +1,7 @@
1
- export class IsAGifError extends Error {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasBeenAborted = exports.MediaParserAbortError = exports.IsAnUnsupportedFileTypeError = exports.IsAPdfError = exports.IsAnImageError = exports.IsAGifError = void 0;
4
+ class IsAGifError extends Error {
2
5
  constructor({ message, mimeType, sizeInBytes, fileName, }) {
3
6
  super(message);
4
7
  this.name = 'IsAGifError';
@@ -11,7 +14,8 @@ export class IsAGifError extends Error {
11
14
  }
12
15
  }
13
16
  }
14
- export class IsAnImageError extends Error {
17
+ exports.IsAGifError = IsAGifError;
18
+ class IsAnImageError extends Error {
15
19
  constructor({ dimensions, imageType, message, mimeType, sizeInBytes, fileName, }) {
16
20
  super(message);
17
21
  this.name = 'IsAnImageError';
@@ -25,7 +29,8 @@ export class IsAnImageError extends Error {
25
29
  }
26
30
  }
27
31
  }
28
- export class IsAPdfError extends Error {
32
+ exports.IsAnImageError = IsAnImageError;
33
+ class IsAPdfError extends Error {
29
34
  constructor({ message, mimeType, sizeInBytes, fileName, }) {
30
35
  super(message);
31
36
  this.name = 'IsAPdfError';
@@ -37,7 +42,8 @@ export class IsAPdfError extends Error {
37
42
  }
38
43
  }
39
44
  }
40
- export class IsAnUnsupportedFileTypeError extends Error {
45
+ exports.IsAPdfError = IsAPdfError;
46
+ class IsAnUnsupportedFileTypeError extends Error {
41
47
  constructor({ message, mimeType, sizeInBytes, fileName, }) {
42
48
  super(message);
43
49
  this.name = 'IsAnUnsupportedFileTypeError';
@@ -49,15 +55,18 @@ export class IsAnUnsupportedFileTypeError extends Error {
49
55
  }
50
56
  }
51
57
  }
52
- export class MediaParserAbortError extends Error {
58
+ exports.IsAnUnsupportedFileTypeError = IsAnUnsupportedFileTypeError;
59
+ class MediaParserAbortError extends Error {
53
60
  constructor(message) {
54
61
  super(message);
55
62
  this.name = 'MediaParserAbortError';
56
63
  this.cause = undefined;
57
64
  }
58
65
  }
59
- export const hasBeenAborted = (error) => {
66
+ exports.MediaParserAbortError = MediaParserAbortError;
67
+ const hasBeenAborted = (error) => {
60
68
  return (error instanceof MediaParserAbortError ||
61
69
  // On worker it is not the same instance, but same name
62
70
  error.name === 'MediaParserAbortError');
63
71
  };
72
+ exports.hasBeenAborted = hasBeenAborted;
@@ -12661,7 +12661,7 @@ var downloadAndParseMedia = async (options) => {
12661
12661
  return returnValue;
12662
12662
  };
12663
12663
  // src/version.ts
12664
- var VERSION = "4.0.277";
12664
+ var VERSION = "4.0.278";
12665
12665
 
12666
12666
  // src/index.ts
12667
12667
  var MediaParserInternals = {
@@ -437,14 +437,13 @@ var parseMediaOnWorkerImplementation = async ({ controller, reader, ...params },
437
437
  return val;
438
438
  };
439
439
 
440
- // src/parse-media-on-server-worker.ts
441
- var parseMediaOnServerWorker = (params) => {
442
- return parseMediaOnWorkerImplementation(params, new URL("./worker-server-entry", import.meta.url), "parseMediaOnServerWorker");
443
- };
444
- // src/parse-media-on-web-worker.ts
440
+ // src/worker.module.ts
445
441
  var parseMediaOnWebWorker = (params) => {
446
442
  return parseMediaOnWorkerImplementation(params, new URL("./worker-web-entry", import.meta.url), "parseMediaOnWebWorker");
447
443
  };
444
+ var parseMediaOnServerWorker = (params) => {
445
+ return parseMediaOnWorkerImplementation(params, new URL("./worker-server-entry", import.meta.url), "parseMediaOnServerWorker");
446
+ };
448
447
  export {
449
448
  parseMediaOnWebWorker,
450
449
  parseMediaOnServerWorker
package/dist/fetch.js CHANGED
@@ -1 +1,17 @@
1
- export * from './readers/from-fetch';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./readers/from-fetch"), exports);
@@ -1,4 +1,7 @@
1
- import { matchesPattern } from './detect-file-type';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBmp = void 0;
4
+ const detect_file_type_1 = require("./detect-file-type");
2
5
  function getBmpDimensions(bmpData) {
3
6
  if (bmpData.length < 26) {
4
7
  return null;
@@ -9,11 +12,12 @@ function getBmpDimensions(bmpData) {
9
12
  height: Math.abs(view.getInt32(22, true)),
10
13
  };
11
14
  }
12
- export const isBmp = (data) => {
15
+ const isBmp = (data) => {
13
16
  const bmpPattern = new Uint8Array([0x42, 0x4d]);
14
- if (matchesPattern(bmpPattern)(data.subarray(0, 2))) {
17
+ if ((0, detect_file_type_1.matchesPattern)(bmpPattern)(data.subarray(0, 2))) {
15
18
  const bmp = getBmpDimensions(data);
16
19
  return { dimensions: bmp, type: 'bmp' };
17
20
  }
18
21
  return null;
19
22
  };
23
+ exports.isBmp = isBmp;
@@ -1,60 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isM3u = exports.isFlac = exports.isAac = exports.isGif = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
1
4
  const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
2
- export const matchesPattern = (pattern) => {
5
+ const matchesPattern = (pattern) => {
3
6
  return (data) => {
4
7
  return pattern.every((value, index) => data[index] === value);
5
8
  };
6
9
  };
7
- export const isRiffAvi = (data) => {
10
+ exports.matchesPattern = matchesPattern;
11
+ const isRiffAvi = (data) => {
8
12
  const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
9
- if (!matchesPattern(riffPattern)(data.subarray(0, 4))) {
13
+ if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
10
14
  return false;
11
15
  }
12
16
  const fileType = data.subarray(8, 12);
13
17
  const aviPattern = new Uint8Array([0x41, 0x56, 0x49, 0x20]);
14
- return matchesPattern(aviPattern)(fileType);
18
+ return (0, exports.matchesPattern)(aviPattern)(fileType);
15
19
  };
16
- export const isRiffWave = (data) => {
20
+ exports.isRiffAvi = isRiffAvi;
21
+ const isRiffWave = (data) => {
17
22
  const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
18
- if (!matchesPattern(riffPattern)(data.subarray(0, 4))) {
23
+ if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
19
24
  return false;
20
25
  }
21
26
  const fileType = data.subarray(8, 12);
22
27
  const wavePattern = new Uint8Array([0x57, 0x41, 0x56, 0x45]);
23
- return matchesPattern(wavePattern)(fileType);
28
+ return (0, exports.matchesPattern)(wavePattern)(fileType);
24
29
  };
25
- export const isWebm = (data) => {
26
- return matchesPattern(webmPattern)(data.subarray(0, 4));
30
+ exports.isRiffWave = isRiffWave;
31
+ const isWebm = (data) => {
32
+ return (0, exports.matchesPattern)(webmPattern)(data.subarray(0, 4));
27
33
  };
28
- export const isIsoBaseMedia = (data) => {
34
+ exports.isWebm = isWebm;
35
+ const isIsoBaseMedia = (data) => {
29
36
  const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
30
- return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
37
+ return (0, exports.matchesPattern)(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
31
38
  };
32
- export const isTransportStream = (data) => {
39
+ exports.isIsoBaseMedia = isIsoBaseMedia;
40
+ const isTransportStream = (data) => {
33
41
  return data[0] === 0x47 && data[188] === 0x47;
34
42
  };
35
- export const isMp3 = (data) => {
43
+ exports.isTransportStream = isTransportStream;
44
+ const isMp3 = (data) => {
36
45
  const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
37
46
  const id3v4Pattern = new Uint8Array([0x49, 0x44, 0x33, 4]);
38
47
  const id3v3Pattern = new Uint8Array([0x49, 0x44, 0x33, 3]);
39
48
  const id3v2Pattern = new Uint8Array([0x49, 0x44, 0x33, 2]);
40
49
  const subarray = data.subarray(0, 4);
41
- return (matchesPattern(mpegPattern)(subarray) ||
42
- matchesPattern(id3v4Pattern)(subarray) ||
43
- matchesPattern(id3v3Pattern)(subarray) ||
44
- matchesPattern(id3v2Pattern)(subarray));
50
+ return ((0, exports.matchesPattern)(mpegPattern)(subarray) ||
51
+ (0, exports.matchesPattern)(id3v4Pattern)(subarray) ||
52
+ (0, exports.matchesPattern)(id3v3Pattern)(subarray) ||
53
+ (0, exports.matchesPattern)(id3v2Pattern)(subarray));
45
54
  };
46
- export const isGif = (data) => {
55
+ exports.isMp3 = isMp3;
56
+ const isGif = (data) => {
47
57
  const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
48
- return matchesPattern(gifPattern)(data.subarray(0, 4));
58
+ return (0, exports.matchesPattern)(gifPattern)(data.subarray(0, 4));
49
59
  };
50
- export const isAac = (data) => {
60
+ exports.isGif = isGif;
61
+ const isAac = (data) => {
51
62
  const aacPattern = new Uint8Array([0xff, 0xf1]);
52
- return matchesPattern(aacPattern)(data.subarray(0, 2));
63
+ return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
53
64
  };
54
- export const isFlac = (data) => {
65
+ exports.isAac = isAac;
66
+ const isFlac = (data) => {
55
67
  const flacPattern = new Uint8Array([0x66, 0x4c, 0x61, 0x43]);
56
- return matchesPattern(flacPattern)(data.subarray(0, 4));
68
+ return (0, exports.matchesPattern)(flacPattern)(data.subarray(0, 4));
57
69
  };
58
- export const isM3u = (data) => {
70
+ exports.isFlac = isFlac;
71
+ const isM3u = (data) => {
59
72
  return new TextDecoder('utf-8').decode(data.slice(0, 7)) === '#EXTM3U';
60
73
  };
74
+ exports.isM3u = isM3u;
@@ -1,59 +1,63 @@
1
- import { isBmp } from './bmp';
2
- import { isAac, isFlac, isGif, isIsoBaseMedia, isM3u, isMp3, isRiffAvi, isRiffWave, isTransportStream, isWebm, } from './detect-file-type';
3
- import { isJpeg } from './jpeg';
4
- import { isPdf } from './pdf';
5
- import { isPng } from './png';
6
- import { isWebp } from './webp';
7
- export const detectFileType = (data) => {
8
- if (isRiffWave(data)) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectFileType = void 0;
4
+ const bmp_1 = require("./bmp");
5
+ const detect_file_type_1 = require("./detect-file-type");
6
+ const jpeg_1 = require("./jpeg");
7
+ const pdf_1 = require("./pdf");
8
+ const png_1 = require("./png");
9
+ const webp_1 = require("./webp");
10
+ const detectFileType = (data) => {
11
+ if ((0, detect_file_type_1.isRiffWave)(data)) {
9
12
  return { type: 'wav' };
10
13
  }
11
- if (isRiffAvi(data)) {
14
+ if ((0, detect_file_type_1.isRiffAvi)(data)) {
12
15
  return { type: 'riff' };
13
16
  }
14
- if (isAac(data)) {
17
+ if ((0, detect_file_type_1.isAac)(data)) {
15
18
  return { type: 'aac' };
16
19
  }
17
- if (isFlac(data)) {
20
+ if ((0, detect_file_type_1.isFlac)(data)) {
18
21
  return { type: 'flac' };
19
22
  }
20
- if (isM3u(data)) {
23
+ if ((0, detect_file_type_1.isM3u)(data)) {
21
24
  return { type: 'm3u' };
22
25
  }
23
- const webp = isWebp(data);
26
+ const webp = (0, webp_1.isWebp)(data);
24
27
  if (webp) {
25
28
  return webp;
26
29
  }
27
- if (isWebm(data)) {
30
+ if ((0, detect_file_type_1.isWebm)(data)) {
28
31
  return { type: 'webm' };
29
32
  }
30
- if (isIsoBaseMedia(data)) {
33
+ if ((0, detect_file_type_1.isIsoBaseMedia)(data)) {
31
34
  return { type: 'iso-base-media' };
32
35
  }
33
- if (isTransportStream(data)) {
36
+ if ((0, detect_file_type_1.isTransportStream)(data)) {
34
37
  return { type: 'transport-stream' };
35
38
  }
36
- if (isMp3(data)) {
39
+ if ((0, detect_file_type_1.isMp3)(data)) {
37
40
  return { type: 'mp3' };
38
41
  }
39
- if (isGif(data)) {
42
+ if ((0, detect_file_type_1.isGif)(data)) {
40
43
  return { type: 'gif' };
41
44
  }
42
- const png = isPng(data);
45
+ const png = (0, png_1.isPng)(data);
43
46
  if (png) {
44
47
  return png;
45
48
  }
46
- const pdf = isPdf(data);
49
+ const pdf = (0, pdf_1.isPdf)(data);
47
50
  if (pdf) {
48
51
  return pdf;
49
52
  }
50
- const bmp = isBmp(data);
53
+ const bmp = (0, bmp_1.isBmp)(data);
51
54
  if (bmp) {
52
55
  return bmp;
53
56
  }
54
- const jpeg = isJpeg(data);
57
+ const jpeg = (0, jpeg_1.isJpeg)(data);
55
58
  if (jpeg) {
56
59
  return jpeg;
57
60
  }
58
61
  return { type: 'unknown' };
59
62
  };
63
+ exports.detectFileType = detectFileType;
@@ -1,5 +1,9 @@
1
- import { matchesPattern } from './detect-file-type';
2
- export function getJpegDimensions(data) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isJpeg = void 0;
4
+ exports.getJpegDimensions = getJpegDimensions;
5
+ const detect_file_type_1 = require("./detect-file-type");
6
+ function getJpegDimensions(data) {
3
7
  let offset = 0;
4
8
  // Helper function to read a 16-bit big-endian integer
5
9
  function readUint16BE(o) {
@@ -28,12 +32,13 @@ export function getJpegDimensions(data) {
28
32
  }
29
33
  return null; // Return null if dimensions are not found
30
34
  }
31
- export const isJpeg = (data) => {
35
+ const isJpeg = (data) => {
32
36
  const jpegPattern = new Uint8Array([0xff, 0xd8]);
33
- const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
37
+ const jpeg = (0, detect_file_type_1.matchesPattern)(jpegPattern)(data.subarray(0, 2));
34
38
  if (!jpeg) {
35
39
  return null;
36
40
  }
37
41
  const dim = getJpegDimensions(data);
38
42
  return { dimensions: dim, type: 'jpeg' };
39
43
  };
44
+ exports.isJpeg = isJpeg;
@@ -1,8 +1,12 @@
1
- import { matchesPattern } from './detect-file-type';
2
- export const isPdf = (data) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPdf = void 0;
4
+ const detect_file_type_1 = require("./detect-file-type");
5
+ const isPdf = (data) => {
3
6
  if (data.length < 4) {
4
7
  return null;
5
8
  }
6
9
  const pdfPattern = new Uint8Array([0x25, 0x50, 0x44, 0x46]);
7
- return matchesPattern(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
10
+ return (0, detect_file_type_1.matchesPattern)(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
8
11
  };
12
+ exports.isPdf = isPdf;
@@ -1,5 +1,9 @@
1
- import { matchesPattern } from './detect-file-type';
2
- export function getPngDimensions(pngData) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPng = void 0;
4
+ exports.getPngDimensions = getPngDimensions;
5
+ const detect_file_type_1 = require("./detect-file-type");
6
+ function getPngDimensions(pngData) {
3
7
  if (pngData.length < 24) {
4
8
  // PNG header (8) + IHDR chunk (16) minimum
5
9
  return null;
@@ -17,11 +21,12 @@ export function getPngDimensions(pngData) {
17
21
  height: view.getUint32(20, false), // false = big-endian
18
22
  };
19
23
  }
20
- export const isPng = (data) => {
24
+ const isPng = (data) => {
21
25
  const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
22
- if (matchesPattern(pngPattern)(data.subarray(0, 4))) {
26
+ if ((0, detect_file_type_1.matchesPattern)(pngPattern)(data.subarray(0, 4))) {
23
27
  const png = getPngDimensions(data);
24
28
  return { dimensions: png, type: 'png' };
25
29
  }
26
30
  return null;
27
31
  };
32
+ exports.isPng = isPng;
@@ -1,4 +1,7 @@
1
- import { matchesPattern } from './detect-file-type';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWebp = void 0;
4
+ const detect_file_type_1 = require("./detect-file-type");
2
5
  function getWebPDimensions(bytes) {
3
6
  // Check if we have enough bytes for a basic WebP header
4
7
  if (bytes.length < 30) {
@@ -53,9 +56,9 @@ function getWebPDimensions(bytes) {
53
56
  }
54
57
  return null;
55
58
  }
56
- export const isWebp = (data) => {
59
+ const isWebp = (data) => {
57
60
  const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
58
- if (matchesPattern(webpPattern)(data.subarray(0, 4))) {
61
+ if ((0, detect_file_type_1.matchesPattern)(webpPattern)(data.subarray(0, 4))) {
59
62
  return {
60
63
  type: 'webp',
61
64
  dimensions: getWebPDimensions(data),
@@ -63,3 +66,4 @@ export const isWebp = (data) => {
63
66
  }
64
67
  return null;
65
68
  };
69
+ exports.isWebp = isWebp;
@@ -1,4 +1,7 @@
1
- export const forwardMediaParserController = ({ parentController, childController, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.forwardMediaParserController = void 0;
4
+ const forwardMediaParserController = ({ parentController, childController, }) => {
2
5
  const onAbort = ({ detail }) => {
3
6
  childController.abort(detail.reason);
4
7
  };
@@ -19,3 +22,4 @@ export const forwardMediaParserController = ({ parentController, childController
19
22
  },
20
23
  };
21
24
  };
25
+ exports.forwardMediaParserController = forwardMediaParserController;
@@ -1,8 +1,11 @@
1
- import { getStsdBox, getTraks } from './containers/iso-base-media/traversal';
2
- import { trakBoxContainsAudio } from './get-fps';
3
- import { getHasTracks, getTracks, } from './get-tracks';
4
- export const getAudioCodec = (parserState) => {
5
- const tracks = getTracks(parserState);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAudioCodecFromTrack = exports.getAudioCodecStringFromTrak = exports.getAudioCodecFromIso = exports.isLpcmAudioCodec = exports.getAudioCodecFromTrak = exports.getSampleRate = exports.getNumberOfChannelsFromTrak = exports.getCodecPrivateFromTrak = exports.hasAudioCodec = exports.getAudioCodec = void 0;
4
+ const traversal_1 = require("./containers/iso-base-media/traversal");
5
+ const get_fps_1 = require("./get-fps");
6
+ const get_tracks_1 = require("./get-tracks");
7
+ const getAudioCodec = (parserState) => {
8
+ const tracks = (0, get_tracks_1.getTracks)(parserState);
6
9
  const allTracks = tracks.audioTracks.length +
7
10
  tracks.otherTracks.length +
8
11
  tracks.videoTracks.length;
@@ -18,9 +21,11 @@ export const getAudioCodec = (parserState) => {
18
21
  }
19
22
  return null;
20
23
  };
21
- export const hasAudioCodec = (state) => {
22
- return getHasTracks(state);
24
+ exports.getAudioCodec = getAudioCodec;
25
+ const hasAudioCodec = (state) => {
26
+ return (0, get_tracks_1.getHasTracks)(state);
23
27
  };
28
+ exports.hasAudioCodec = hasAudioCodec;
24
29
  const getCodecSpecificatorFromEsdsBox = ({ child, }) => {
25
30
  const descriptor = child.descriptors.find((d) => d.type === 'decoder-config-descriptor');
26
31
  if (!descriptor) {
@@ -49,8 +54,8 @@ const getCodecSpecificatorFromEsdsBox = ({ child, }) => {
49
54
  description: audioSpecificConfig.asBytes,
50
55
  };
51
56
  };
52
- export const getCodecPrivateFromTrak = (trakBox) => {
53
- const stsdBox = getStsdBox(trakBox);
57
+ const getCodecPrivateFromTrak = (trakBox) => {
58
+ const stsdBox = (0, traversal_1.getStsdBox)(trakBox);
54
59
  if (!stsdBox) {
55
60
  return null;
56
61
  }
@@ -72,6 +77,7 @@ export const getCodecPrivateFromTrak = (trakBox) => {
72
77
  }
73
78
  return mp4a.asBytes;
74
79
  };
80
+ exports.getCodecPrivateFromTrak = getCodecPrivateFromTrak;
75
81
  const onSample = (sample, children) => {
76
82
  const child = children.find((c) => c.type === 'esds-box');
77
83
  if (child && child.type === 'esds-box') {
@@ -90,8 +96,8 @@ const onSample = (sample, children) => {
90
96
  description: undefined,
91
97
  };
92
98
  };
93
- export const getNumberOfChannelsFromTrak = (trak) => {
94
- const stsdBox = getStsdBox(trak);
99
+ const getNumberOfChannelsFromTrak = (trak) => {
100
+ const stsdBox = (0, traversal_1.getStsdBox)(trak);
95
101
  if (!stsdBox) {
96
102
  return null;
97
103
  }
@@ -101,8 +107,9 @@ export const getNumberOfChannelsFromTrak = (trak) => {
101
107
  }
102
108
  return sample.numberOfChannels;
103
109
  };
104
- export const getSampleRate = (trak) => {
105
- const stsdBox = getStsdBox(trak);
110
+ exports.getNumberOfChannelsFromTrak = getNumberOfChannelsFromTrak;
111
+ const getSampleRate = (trak) => {
112
+ const stsdBox = (0, traversal_1.getStsdBox)(trak);
106
113
  if (!stsdBox) {
107
114
  return null;
108
115
  }
@@ -112,8 +119,9 @@ export const getSampleRate = (trak) => {
112
119
  }
113
120
  return sample.sampleRate;
114
121
  };
115
- export const getAudioCodecFromTrak = (trak) => {
116
- const stsdBox = getStsdBox(trak);
122
+ exports.getSampleRate = getSampleRate;
123
+ const getAudioCodecFromTrak = (trak) => {
124
+ const stsdBox = (0, traversal_1.getStsdBox)(trak);
117
125
  if (!stsdBox) {
118
126
  return null;
119
127
  }
@@ -134,20 +142,23 @@ export const getAudioCodecFromTrak = (trak) => {
134
142
  }
135
143
  return null;
136
144
  };
137
- export const isLpcmAudioCodec = (trak) => {
145
+ exports.getAudioCodecFromTrak = getAudioCodecFromTrak;
146
+ const isLpcmAudioCodec = (trak) => {
138
147
  var _a;
139
- return ((_a = getAudioCodecFromTrak(trak)) === null || _a === void 0 ? void 0 : _a.format) === 'lpcm';
148
+ return ((_a = (0, exports.getAudioCodecFromTrak)(trak)) === null || _a === void 0 ? void 0 : _a.format) === 'lpcm';
140
149
  };
141
- export const getAudioCodecFromIso = (moov) => {
142
- const traks = getTraks(moov);
143
- const trakBox = traks.find((b) => b.type === 'trak-box' && trakBoxContainsAudio(b));
150
+ exports.isLpcmAudioCodec = isLpcmAudioCodec;
151
+ const getAudioCodecFromIso = (moov) => {
152
+ const traks = (0, traversal_1.getTraks)(moov);
153
+ const trakBox = traks.find((b) => b.type === 'trak-box' && (0, get_fps_1.trakBoxContainsAudio)(b));
144
154
  if (!trakBox) {
145
155
  return null;
146
156
  }
147
- return getAudioCodecFromTrak(trakBox);
157
+ return (0, exports.getAudioCodecFromTrak)(trakBox);
148
158
  };
149
- export const getAudioCodecStringFromTrak = (trak) => {
150
- const codec = getAudioCodecFromTrak(trak);
159
+ exports.getAudioCodecFromIso = getAudioCodecFromIso;
160
+ const getAudioCodecStringFromTrak = (trak) => {
161
+ const codec = (0, exports.getAudioCodecFromTrak)(trak);
151
162
  if (!codec) {
152
163
  throw new Error('Expected codec');
153
164
  }
@@ -173,6 +184,7 @@ export const getAudioCodecStringFromTrak = (trak) => {
173
184
  description: codec.description,
174
185
  };
175
186
  };
187
+ exports.getAudioCodecStringFromTrak = getAudioCodecStringFromTrak;
176
188
  const getAudioCodecFromAudioCodecInfo = (codec) => {
177
189
  if (codec.format === 'twos') {
178
190
  return 'pcm-s16';
@@ -200,10 +212,11 @@ const getAudioCodecFromAudioCodecInfo = (codec) => {
200
212
  }
201
213
  throw new Error(`Unknown audio format: ${codec.format}`);
202
214
  };
203
- export const getAudioCodecFromTrack = (track) => {
204
- const audioSample = getAudioCodecFromTrak(track);
215
+ const getAudioCodecFromTrack = (track) => {
216
+ const audioSample = (0, exports.getAudioCodecFromTrak)(track);
205
217
  if (!audioSample) {
206
218
  throw new Error('Could not find audio sample');
207
219
  }
208
220
  return getAudioCodecFromAudioCodecInfo(audioSample);
209
221
  };
222
+ exports.getAudioCodecFromTrack = getAudioCodecFromTrack;
@@ -1,5 +1,8 @@
1
- import { isRiffAvi } from './containers/riff/traversal';
2
- export const getContainer = (segments) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasContainer = exports.getContainer = void 0;
4
+ const traversal_1 = require("./containers/riff/traversal");
5
+ const getContainer = (segments) => {
3
6
  if (segments.type === 'iso-base-media') {
4
7
  return 'mp4';
5
8
  }
@@ -19,7 +22,7 @@ export const getContainer = (segments) => {
19
22
  return 'flac';
20
23
  }
21
24
  if (segments.type === 'riff') {
22
- if (isRiffAvi(segments)) {
25
+ if ((0, traversal_1.isRiffAvi)(segments)) {
23
26
  return 'avi';
24
27
  }
25
28
  throw new Error('Unknown RIFF container ' + segments.type);
@@ -32,11 +35,13 @@ export const getContainer = (segments) => {
32
35
  }
33
36
  throw new Error('Unknown container ' + segments);
34
37
  };
35
- export const hasContainer = (boxes) => {
38
+ exports.getContainer = getContainer;
39
+ const hasContainer = (boxes) => {
36
40
  try {
37
- return getContainer(boxes) !== null;
41
+ return (0, exports.getContainer)(boxes) !== null;
38
42
  }
39
43
  catch (_a) {
40
44
  return false;
41
45
  }
42
46
  };
47
+ exports.hasContainer = hasContainer;
@@ -1,11 +1,14 @@
1
- import { getTracks } from './get-tracks';
2
- import { isAudioStructure } from './is-audio-structure';
3
- export const getDimensions = (state) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasDimensions = exports.getDimensions = void 0;
4
+ const get_tracks_1 = require("./get-tracks");
5
+ const is_audio_structure_1 = require("./is-audio-structure");
6
+ const getDimensions = (state) => {
4
7
  const structure = state.getStructureOrNull();
5
- if (structure && isAudioStructure(structure)) {
8
+ if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
6
9
  return null;
7
10
  }
8
- const { videoTracks } = getTracks(state);
11
+ const { videoTracks } = (0, get_tracks_1.getTracks)(state);
9
12
  if (!videoTracks.length) {
10
13
  return null;
11
14
  }
@@ -18,15 +21,17 @@ export const getDimensions = (state) => {
18
21
  unrotatedWidth: firstVideoTrack.displayAspectWidth,
19
22
  };
20
23
  };
21
- export const hasDimensions = (state) => {
24
+ exports.getDimensions = getDimensions;
25
+ const hasDimensions = (state) => {
22
26
  const structure = state.getStructureOrNull();
23
- if (structure && isAudioStructure(structure)) {
27
+ if (structure && (0, is_audio_structure_1.isAudioStructure)(structure)) {
24
28
  return true;
25
29
  }
26
30
  try {
27
- return getDimensions(state) !== null;
31
+ return (0, exports.getDimensions)(state) !== null;
28
32
  }
29
33
  catch (_a) {
30
34
  return false;
31
35
  }
32
36
  };
37
+ exports.hasDimensions = hasDimensions;