@remotion/media-parser 4.0.277 → 4.0.279

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 (365) hide show
  1. package/dist/aac-codecprivate.js +13 -6
  2. package/dist/add-avc-profile-to-track.js +9 -5
  3. package/dist/check-if-done.d.ts +2 -0
  4. package/dist/check-if-done.js +34 -0
  5. package/dist/combine-uint8-arrays.js +5 -1
  6. package/dist/containers/aac/parse-aac.js +27 -18
  7. package/dist/containers/aac/types.js +2 -1
  8. package/dist/containers/avc/codec-string.js +5 -1
  9. package/dist/containers/avc/color.js +9 -3
  10. package/dist/containers/avc/create-sps-pps-data.js +9 -5
  11. package/dist/containers/avc/interpret-sps.js +13 -7
  12. package/dist/containers/avc/key.js +5 -1
  13. package/dist/containers/avc/parse-avc.js +7 -3
  14. package/dist/containers/avc/sps-and-pps.js +5 -1
  15. package/dist/containers/flac/get-block-size.d.ts +1 -1
  16. package/dist/containers/flac/get-block-size.js +5 -1
  17. package/dist/containers/flac/get-channel-count.d.ts +2 -2
  18. package/dist/containers/flac/get-channel-count.js +5 -1
  19. package/dist/containers/flac/get-duration-from-flac.js +5 -1
  20. package/dist/containers/flac/get-metadata-from-flac.js +5 -1
  21. package/dist/containers/flac/get-sample-rate.d.ts +1 -1
  22. package/dist/containers/flac/get-sample-rate.js +5 -1
  23. package/dist/containers/flac/parse-flac-frame.d.ts +1 -1
  24. package/dist/containers/flac/parse-flac-frame.js +33 -23
  25. package/dist/containers/flac/parse-flac.d.ts +1 -1
  26. package/dist/containers/flac/parse-flac.js +19 -15
  27. package/dist/containers/flac/parse-header.d.ts +1 -1
  28. package/dist/containers/flac/parse-header.js +5 -1
  29. package/dist/containers/flac/parse-metadata.d.ts +1 -1
  30. package/dist/containers/flac/parse-metadata.js +5 -1
  31. package/dist/containers/flac/parse-streaminfo.d.ts +1 -1
  32. package/dist/containers/flac/parse-streaminfo.js +7 -3
  33. package/dist/containers/flac/parse-unknown-block.d.ts +1 -1
  34. package/dist/containers/flac/parse-unknown-block.js +5 -1
  35. package/dist/containers/flac/types.js +2 -1
  36. package/dist/containers/iso-base-media/base-media-box.js +2 -1
  37. package/dist/containers/iso-base-media/base-type.js +2 -1
  38. package/dist/containers/iso-base-media/esds/decoder-specific-config.d.ts +1 -1
  39. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +5 -1
  40. package/dist/containers/iso-base-media/esds/esds-descriptors.d.ts +1 -1
  41. package/dist/containers/iso-base-media/esds/esds-descriptors.js +10 -5
  42. package/dist/containers/iso-base-media/esds/esds.d.ts +1 -1
  43. package/dist/containers/iso-base-media/esds/esds.js +7 -3
  44. package/dist/containers/iso-base-media/ftyp.d.ts +1 -1
  45. package/dist/containers/iso-base-media/ftyp.js +5 -1
  46. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +8 -4
  47. package/dist/containers/iso-base-media/get-children.js +7 -3
  48. package/dist/containers/iso-base-media/get-keyframes.js +11 -7
  49. package/dist/containers/iso-base-media/get-moov-atom.js +26 -16
  50. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +24 -20
  51. package/dist/containers/iso-base-media/get-seeking-from-mp4.d.ts +5 -0
  52. package/dist/containers/iso-base-media/get-seeking-from-mp4.js +56 -0
  53. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +7 -3
  54. package/dist/containers/iso-base-media/make-track.js +34 -30
  55. package/dist/containers/iso-base-media/mdat/mdat.js +47 -34
  56. package/dist/containers/iso-base-media/mdhd.d.ts +1 -1
  57. package/dist/containers/iso-base-media/mdhd.js +5 -1
  58. package/dist/containers/iso-base-media/meta/hdlr.d.ts +1 -1
  59. package/dist/containers/iso-base-media/meta/hdlr.js +5 -1
  60. package/dist/containers/iso-base-media/meta/ilst.d.ts +1 -1
  61. package/dist/containers/iso-base-media/meta/ilst.js +5 -1
  62. package/dist/containers/iso-base-media/moov/moov.js +7 -3
  63. package/dist/containers/iso-base-media/mvhd.d.ts +1 -1
  64. package/dist/containers/iso-base-media/mvhd.js +11 -7
  65. package/dist/containers/iso-base-media/parse-boxes.js +9 -5
  66. package/dist/containers/iso-base-media/parse-icc-profile.js +8 -4
  67. package/dist/containers/iso-base-media/process-box.js +67 -63
  68. package/dist/containers/iso-base-media/stsd/av1c.d.ts +1 -1
  69. package/dist/containers/iso-base-media/stsd/av1c.js +5 -1
  70. package/dist/containers/iso-base-media/stsd/avcc.d.ts +1 -1
  71. package/dist/containers/iso-base-media/stsd/avcc.js +5 -1
  72. package/dist/containers/iso-base-media/stsd/colr.d.ts +1 -1
  73. package/dist/containers/iso-base-media/stsd/colr.js +7 -3
  74. package/dist/containers/iso-base-media/stsd/ctts.d.ts +1 -1
  75. package/dist/containers/iso-base-media/stsd/ctts.js +5 -1
  76. package/dist/containers/iso-base-media/stsd/hvcc.d.ts +1 -1
  77. package/dist/containers/iso-base-media/stsd/hvcc.js +7 -3
  78. package/dist/containers/iso-base-media/stsd/keys.d.ts +1 -1
  79. package/dist/containers/iso-base-media/stsd/keys.js +5 -1
  80. package/dist/containers/iso-base-media/stsd/mebx.js +7 -3
  81. package/dist/containers/iso-base-media/stsd/pasp.d.ts +1 -1
  82. package/dist/containers/iso-base-media/stsd/pasp.js +5 -1
  83. package/dist/containers/iso-base-media/stsd/samples.js +13 -8
  84. package/dist/containers/iso-base-media/stsd/stco.d.ts +1 -1
  85. package/dist/containers/iso-base-media/stsd/stco.js +5 -1
  86. package/dist/containers/iso-base-media/stsd/stsc.d.ts +1 -1
  87. package/dist/containers/iso-base-media/stsd/stsc.js +5 -1
  88. package/dist/containers/iso-base-media/stsd/stsd.js +7 -3
  89. package/dist/containers/iso-base-media/stsd/stss.d.ts +1 -1
  90. package/dist/containers/iso-base-media/stsd/stss.js +5 -1
  91. package/dist/containers/iso-base-media/stsd/stsz.d.ts +1 -1
  92. package/dist/containers/iso-base-media/stsd/stsz.js +5 -1
  93. package/dist/containers/iso-base-media/stsd/stts.d.ts +1 -1
  94. package/dist/containers/iso-base-media/stsd/stts.js +5 -1
  95. package/dist/containers/iso-base-media/tfdt.d.ts +1 -1
  96. package/dist/containers/iso-base-media/tfdt.js +5 -1
  97. package/dist/containers/iso-base-media/tfhd.d.ts +1 -1
  98. package/dist/containers/iso-base-media/tfhd.js +5 -1
  99. package/dist/containers/iso-base-media/tkhd.d.ts +1 -1
  100. package/dist/containers/iso-base-media/tkhd.js +8 -4
  101. package/dist/containers/iso-base-media/to-date.js +5 -1
  102. package/dist/containers/iso-base-media/trak/trak.js +7 -3
  103. package/dist/containers/iso-base-media/traversal.js +57 -33
  104. package/dist/containers/iso-base-media/trun.d.ts +1 -1
  105. package/dist/containers/iso-base-media/trun.js +5 -1
  106. package/dist/containers/iso-base-media/void-box.js +2 -1
  107. package/dist/containers/m3u/after-manifest-fetch.js +15 -11
  108. package/dist/containers/m3u/fetch-m3u8-stream.js +7 -3
  109. package/dist/containers/m3u/get-chunks.js +5 -1
  110. package/dist/containers/m3u/get-duration-from-m3u.js +8 -4
  111. package/dist/containers/m3u/get-playlist.js +12 -6
  112. package/dist/containers/m3u/get-streams.js +9 -3
  113. package/dist/containers/m3u/iterate-over-segment-files.js +15 -11
  114. package/dist/containers/m3u/parse-directive.js +10 -6
  115. package/dist/containers/m3u/parse-m3u-manifest.d.ts +1 -1
  116. package/dist/containers/m3u/parse-m3u-manifest.js +7 -3
  117. package/dist/containers/m3u/parse-m3u-media-directive.js +10 -5
  118. package/dist/containers/m3u/parse-m3u.js +11 -7
  119. package/dist/containers/m3u/parse-m3u8-text.js +7 -3
  120. package/dist/containers/m3u/parse-stream-inf.js +7 -2
  121. package/dist/containers/m3u/run-over-m3u.js +13 -9
  122. package/dist/containers/m3u/sample-sorter.js +8 -4
  123. package/dist/containers/m3u/select-stream.js +11 -4
  124. package/dist/containers/m3u/types.js +2 -1
  125. package/dist/containers/mp3/get-duration.js +9 -5
  126. package/dist/containers/mp3/get-frame-length.js +7 -2
  127. package/dist/containers/mp3/get-metadata-from-mp3.js +5 -1
  128. package/dist/containers/mp3/id3-v1.d.ts +1 -1
  129. package/dist/containers/mp3/id3-v1.js +5 -1
  130. package/dist/containers/mp3/id3.js +5 -1
  131. package/dist/containers/mp3/parse-mp3.js +11 -7
  132. package/dist/containers/mp3/parse-mpeg-header.js +28 -19
  133. package/dist/containers/mp3/samples-per-mpeg-file.js +5 -1
  134. package/dist/containers/riff/expect-riff-box.js +15 -11
  135. package/dist/containers/riff/get-duration.js +12 -7
  136. package/dist/containers/riff/get-tracks-from-avi.js +28 -20
  137. package/dist/containers/riff/is-movi.d.ts +1 -1
  138. package/dist/containers/riff/is-movi.js +5 -1
  139. package/dist/containers/riff/parse-avih.d.ts +1 -1
  140. package/dist/containers/riff/parse-avih.js +5 -1
  141. package/dist/containers/riff/parse-isft.d.ts +1 -1
  142. package/dist/containers/riff/parse-isft.js +5 -1
  143. package/dist/containers/riff/parse-list-box.js +7 -3
  144. package/dist/containers/riff/parse-movi.js +45 -31
  145. package/dist/containers/riff/parse-riff-body.js +13 -9
  146. package/dist/containers/riff/parse-riff-box.js +13 -9
  147. package/dist/containers/riff/parse-riff-header.js +5 -1
  148. package/dist/containers/riff/parse-riff.js +9 -5
  149. package/dist/containers/riff/parse-strf.d.ts +1 -1
  150. package/dist/containers/riff/parse-strf.js +5 -1
  151. package/dist/containers/riff/parse-strh.d.ts +1 -1
  152. package/dist/containers/riff/parse-strh.js +7 -3
  153. package/dist/containers/riff/parse-video-section.js +11 -7
  154. package/dist/containers/riff/riff-box.js +2 -1
  155. package/dist/containers/riff/timescale.js +4 -1
  156. package/dist/containers/riff/traversal.js +15 -7
  157. package/dist/containers/transport-stream/adts-header.js +10 -6
  158. package/dist/containers/transport-stream/boxes.js +2 -1
  159. package/dist/containers/transport-stream/discard-rest-of-packet.d.ts +1 -1
  160. package/dist/containers/transport-stream/discard-rest-of-packet.js +7 -2
  161. package/dist/containers/transport-stream/find-separator.js +4 -1
  162. package/dist/containers/transport-stream/get-tracks.js +16 -10
  163. package/dist/containers/transport-stream/handle-aac-packet.js +21 -12
  164. package/dist/containers/transport-stream/handle-avc-packet.js +31 -22
  165. package/dist/containers/transport-stream/next-pes-header-store.js +5 -1
  166. package/dist/containers/transport-stream/parse-packet.js +17 -13
  167. package/dist/containers/transport-stream/parse-pat.d.ts +1 -1
  168. package/dist/containers/transport-stream/parse-pat.js +10 -5
  169. package/dist/containers/transport-stream/parse-pes.d.ts +1 -1
  170. package/dist/containers/transport-stream/parse-pes.js +5 -1
  171. package/dist/containers/transport-stream/parse-pmt.d.ts +1 -1
  172. package/dist/containers/transport-stream/parse-pmt.js +7 -3
  173. package/dist/containers/transport-stream/parse-stream-packet.js +17 -13
  174. package/dist/containers/transport-stream/parse-transport-stream.js +9 -5
  175. package/dist/containers/transport-stream/process-stream-buffers.js +17 -12
  176. package/dist/containers/transport-stream/traversal.js +10 -4
  177. package/dist/containers/wav/get-duration-from-wav.js +8 -3
  178. package/dist/containers/wav/get-metadata-from-wav.js +5 -1
  179. package/dist/containers/wav/parse-data.js +9 -5
  180. package/dist/containers/wav/parse-fmt.js +7 -3
  181. package/dist/containers/wav/parse-header.js +5 -1
  182. package/dist/containers/wav/parse-id3.js +5 -1
  183. package/dist/containers/wav/parse-list.js +5 -1
  184. package/dist/containers/wav/parse-video-section.js +21 -12
  185. package/dist/containers/wav/parse-wav.js +19 -15
  186. package/dist/containers/wav/types.js +2 -1
  187. package/dist/containers/webm/allowed-partial-segments.js +4 -1
  188. package/dist/containers/webm/av1-codec-private.js +7 -3
  189. package/dist/containers/webm/color.js +10 -6
  190. package/dist/containers/webm/description.js +10 -6
  191. package/dist/containers/webm/get-ready-tracks.js +18 -13
  192. package/dist/containers/webm/get-sample-from-block.js +16 -12
  193. package/dist/containers/webm/make-track.js +48 -43
  194. package/dist/containers/webm/parse-ebml.js +35 -17
  195. package/dist/containers/webm/parse-webm-header.js +7 -3
  196. package/dist/containers/webm/segments/all-segments.js +173 -168
  197. package/dist/containers/webm/segments/block-simple-block-flags.d.ts +1 -1
  198. package/dist/containers/webm/segments/block-simple-block-flags.js +8 -4
  199. package/dist/containers/webm/segments/track-entry.js +5 -1
  200. package/dist/containers/webm/segments.js +13 -9
  201. package/dist/containers/webm/traversal.js +67 -37
  202. package/dist/convert-audio-or-video-sample.js +5 -1
  203. package/dist/download-and-parse-media.js +14 -10
  204. package/dist/emit-all-info.d.ts +3 -0
  205. package/dist/emit-all-info.js +30 -0
  206. package/dist/emit-audio-sample.d.ts +12 -0
  207. package/dist/emit-audio-sample.js +14 -0
  208. package/dist/emit-available-info.d.ts +2 -7
  209. package/dist/emit-available-info.js +70 -63
  210. package/dist/emitter.js +5 -1
  211. package/dist/errors.js +15 -6
  212. package/dist/esm/index.mjs +1921 -1618
  213. package/dist/esm/worker-server-entry.mjs +840 -537
  214. package/dist/esm/worker-web-entry.mjs +840 -537
  215. package/dist/esm/worker.mjs +4 -5
  216. package/dist/fetch.js +17 -1
  217. package/dist/fields.d.ts +61 -0
  218. package/dist/fields.js +2 -0
  219. package/dist/file-types/bmp.js +7 -3
  220. package/dist/file-types/detect-file-type.js +38 -24
  221. package/dist/file-types/index.js +26 -22
  222. package/dist/file-types/jpeg.js +9 -4
  223. package/dist/file-types/pdf.js +7 -3
  224. package/dist/file-types/png.js +9 -4
  225. package/dist/file-types/webp.js +7 -3
  226. package/dist/forward-controller.js +5 -1
  227. package/dist/get-audio-codec.js +38 -25
  228. package/dist/get-container.js +10 -5
  229. package/dist/get-dimensions.js +13 -8
  230. package/dist/get-duration.js +34 -27
  231. package/dist/get-fields-from-callbacks.d.ts +2 -1
  232. package/dist/get-fields-from-callbacks.js +5 -1
  233. package/dist/get-fps.js +34 -24
  234. package/dist/get-is-hdr.js +10 -5
  235. package/dist/get-keyframes.js +11 -6
  236. package/dist/get-location.js +9 -4
  237. package/dist/get-number-of-audio-channels.js +7 -2
  238. package/dist/get-sample-aspect-ratio.js +30 -17
  239. package/dist/get-sample-positions-from-lpcm.js +9 -5
  240. package/dist/get-sample-positions.js +5 -1
  241. package/dist/get-sample-rate.js +7 -2
  242. package/dist/get-seeking-info.d.ts +4 -0
  243. package/dist/get-seeking-info.js +22 -0
  244. package/dist/get-tracks.js +40 -29
  245. package/dist/get-video-codec.js +34 -26
  246. package/dist/has-all-info.d.ts +3 -5
  247. package/dist/has-all-info.js +39 -35
  248. package/dist/index.d.ts +53 -14
  249. package/dist/index.js +47 -32
  250. package/dist/init-video.d.ts +1 -4
  251. package/dist/init-video.js +29 -24
  252. package/dist/internal-parse-media.js +40 -199
  253. package/dist/is-audio-structure.js +5 -1
  254. package/dist/{buffer-iterator.d.ts → iterator/buffer-iterator.d.ts} +12 -15
  255. package/dist/{buffer-iterator.js → iterator/buffer-iterator.js} +16 -119
  256. package/dist/iterator/buffer-manager.d.ts +18 -0
  257. package/dist/iterator/buffer-manager.js +87 -0
  258. package/dist/iterator/offset-counter.d.ts +10 -0
  259. package/dist/iterator/offset-counter.js +31 -0
  260. package/dist/log.js +12 -8
  261. package/dist/make-hvc1-codec-strings.d.ts +1 -1
  262. package/dist/make-hvc1-codec-strings.js +5 -1
  263. package/dist/make-progress-object.d.ts +6 -0
  264. package/dist/make-progress-object.js +13 -0
  265. package/dist/media-parser-controller.d.ts +3 -0
  266. package/dist/media-parser-controller.js +15 -7
  267. package/dist/metadata/get-metadata.js +22 -17
  268. package/dist/metadata/metadata-from-iso.js +17 -12
  269. package/dist/metadata/metadata-from-matroska.js +7 -3
  270. package/dist/metadata/metadata-from-riff.js +7 -3
  271. package/dist/node-writer.js +17 -1
  272. package/dist/node.js +17 -1
  273. package/dist/options.d.ts +1 -61
  274. package/dist/options.js +2 -1
  275. package/dist/parse-loop.d.ts +8 -0
  276. package/dist/parse-loop.js +93 -0
  277. package/dist/parse-media-on-worker-entry.d.ts +2 -1
  278. package/dist/parse-media-on-worker-entry.js +7 -3
  279. package/dist/parse-media.js +12 -8
  280. package/dist/parse-result.js +2 -1
  281. package/dist/pause-signal.js +5 -1
  282. package/dist/perform-seek.d.ts +2 -7
  283. package/dist/perform-seek.js +29 -26
  284. package/dist/print-timings.d.ts +2 -0
  285. package/dist/print-timings.js +12 -0
  286. package/dist/readers/fetch/get-body-and-reader.js +5 -1
  287. package/dist/readers/fetch/resolve-url.js +5 -1
  288. package/dist/readers/from-fetch.js +21 -14
  289. package/dist/readers/from-node.js +23 -17
  290. package/dist/readers/from-web-file.js +13 -7
  291. package/dist/readers/reader.js +2 -1
  292. package/dist/readers/universal.js +16 -13
  293. package/dist/readers/web.js +12 -9
  294. package/dist/register-track.js +18 -9
  295. package/dist/remotion-license-acknowledge.js +8 -4
  296. package/dist/run-parse-iteration.d.ts +1 -4
  297. package/dist/run-parse-iteration.js +25 -24
  298. package/dist/samples-from-moof.js +10 -6
  299. package/dist/seek-backwards.d.ts +2 -0
  300. package/dist/seek-backwards.js +26 -0
  301. package/dist/seek-forwards.d.ts +2 -0
  302. package/dist/seek-forwards.js +28 -0
  303. package/dist/seek-signal.d.ts +22 -0
  304. package/dist/seek-signal.js +26 -0
  305. package/dist/seeking-info.d.ts +8 -0
  306. package/dist/seeking-info.js +2 -0
  307. package/dist/skip.js +5 -1
  308. package/dist/state/aac-state.js +5 -1
  309. package/dist/state/can-skip-tracks.d.ts +2 -2
  310. package/dist/state/can-skip-tracks.js +12 -4
  311. package/dist/state/emitted-fields.d.ts +1 -1
  312. package/dist/state/emitted-fields.js +5 -1
  313. package/dist/state/flac-state.js +5 -1
  314. package/dist/state/has-tracks-section.d.ts +2 -1
  315. package/dist/state/has-tracks-section.js +7 -3
  316. package/dist/state/images.js +5 -1
  317. package/dist/state/iso-base-media/cached-sample-positions.js +13 -8
  318. package/dist/state/iso-base-media/iso-state.js +9 -5
  319. package/dist/state/iso-base-media/moov-box.js +5 -1
  320. package/dist/state/keyframes.js +5 -1
  321. package/dist/state/m3u-state.js +9 -5
  322. package/dist/state/may-skip-video-data.js +7 -3
  323. package/dist/state/mp3.js +5 -1
  324. package/dist/state/need-samples-for-fields.d.ts +1 -1
  325. package/dist/state/need-samples-for-fields.js +5 -1
  326. package/dist/state/parser-state.d.ts +38 -8
  327. package/dist/state/parser-state.js +59 -35
  328. package/dist/state/riff.js +5 -1
  329. package/dist/state/sample-callbacks.d.ts +8 -3
  330. package/dist/state/sample-callbacks.js +27 -10
  331. package/dist/state/slow-duration-fps.js +5 -1
  332. package/dist/state/structure.js +5 -1
  333. package/dist/state/timings.d.ts +8 -0
  334. package/dist/state/timings.js +13 -0
  335. package/dist/state/transport-stream.js +7 -3
  336. package/dist/state/video-section.d.ts +1 -1
  337. package/dist/state/video-section.js +5 -1
  338. package/dist/state/webm.d.ts +1 -1
  339. package/dist/state/webm.js +9 -5
  340. package/dist/throttled-progress.d.ts +2 -3
  341. package/dist/throttled-progress.js +5 -1
  342. package/dist/truthy.js +4 -1
  343. package/dist/universal.js +5 -1
  344. package/dist/version.d.ts +1 -1
  345. package/dist/version.js +4 -1
  346. package/dist/web.js +5 -1
  347. package/dist/webcodec-sample-types.js +2 -1
  348. package/dist/work-on-seek-request.d.ts +2 -0
  349. package/dist/work-on-seek-request.js +43 -0
  350. package/dist/worker/forward-controller.js +7 -3
  351. package/dist/worker/serialize-error.js +19 -14
  352. package/dist/worker/worker-types.d.ts +2 -1
  353. package/dist/worker/worker-types.js +2 -1
  354. package/dist/worker-server-entry.js +5 -3
  355. package/dist/worker-server.js +16 -12
  356. package/dist/worker-web-entry.js +5 -3
  357. package/dist/worker.d.ts +3 -2
  358. package/dist/worker.js +11 -2
  359. package/dist/writers/node.js +23 -16
  360. package/dist/writers/writer.js +2 -1
  361. package/package.json +10 -10
  362. package/dist/parse-media-on-server-worker.d.ts +0 -2
  363. package/dist/parse-media-on-server-worker.js +0 -4
  364. package/dist/parse-media-on-web-worker.d.ts +0 -2
  365. package/dist/parse-media-on-web-worker.js +0 -4
@@ -1,70 +1,14 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _OffsetCounter_offset, _OffsetCounter_discardedBytes;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getArrayBufferIterator = void 0;
13
4
  /* eslint-disable @typescript-eslint/no-use-before-define */
14
- import { knownIdsWithOneLength, knownIdsWithThreeLength, knownIdsWithTwoLength, } from './containers/webm/segments/all-segments';
15
- import { detectFileType } from './file-types';
16
- export class OffsetCounter {
17
- constructor(initial) {
18
- _OffsetCounter_offset.set(this, void 0);
19
- _OffsetCounter_discardedBytes.set(this, void 0);
20
- __classPrivateFieldSet(this, _OffsetCounter_offset, initial, "f");
21
- __classPrivateFieldSet(this, _OffsetCounter_discardedBytes, 0, "f");
22
- }
23
- increment(amount) {
24
- if (amount < 0) {
25
- throw new Error('Cannot increment by a negative amount: ' + amount);
26
- }
27
- __classPrivateFieldSet(this, _OffsetCounter_offset, __classPrivateFieldGet(this, _OffsetCounter_offset, "f") + amount, "f");
28
- }
29
- getOffset() {
30
- return __classPrivateFieldGet(this, _OffsetCounter_offset, "f");
31
- }
32
- getDiscardedOffset() {
33
- return __classPrivateFieldGet(this, _OffsetCounter_offset, "f") - __classPrivateFieldGet(this, _OffsetCounter_discardedBytes, "f");
34
- }
35
- setDiscardedOffset(offset) {
36
- __classPrivateFieldSet(this, _OffsetCounter_discardedBytes, offset, "f");
37
- }
38
- getDiscardedBytes() {
39
- return __classPrivateFieldGet(this, _OffsetCounter_discardedBytes, "f");
40
- }
41
- discardBytes(amount) {
42
- __classPrivateFieldSet(this, _OffsetCounter_discardedBytes, __classPrivateFieldGet(this, _OffsetCounter_discardedBytes, "f") + amount, "f");
43
- }
44
- decrement(amount) {
45
- if (amount < 0) {
46
- throw new Error('Cannot decrement by a negative amount');
47
- }
48
- __classPrivateFieldSet(this, _OffsetCounter_offset, __classPrivateFieldGet(this, _OffsetCounter_offset, "f") - amount, "f");
49
- }
50
- }
51
- _OffsetCounter_offset = new WeakMap(), _OffsetCounter_discardedBytes = new WeakMap();
52
- const makeOffsetCounter = () => {
53
- return new OffsetCounter(0);
54
- };
55
- export const getArrayBufferIterator = (initialData, maxBytes) => {
56
- const buf = new ArrayBuffer(initialData.byteLength, {
57
- maxByteLength: maxBytes === null
58
- ? initialData.byteLength
59
- : Math.min(maxBytes, 2 ** 32),
60
- });
61
- if (!buf.resize) {
62
- throw new Error('`ArrayBuffer.resize` is not supported in this Runtime. On the server: Use at least Node.js 20 or Bun. In the browser: Chrome 111, Edge 111, Safari 16.4, Firefox 128, Opera 111');
63
- }
64
- let uintArray = new Uint8Array(buf);
65
- uintArray.set(initialData);
66
- let view = new DataView(uintArray.buffer);
67
- const counter = makeOffsetCounter();
5
+ const all_segments_1 = require("../containers/webm/segments/all-segments");
6
+ const file_types_1 = require("../file-types");
7
+ const buffer_manager_1 = require("./buffer-manager");
8
+ const offset_counter_1 = require("./offset-counter");
9
+ const getArrayBufferIterator = (initialData, maxBytes) => {
10
+ const counter = (0, offset_counter_1.makeOffsetCounter)(0);
11
+ const { uintArray, view, addData, destroy, removeBytesRead, skipTo, replaceData, } = (0, buffer_manager_1.bufferManager)({ initialData, maxBytes, counter });
68
12
  const startCheckpoint = () => {
69
13
  const checkpoint = counter.getOffset();
70
14
  return {
@@ -209,54 +153,9 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
209
153
  counter.increment(4);
210
154
  return val;
211
155
  };
212
- const addData = (newData) => {
213
- const oldLength = buf.byteLength;
214
- const newLength = oldLength + newData.byteLength;
215
- if (newLength < oldLength) {
216
- throw new Error('Cannot decrement size');
217
- }
218
- if (newLength > (maxBytes !== null && maxBytes !== void 0 ? maxBytes : Infinity)) {
219
- throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
220
- }
221
- buf.resize(newLength);
222
- const newArray = new Uint8Array(buf);
223
- newArray.set(newData, oldLength);
224
- uintArray = newArray;
225
- view = new DataView(uintArray.buffer);
226
- };
227
156
  const bytesRemaining = () => {
228
157
  return uintArray.byteLength - counter.getDiscardedOffset();
229
158
  };
230
- const removeBytesRead = (force, mode) => {
231
- const bytesToRemove = counter.getDiscardedOffset();
232
- // Only do this operation if it is really worth it 😇
233
- // let's set the threshold to 3MB
234
- if (bytesToRemove < 3000000 && !force) {
235
- return { bytesRemoved: 0, removedData: null };
236
- }
237
- // Don't remove if the data is not even available
238
- if (view.byteLength < bytesToRemove && !force) {
239
- return { bytesRemoved: 0, removedData: null };
240
- }
241
- counter.discardBytes(bytesToRemove);
242
- const removedData = mode === 'download' ? uintArray.slice(0, bytesToRemove) : null;
243
- const newData = uintArray.slice(bytesToRemove);
244
- uintArray.set(newData);
245
- buf.resize(newData.byteLength);
246
- view = new DataView(uintArray.buffer);
247
- return { bytesRemoved: bytesToRemove, removedData };
248
- };
249
- const skipTo = (offset) => {
250
- const becomesSmaller = offset < counter.getOffset();
251
- if (!becomesSmaller) {
252
- const currentOffset = counter.getOffset();
253
- counter.increment(offset - currentOffset);
254
- return;
255
- }
256
- buf.resize(0);
257
- counter.decrement(counter.getOffset() - offset);
258
- counter.setDiscardedOffset(offset);
259
- };
260
159
  const readExpGolomb = () => {
261
160
  if (!bitReadingMode) {
262
161
  throw new Error('Not in bit reading mode');
@@ -356,10 +255,6 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
356
255
  }
357
256
  return result;
358
257
  };
359
- const destroy = () => {
360
- uintArray = new Uint8Array(0);
361
- buf.resize(0);
362
- };
363
258
  return {
364
259
  startReadingBits,
365
260
  stopReadingBits,
@@ -381,7 +276,7 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
381
276
  return new TextDecoder().decode(atom);
382
277
  },
383
278
  detectFileType: () => {
384
- return detectFileType(uintArray);
279
+ return (0, file_types_1.detectFileType)(uintArray);
385
280
  },
386
281
  getPaddedFourByteNumber,
387
282
  getMatroskaSegmentId: () => {
@@ -396,7 +291,7 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
396
291
  .join('')}`;
397
292
  // Catch void block
398
293
  // https://www.matroska.org/technical/elements.html
399
- if (knownIdsWithOneLength.includes(firstOneString)) {
294
+ if (all_segments_1.knownIdsWithOneLength.includes(firstOneString)) {
400
295
  return firstOneString;
401
296
  }
402
297
  if (bytesRemaining() === 0) {
@@ -408,7 +303,7 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
408
303
  return b.toString(16).padStart(2, '0');
409
304
  })
410
305
  .join('')}`;
411
- if (knownIdsWithTwoLength.includes(firstTwoString)) {
306
+ if (all_segments_1.knownIdsWithTwoLength.includes(firstTwoString)) {
412
307
  return firstTwoString;
413
308
  }
414
309
  if (bytesRemaining() === 0) {
@@ -420,7 +315,7 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
420
315
  return b.toString(16).padStart(2, '0');
421
316
  })
422
317
  .join('')}`;
423
- if (knownIdsWithThreeLength.includes(firstThreeString)) {
318
+ if (all_segments_1.knownIdsWithThreeLength.includes(firstThreeString)) {
424
319
  return firstThreeString;
425
320
  }
426
321
  if (bytesRemaining() === 0) {
@@ -579,5 +474,7 @@ export const getArrayBufferIterator = (initialData, maxBytes) => {
579
474
  getFlacCodecNumber,
580
475
  readUntilLineEnd,
581
476
  getSyncSafeInt32,
477
+ replaceData,
582
478
  };
583
479
  };
480
+ exports.getArrayBufferIterator = getArrayBufferIterator;
@@ -0,0 +1,18 @@
1
+ import type { ParseMediaMode } from '../options';
2
+ import type { OffsetCounter } from './offset-counter';
3
+ export declare const bufferManager: ({ initialData, maxBytes, counter, }: {
4
+ initialData: Uint8Array;
5
+ maxBytes: number | null;
6
+ counter: OffsetCounter;
7
+ }) => {
8
+ view: DataView;
9
+ uintArray: Uint8Array;
10
+ destroy: () => void;
11
+ addData: (newData: Uint8Array) => void;
12
+ skipTo: (offset: number) => void;
13
+ removeBytesRead: (force: boolean, mode: ParseMediaMode) => {
14
+ bytesRemoved: number;
15
+ removedData: Uint8Array | null;
16
+ };
17
+ replaceData: (newData: Uint8Array, seekTo: number) => void;
18
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bufferManager = void 0;
4
+ const bufferManager = ({ initialData, maxBytes, counter, }) => {
5
+ const buf = new ArrayBuffer(initialData.byteLength, {
6
+ maxByteLength: maxBytes === null
7
+ ? initialData.byteLength
8
+ : Math.min(maxBytes, 2 ** 32),
9
+ });
10
+ if (!buf.resize) {
11
+ throw new Error('`ArrayBuffer.resize` is not supported in this Runtime. On the server: Use at least Node.js 20 or Bun. In the browser: Chrome 111, Edge 111, Safari 16.4, Firefox 128, Opera 111');
12
+ }
13
+ let uintArray = new Uint8Array(buf);
14
+ uintArray.set(initialData);
15
+ let view = new DataView(uintArray.buffer);
16
+ const destroy = () => {
17
+ uintArray = new Uint8Array(0);
18
+ buf.resize(0);
19
+ };
20
+ const flushBytesRead = (force, mode) => {
21
+ const bytesToRemove = counter.getDiscardedOffset();
22
+ // Only do this operation if it is really worth it 😇
23
+ // let's set the threshold to 3MB
24
+ if (bytesToRemove < 3000000 && !force) {
25
+ return { bytesRemoved: 0, removedData: null };
26
+ }
27
+ // Don't remove if the data is not even available
28
+ if (view.byteLength < bytesToRemove && !force) {
29
+ return { bytesRemoved: 0, removedData: null };
30
+ }
31
+ counter.discardBytes(bytesToRemove);
32
+ const removedData = mode === 'download' ? uintArray.slice(0, bytesToRemove) : null;
33
+ const newData = uintArray.slice(bytesToRemove);
34
+ uintArray.set(newData);
35
+ buf.resize(newData.byteLength);
36
+ view = new DataView(uintArray.buffer);
37
+ return { bytesRemoved: bytesToRemove, removedData };
38
+ };
39
+ const skipTo = (offset) => {
40
+ const becomesSmaller = offset < counter.getOffset();
41
+ if (becomesSmaller) {
42
+ const toDecrement = counter.getOffset() - offset;
43
+ if (toDecrement > counter.getDiscardedOffset()) {
44
+ throw new Error('Cannot count backwards, data has already been flushed');
45
+ }
46
+ counter.decrement(toDecrement);
47
+ }
48
+ const currentOffset = counter.getOffset();
49
+ counter.increment(offset - currentOffset);
50
+ };
51
+ const addData = (newData) => {
52
+ const oldLength = buf.byteLength;
53
+ const newLength = oldLength + newData.byteLength;
54
+ if (newLength < oldLength) {
55
+ throw new Error('Cannot decrement size');
56
+ }
57
+ if (newLength > (maxBytes !== null && maxBytes !== void 0 ? maxBytes : Infinity)) {
58
+ throw new Error(`Exceeded maximum byte length ${maxBytes} with ${newLength}`);
59
+ }
60
+ buf.resize(newLength);
61
+ uintArray = new Uint8Array(buf);
62
+ uintArray.set(newData, oldLength);
63
+ view = new DataView(uintArray.buffer);
64
+ };
65
+ const replaceData = (newData, seekTo) => {
66
+ buf.resize(newData.byteLength);
67
+ uintArray = new Uint8Array(buf);
68
+ uintArray.set(newData);
69
+ view = new DataView(uintArray.buffer);
70
+ // no more dicarded bytes
71
+ counter.setDiscardedOffset(0);
72
+ // reset counter to 0
73
+ counter.decrement(counter.getOffset());
74
+ // seek to the new position
75
+ counter.increment(seekTo);
76
+ };
77
+ return {
78
+ view,
79
+ uintArray,
80
+ destroy,
81
+ addData,
82
+ skipTo,
83
+ removeBytesRead: flushBytesRead,
84
+ replaceData,
85
+ };
86
+ };
87
+ exports.bufferManager = bufferManager;
@@ -0,0 +1,10 @@
1
+ export declare const makeOffsetCounter: (initial: number) => {
2
+ getOffset: () => number;
3
+ discardBytes: (bytes: number) => void;
4
+ increment: (bytes: number) => void;
5
+ getDiscardedBytes: () => number;
6
+ setDiscardedOffset: (bytes: number) => void;
7
+ getDiscardedOffset: () => number;
8
+ decrement: (bytes: number) => void;
9
+ };
10
+ export type OffsetCounter = ReturnType<typeof makeOffsetCounter>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeOffsetCounter = void 0;
4
+ const makeOffsetCounter = (initial) => {
5
+ let offset = initial;
6
+ let discardedBytes = 0;
7
+ return {
8
+ getOffset: () => offset,
9
+ discardBytes: (bytes) => {
10
+ discardedBytes += bytes;
11
+ },
12
+ increment: (bytes) => {
13
+ if (bytes < 0) {
14
+ throw new Error('Cannot increment by a negative amount: ' + bytes);
15
+ }
16
+ offset += bytes;
17
+ },
18
+ getDiscardedBytes: () => discardedBytes,
19
+ setDiscardedOffset: (bytes) => {
20
+ discardedBytes = bytes;
21
+ },
22
+ getDiscardedOffset: () => offset - discardedBytes,
23
+ decrement: (bytes) => {
24
+ if (bytes < 0) {
25
+ throw new Error('Cannot decrement by a negative amount: ' + bytes);
26
+ }
27
+ offset -= bytes;
28
+ },
29
+ };
30
+ };
31
+ exports.makeOffsetCounter = makeOffsetCounter;
package/dist/log.js CHANGED
@@ -1,29 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Log = exports.isEqualOrBelowLogLevel = exports.logLevels = void 0;
1
4
  /* eslint-disable no-console */
2
- export const logLevels = ['trace', 'verbose', 'info', 'warn', 'error'];
5
+ exports.logLevels = ['trace', 'verbose', 'info', 'warn', 'error'];
3
6
  const getNumberForLogLevel = (level) => {
4
- return logLevels.indexOf(level);
7
+ return exports.logLevels.indexOf(level);
5
8
  };
6
- export const isEqualOrBelowLogLevel = (currentLevel, level) => {
9
+ const isEqualOrBelowLogLevel = (currentLevel, level) => {
7
10
  return getNumberForLogLevel(currentLevel) <= getNumberForLogLevel(level);
8
11
  };
9
- export const Log = {
12
+ exports.isEqualOrBelowLogLevel = isEqualOrBelowLogLevel;
13
+ exports.Log = {
10
14
  trace: (logLevel, ...args) => {
11
- if (isEqualOrBelowLogLevel(logLevel, 'trace')) {
15
+ if ((0, exports.isEqualOrBelowLogLevel)(logLevel, 'trace')) {
12
16
  return console.log(...args);
13
17
  }
14
18
  },
15
19
  verbose: (logLevel, ...args) => {
16
- if (isEqualOrBelowLogLevel(logLevel, 'verbose')) {
20
+ if ((0, exports.isEqualOrBelowLogLevel)(logLevel, 'verbose')) {
17
21
  return console.log(...args);
18
22
  }
19
23
  },
20
24
  info: (logLevel, ...args) => {
21
- if (isEqualOrBelowLogLevel(logLevel, 'info')) {
25
+ if ((0, exports.isEqualOrBelowLogLevel)(logLevel, 'info')) {
22
26
  return console.log(...args);
23
27
  }
24
28
  },
25
29
  warn: (logLevel, ...args) => {
26
- if (isEqualOrBelowLogLevel(logLevel, 'warn')) {
30
+ if ((0, exports.isEqualOrBelowLogLevel)(logLevel, 'warn')) {
27
31
  return console.warn(...args);
28
32
  }
29
33
  },
@@ -1,2 +1,2 @@
1
- import type { BufferIterator } from './buffer-iterator';
1
+ import type { BufferIterator } from './iterator/buffer-iterator';
2
2
  export declare const getHvc1CodecString: (data: BufferIterator) => string;
@@ -1,4 +1,7 @@
1
- export const getHvc1CodecString = (data) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHvc1CodecString = void 0;
4
+ const getHvc1CodecString = (data) => {
2
5
  const configurationVersion = data.getUint8();
3
6
  if (configurationVersion !== 1) {
4
7
  throw new Error(`Unsupported HVCC version ${configurationVersion}`);
@@ -41,3 +44,4 @@ export const getHvc1CodecString = (data) => {
41
44
  }
42
45
  return `${profileSpaceChar}${generalProfileIdc.toString(16)}.${profileId.toString(16)}.${generalTierChar}${generalLevelIdc}${generalConstraintString ? '.' : ''}${generalConstraintString}`;
43
46
  };
47
+ exports.getHvc1CodecString = getHvc1CodecString;
@@ -0,0 +1,6 @@
1
+ import type { ParserState } from './state/parser-state';
2
+ export declare const makeProgressObject: (state: ParserState) => {
3
+ bytes: number;
4
+ percentage: number | null;
5
+ totalBytes: number;
6
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeProgressObject = void 0;
4
+ const makeProgressObject = (state) => {
5
+ return {
6
+ bytes: state.iterator.counter.getOffset(),
7
+ percentage: state.contentLength
8
+ ? state.iterator.counter.getOffset() / state.contentLength
9
+ : null,
10
+ totalBytes: state.contentLength,
11
+ };
12
+ };
13
+ exports.makeProgressObject = makeProgressObject;
@@ -1,9 +1,11 @@
1
1
  import { MediaParserEmitter } from './emitter';
2
2
  import type { PauseSignal } from './pause-signal';
3
+ import type { SeekSignal } from './seek-signal';
3
4
  export type MediaParserController = {
4
5
  abort: (reason?: any) => void;
5
6
  pause: PauseSignal['pause'];
6
7
  resume: PauseSignal['resume'];
8
+ _experimentalSeek: SeekSignal['seek'];
7
9
  addEventListener: MediaParserEmitter['addEventListener'];
8
10
  removeEventListener: MediaParserEmitter['removeEventListener'];
9
11
  /**
@@ -12,6 +14,7 @@ export type MediaParserController = {
12
14
  _internals: {
13
15
  signal: AbortSignal;
14
16
  checkForAbortAndPause: () => Promise<void>;
17
+ seekSignal: SeekSignal;
15
18
  };
16
19
  };
17
20
  export declare const mediaParserController: () => MediaParserController;
@@ -1,13 +1,18 @@
1
- import { MediaParserEmitter } from './emitter';
2
- import { MediaParserAbortError } from './errors';
3
- import { makePauseSignal } from './pause-signal';
4
- export const mediaParserController = () => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mediaParserController = void 0;
4
+ const emitter_1 = require("./emitter");
5
+ const errors_1 = require("./errors");
6
+ const pause_signal_1 = require("./pause-signal");
7
+ const seek_signal_1 = require("./seek-signal");
8
+ const mediaParserController = () => {
5
9
  const abortController = new AbortController();
6
- const emitter = new MediaParserEmitter();
7
- const pauseSignal = makePauseSignal(emitter);
10
+ const emitter = new emitter_1.MediaParserEmitter();
11
+ const pauseSignal = (0, pause_signal_1.makePauseSignal)(emitter);
12
+ const seekSignal = (0, seek_signal_1.makeSeekSignal)();
8
13
  const checkForAbortAndPause = async () => {
9
14
  if (abortController.signal.aborted) {
10
- throw new MediaParserAbortError('Aborted');
15
+ throw new errors_1.MediaParserAbortError('Aborted');
11
16
  }
12
17
  await pauseSignal.waitUntilResume();
13
18
  };
@@ -17,6 +22,7 @@ export const mediaParserController = () => {
17
22
  abortController.abort(reason);
18
23
  emitter.dispatchAbort(reason);
19
24
  },
25
+ _experimentalSeek: seekSignal.seek,
20
26
  pause: pauseSignal.pause,
21
27
  resume: pauseSignal.resume,
22
28
  addEventListener: emitter.addEventListener,
@@ -24,6 +30,8 @@ export const mediaParserController = () => {
24
30
  _internals: {
25
31
  signal: abortController.signal,
26
32
  checkForAbortAndPause,
33
+ seekSignal,
27
34
  },
28
35
  };
29
36
  };
37
+ exports.mediaParserController = mediaParserController;
@@ -1,56 +1,60 @@
1
- import { getMetadataFromFlac } from '../containers/flac/get-metadata-from-flac';
2
- import { getMetadataFromMp3 } from '../containers/mp3/get-metadata-from-mp3';
3
- import { getMetadataFromWav } from '../containers/wav/get-metadata-from-wav';
4
- import { getMetadataFromIsoBase } from './metadata-from-iso';
5
- import { getMetadataFromMatroska } from './metadata-from-matroska';
6
- import { getMetadataFromRiff } from './metadata-from-riff';
7
- export const getMetadata = (state) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasMetadata = exports.getMetadata = void 0;
4
+ const get_metadata_from_flac_1 = require("../containers/flac/get-metadata-from-flac");
5
+ const get_metadata_from_mp3_1 = require("../containers/mp3/get-metadata-from-mp3");
6
+ const get_metadata_from_wav_1 = require("../containers/wav/get-metadata-from-wav");
7
+ const metadata_from_iso_1 = require("./metadata-from-iso");
8
+ const metadata_from_matroska_1 = require("./metadata-from-matroska");
9
+ const metadata_from_riff_1 = require("./metadata-from-riff");
10
+ const getMetadata = (state) => {
8
11
  var _a, _b;
9
12
  const structure = state.getStructure();
10
13
  if (structure.type === 'matroska') {
11
- return getMetadataFromMatroska(structure);
14
+ return (0, metadata_from_matroska_1.getMetadataFromMatroska)(structure);
12
15
  }
13
16
  if (structure.type === 'riff') {
14
- return getMetadataFromRiff(structure);
17
+ return (0, metadata_from_riff_1.getMetadataFromRiff)(structure);
15
18
  }
16
19
  if (structure.type === 'transport-stream' || structure.type === 'm3u') {
17
20
  return [];
18
21
  }
19
22
  if (structure.type === 'mp3') {
20
- const tags = getMetadataFromMp3(structure);
23
+ const tags = (0, get_metadata_from_mp3_1.getMetadataFromMp3)(structure);
21
24
  if (tags === null) {
22
25
  throw new Error('Failed to get metadata from mp3');
23
26
  }
24
27
  return tags;
25
28
  }
26
29
  if (structure.type === 'wav') {
27
- return (_a = getMetadataFromWav(structure)) !== null && _a !== void 0 ? _a : [];
30
+ return (_a = (0, get_metadata_from_wav_1.getMetadataFromWav)(structure)) !== null && _a !== void 0 ? _a : [];
28
31
  }
29
32
  if (structure.type === 'aac') {
30
33
  return [];
31
34
  }
32
35
  if (structure.type === 'flac') {
33
- return (_b = getMetadataFromFlac(structure)) !== null && _b !== void 0 ? _b : [];
36
+ return (_b = (0, get_metadata_from_flac_1.getMetadataFromFlac)(structure)) !== null && _b !== void 0 ? _b : [];
34
37
  }
35
38
  if (structure.type === 'iso-base-media') {
36
- return getMetadataFromIsoBase(state);
39
+ return (0, metadata_from_iso_1.getMetadataFromIsoBase)(state);
37
40
  }
38
41
  throw new Error('Unknown container ' + structure);
39
42
  };
43
+ exports.getMetadata = getMetadata;
40
44
  // TODO: This forces some containers to check the whole file
41
45
  // we can do this better! skip over video data
42
- export const hasMetadata = (structure) => {
46
+ const hasMetadata = (structure) => {
43
47
  if (structure.type === 'mp3') {
44
- return getMetadataFromMp3(structure) !== null;
48
+ return (0, get_metadata_from_mp3_1.getMetadataFromMp3)(structure) !== null;
45
49
  }
46
50
  if (structure.type === 'wav') {
47
- return getMetadataFromWav(structure) !== null;
51
+ return (0, get_metadata_from_wav_1.getMetadataFromWav)(structure) !== null;
48
52
  }
49
53
  if (structure.type === 'm3u' || structure.type === 'transport-stream') {
50
54
  return true;
51
55
  }
52
56
  if (structure.type === 'flac') {
53
- return getMetadataFromFlac(structure) !== null;
57
+ return (0, get_metadata_from_flac_1.getMetadataFromFlac)(structure) !== null;
54
58
  }
55
59
  if (structure.type === 'iso-base-media') {
56
60
  return false;
@@ -66,3 +70,4 @@ export const hasMetadata = (structure) => {
66
70
  }
67
71
  throw new Error('Unknown container ' + structure);
68
72
  };
73
+ exports.hasMetadata = hasMetadata;
@@ -1,5 +1,8 @@
1
- import { getMoovBoxFromState, getTkhdBox, getTraks, } from '../containers/iso-base-media/traversal';
2
- import { truthy } from '../truthy';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMetadataFromIsoBase = exports.parseIsoMetaBox = void 0;
4
+ const traversal_1 = require("../containers/iso-base-media/traversal");
5
+ const truthy_1 = require("../truthy");
3
6
  /**
4
7
  *
5
8
  * @param ilstBox ©ART - Artist
@@ -82,9 +85,9 @@ const parseIlstBoxWithoutKeys = (ilstBox) => {
82
85
  value: entry.value.value,
83
86
  };
84
87
  })
85
- .filter(truthy);
88
+ .filter(truthy_1.truthy);
86
89
  };
87
- export const parseIsoMetaBox = (meta, trackId) => {
90
+ const parseIsoMetaBox = (meta, trackId) => {
88
91
  const ilstBox = meta.children.find((b) => b.type === 'ilst-box');
89
92
  const keysBox = meta.children.find((b) => b.type === 'keys-box');
90
93
  if (!ilstBox || !keysBox) {
@@ -111,12 +114,13 @@ export const parseIsoMetaBox = (meta, trackId) => {
111
114
  }
112
115
  return entries;
113
116
  };
114
- export const getMetadataFromIsoBase = (state) => {
115
- const moov = getMoovBoxFromState(state);
117
+ exports.parseIsoMetaBox = parseIsoMetaBox;
118
+ const getMetadataFromIsoBase = (state) => {
119
+ const moov = (0, traversal_1.getMoovBoxFromState)(state);
116
120
  if (!moov) {
117
121
  return [];
118
122
  }
119
- const traks = getTraks(moov);
123
+ const traks = (0, traversal_1.getTraks)(moov);
120
124
  const meta = moov.children.find((b) => b.type === 'regular-box' && b.boxType === 'meta');
121
125
  const udta = moov.children.find((b) => b.type === 'regular-box' && b.boxType === 'udta');
122
126
  const metaInUdta = udta === null || udta === void 0 ? void 0 : udta.children.find((b) => {
@@ -126,18 +130,19 @@ export const getMetadataFromIsoBase = (state) => {
126
130
  .map((t) => {
127
131
  const metaBox = t.children.find((child) => child.type === 'regular-box' && child.boxType === 'meta');
128
132
  if (metaBox) {
129
- const tkhd = getTkhdBox(t);
133
+ const tkhd = (0, traversal_1.getTkhdBox)(t);
130
134
  if (!tkhd) {
131
135
  throw new Error('No tkhd box found');
132
136
  }
133
- return parseIsoMetaBox(metaBox, tkhd.trackId);
137
+ return (0, exports.parseIsoMetaBox)(metaBox, tkhd.trackId);
134
138
  }
135
139
  return null;
136
140
  })
137
- .filter(truthy);
141
+ .filter(truthy_1.truthy);
138
142
  return [
139
- ...(meta ? parseIsoMetaBox(meta, null) : []),
140
- ...(metaInUdta ? parseIsoMetaBox(metaInUdta, null) : []),
143
+ ...(meta ? (0, exports.parseIsoMetaBox)(meta, null) : []),
144
+ ...(metaInUdta ? (0, exports.parseIsoMetaBox)(metaInUdta, null) : []),
141
145
  ...metaInTracks.flat(1),
142
146
  ];
143
147
  };
148
+ exports.getMetadataFromIsoBase = getMetadataFromIsoBase;