@remotion/media-parser 4.0.270 → 4.0.271

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 (332) hide show
  1. package/dist/aac-codecprivate.js +6 -13
  2. package/dist/add-avc-profile-to-track.js +5 -9
  3. package/dist/buffer-iterator.js +8 -13
  4. package/dist/combine-uint8-arrays.js +1 -5
  5. package/dist/containers/aac/parse-aac.js +9 -13
  6. package/dist/containers/aac/types.js +1 -2
  7. package/dist/containers/avc/codec-string.js +1 -5
  8. package/dist/containers/avc/color.js +3 -9
  9. package/dist/containers/avc/create-sps-pps-data.js +5 -9
  10. package/dist/containers/avc/interpret-sps.js +7 -13
  11. package/dist/containers/avc/key.js +1 -5
  12. package/dist/containers/avc/parse-avc.js +3 -7
  13. package/dist/containers/avc/sps-and-pps.js +1 -5
  14. package/dist/containers/flac/get-block-size.js +1 -5
  15. package/dist/containers/flac/get-channel-count.js +1 -5
  16. package/dist/containers/flac/get-duration-from-flac.js +1 -5
  17. package/dist/containers/flac/get-metadata-from-flac.js +1 -5
  18. package/dist/containers/flac/get-sample-rate.js +1 -5
  19. package/dist/containers/flac/parse-flac-frame.js +14 -19
  20. package/dist/containers/flac/parse-flac.js +15 -19
  21. package/dist/containers/flac/parse-header.js +1 -5
  22. package/dist/containers/flac/parse-metadata.js +1 -5
  23. package/dist/containers/flac/parse-streaminfo.js +3 -7
  24. package/dist/containers/flac/parse-unknown-block.js +1 -5
  25. package/dist/containers/flac/types.d.ts +2 -2
  26. package/dist/containers/flac/types.js +1 -2
  27. package/dist/containers/iso-base-media/base-media-box.js +1 -2
  28. package/dist/containers/iso-base-media/base-type.js +1 -2
  29. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +1 -5
  30. package/dist/containers/iso-base-media/esds/esds-descriptors.js +5 -10
  31. package/dist/containers/iso-base-media/esds/esds.js +3 -7
  32. package/dist/containers/iso-base-media/ftyp.js +1 -5
  33. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +4 -8
  34. package/dist/containers/iso-base-media/get-children.js +3 -7
  35. package/dist/containers/iso-base-media/get-keyframes.js +7 -11
  36. package/dist/containers/iso-base-media/get-moov-atom.js +21 -15
  37. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +20 -24
  38. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.d.ts +1 -1
  39. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +3 -7
  40. package/dist/containers/iso-base-media/make-track.js +30 -34
  41. package/dist/containers/iso-base-media/mdat/mdat.js +16 -20
  42. package/dist/containers/iso-base-media/mdhd.js +1 -5
  43. package/dist/containers/iso-base-media/meta/hdlr.js +1 -5
  44. package/dist/containers/iso-base-media/meta/ilst.js +1 -5
  45. package/dist/containers/iso-base-media/moov/moov.js +3 -7
  46. package/dist/containers/iso-base-media/mvhd.js +7 -11
  47. package/dist/containers/iso-base-media/parse-boxes.js +5 -9
  48. package/dist/containers/iso-base-media/parse-icc-profile.js +4 -8
  49. package/dist/containers/iso-base-media/process-box.js +63 -67
  50. package/dist/containers/iso-base-media/stsd/av1c.js +1 -5
  51. package/dist/containers/iso-base-media/stsd/avcc.js +1 -5
  52. package/dist/containers/iso-base-media/stsd/colr.js +3 -7
  53. package/dist/containers/iso-base-media/stsd/ctts.js +1 -5
  54. package/dist/containers/iso-base-media/stsd/hvcc.js +3 -7
  55. package/dist/containers/iso-base-media/stsd/keys.js +1 -5
  56. package/dist/containers/iso-base-media/stsd/mebx.js +3 -7
  57. package/dist/containers/iso-base-media/stsd/pasp.js +1 -5
  58. package/dist/containers/iso-base-media/stsd/samples.js +8 -13
  59. package/dist/containers/iso-base-media/stsd/stco.js +1 -5
  60. package/dist/containers/iso-base-media/stsd/stsc.js +1 -5
  61. package/dist/containers/iso-base-media/stsd/stsd.js +3 -7
  62. package/dist/containers/iso-base-media/stsd/stss.js +1 -5
  63. package/dist/containers/iso-base-media/stsd/stsz.js +1 -5
  64. package/dist/containers/iso-base-media/stsd/stts.js +1 -5
  65. package/dist/containers/iso-base-media/tfdt.js +1 -5
  66. package/dist/containers/iso-base-media/tfhd.js +1 -5
  67. package/dist/containers/iso-base-media/tkhd.js +4 -8
  68. package/dist/containers/iso-base-media/to-date.js +1 -5
  69. package/dist/containers/iso-base-media/trak/trak.js +3 -7
  70. package/dist/containers/iso-base-media/traversal.d.ts +3 -2
  71. package/dist/containers/iso-base-media/traversal.js +42 -57
  72. package/dist/containers/iso-base-media/trun.js +2 -6
  73. package/dist/containers/iso-base-media/void-box.js +1 -2
  74. package/dist/containers/m3u/after-manifest-fetch.d.ts +5 -3
  75. package/dist/containers/m3u/after-manifest-fetch.js +13 -17
  76. package/dist/containers/m3u/fetch-m3u8-stream.d.ts +5 -1
  77. package/dist/containers/m3u/fetch-m3u8-stream.js +4 -12
  78. package/dist/containers/m3u/get-chunks.d.ts +1 -0
  79. package/dist/containers/m3u/get-chunks.js +6 -6
  80. package/dist/containers/m3u/get-duration-from-m3u.js +4 -8
  81. package/dist/containers/m3u/get-playlist.js +6 -12
  82. package/dist/containers/m3u/get-streams.d.ts +11 -5
  83. package/dist/containers/m3u/get-streams.js +5 -15
  84. package/dist/containers/m3u/iterate-over-segment-files.d.ts +19 -0
  85. package/dist/containers/m3u/iterate-over-segment-files.js +106 -0
  86. package/dist/containers/m3u/parse-directive.js +10 -10
  87. package/dist/containers/m3u/parse-m3u-manifest.js +3 -7
  88. package/dist/containers/m3u/parse-m3u-media-directive.d.ts +1 -0
  89. package/dist/containers/m3u/parse-m3u-media-directive.js +7 -7
  90. package/dist/containers/m3u/parse-m3u.js +13 -13
  91. package/dist/containers/m3u/parse-m3u8-text.js +3 -7
  92. package/dist/containers/m3u/parse-stream-inf.js +2 -7
  93. package/dist/containers/m3u/return-packets.d.ts +1 -1
  94. package/dist/containers/m3u/return-packets.js +14 -5
  95. package/dist/containers/m3u/run-over-m3u.js +10 -13
  96. package/dist/containers/m3u/sample-sorter.js +4 -8
  97. package/dist/containers/m3u/select-stream.d.ts +3 -2
  98. package/dist/containers/m3u/select-stream.js +9 -13
  99. package/dist/containers/m3u/types.d.ts +1 -1
  100. package/dist/containers/m3u/types.js +1 -2
  101. package/dist/containers/mp3/get-duration.js +5 -9
  102. package/dist/containers/mp3/get-frame-length.js +2 -7
  103. package/dist/containers/mp3/get-metadata-from-mp3.d.ts +2 -2
  104. package/dist/containers/mp3/get-metadata-from-mp3.js +1 -5
  105. package/dist/containers/mp3/id3-v1.js +1 -5
  106. package/dist/containers/mp3/id3.js +1 -5
  107. package/dist/containers/mp3/parse-mp3.js +7 -11
  108. package/dist/containers/mp3/parse-mpeg-header.js +10 -14
  109. package/dist/containers/mp3/samples-per-mpeg-file.js +1 -5
  110. package/dist/containers/riff/expect-riff-box.js +11 -15
  111. package/dist/containers/riff/get-duration.js +7 -12
  112. package/dist/containers/riff/get-tracks-from-avi.js +20 -28
  113. package/dist/containers/riff/is-movi.js +1 -5
  114. package/dist/containers/riff/parse-avih.js +1 -5
  115. package/dist/containers/riff/parse-isft.js +1 -5
  116. package/dist/containers/riff/parse-list-box.js +3 -7
  117. package/dist/containers/riff/parse-movi.js +13 -18
  118. package/dist/containers/riff/parse-riff-body.js +9 -13
  119. package/dist/containers/riff/parse-riff-box.js +9 -13
  120. package/dist/containers/riff/parse-riff-header.js +1 -5
  121. package/dist/containers/riff/parse-riff.js +5 -9
  122. package/dist/containers/riff/parse-strf.js +1 -5
  123. package/dist/containers/riff/parse-strh.js +3 -7
  124. package/dist/containers/riff/parse-video-section.js +7 -11
  125. package/dist/containers/riff/riff-box.js +1 -2
  126. package/dist/containers/riff/timescale.js +1 -4
  127. package/dist/containers/riff/traversal.js +7 -15
  128. package/dist/containers/transport-stream/adts-header.js +6 -10
  129. package/dist/containers/transport-stream/boxes.js +1 -2
  130. package/dist/containers/transport-stream/discard-rest-of-packet.js +2 -7
  131. package/dist/containers/transport-stream/find-separator.js +1 -4
  132. package/dist/containers/transport-stream/get-tracks.js +7 -12
  133. package/dist/containers/transport-stream/handle-aac-packet.js +12 -16
  134. package/dist/containers/transport-stream/handle-avc-packet.js +22 -26
  135. package/dist/containers/transport-stream/next-pes-header-store.js +1 -5
  136. package/dist/containers/transport-stream/parse-packet.js +13 -17
  137. package/dist/containers/transport-stream/parse-pat.js +5 -10
  138. package/dist/containers/transport-stream/parse-pes.js +1 -5
  139. package/dist/containers/transport-stream/parse-pmt.js +3 -7
  140. package/dist/containers/transport-stream/parse-stream-packet.js +13 -17
  141. package/dist/containers/transport-stream/parse-transport-stream.js +5 -9
  142. package/dist/containers/transport-stream/process-stream-buffers.js +10 -15
  143. package/dist/containers/transport-stream/traversal.js +4 -10
  144. package/dist/containers/wav/get-duration-from-wav.js +3 -8
  145. package/dist/containers/wav/get-metadata-from-wav.d.ts +2 -2
  146. package/dist/containers/wav/get-metadata-from-wav.js +1 -5
  147. package/dist/containers/wav/parse-data.js +5 -9
  148. package/dist/containers/wav/parse-fmt.js +3 -7
  149. package/dist/containers/wav/parse-header.js +1 -5
  150. package/dist/containers/wav/parse-id3.js +1 -5
  151. package/dist/containers/wav/parse-list.js +1 -5
  152. package/dist/containers/wav/parse-video-section.js +3 -7
  153. package/dist/containers/wav/parse-wav.js +15 -19
  154. package/dist/containers/wav/types.d.ts +2 -2
  155. package/dist/containers/wav/types.js +1 -2
  156. package/dist/containers/webm/allowed-partial-segments.js +1 -4
  157. package/dist/containers/webm/av1-codec-private.js +3 -7
  158. package/dist/containers/webm/color.js +6 -10
  159. package/dist/containers/webm/description.js +6 -10
  160. package/dist/containers/webm/get-ready-tracks.js +13 -18
  161. package/dist/containers/webm/get-sample-from-block.js +12 -16
  162. package/dist/containers/webm/make-track.js +43 -48
  163. package/dist/containers/webm/parse-ebml.js +14 -19
  164. package/dist/containers/webm/parse-webm-header.js +3 -7
  165. package/dist/containers/webm/segments/all-segments.js +168 -173
  166. package/dist/containers/webm/segments/block-simple-block-flags.js +4 -8
  167. package/dist/containers/webm/segments/track-entry.js +1 -5
  168. package/dist/containers/webm/segments.js +9 -13
  169. package/dist/containers/webm/traversal.js +37 -67
  170. package/dist/convert-audio-or-video-sample.js +1 -5
  171. package/dist/download-and-parse-media.js +44 -47
  172. package/dist/emit-available-info.js +38 -38
  173. package/dist/emitter.js +1 -5
  174. package/dist/errors.d.ts +2 -17
  175. package/dist/errors.js +10 -30
  176. package/dist/esm/fetch.mjs +93 -67
  177. package/dist/esm/index.mjs +679 -175
  178. package/dist/esm/node.mjs +59 -36
  179. package/dist/esm/universal.mjs +323 -0
  180. package/dist/esm/web-file.mjs +55 -43
  181. package/dist/esm/web.mjs +257 -0
  182. package/dist/esm/worker-server-entry.mjs +13056 -0
  183. package/dist/esm/worker-server.mjs +12914 -0
  184. package/dist/esm/worker-web-entry.mjs +12969 -0
  185. package/dist/esm/worker.mjs +439 -0
  186. package/dist/fetch.js +1 -17
  187. package/dist/file-types/bmp.js +3 -7
  188. package/dist/file-types/detect-file-type.js +24 -38
  189. package/dist/file-types/index.js +22 -26
  190. package/dist/file-types/jpeg.js +4 -9
  191. package/dist/file-types/pdf.js +3 -7
  192. package/dist/file-types/png.js +4 -9
  193. package/dist/file-types/webp.js +3 -7
  194. package/dist/forward-controller.js +1 -5
  195. package/dist/get-audio-codec.js +25 -38
  196. package/dist/get-container.d.ts +3 -3
  197. package/dist/get-container.js +5 -10
  198. package/dist/get-dimensions.js +8 -13
  199. package/dist/get-duration.js +27 -34
  200. package/dist/get-fields-from-callbacks.js +1 -5
  201. package/dist/get-fps.js +24 -34
  202. package/dist/get-is-hdr.js +5 -10
  203. package/dist/get-keyframes.js +6 -11
  204. package/dist/get-location.js +4 -9
  205. package/dist/get-number-of-audio-channels.js +2 -7
  206. package/dist/get-sample-aspect-ratio.js +17 -30
  207. package/dist/get-sample-positions-from-lpcm.js +5 -9
  208. package/dist/get-sample-positions.js +1 -5
  209. package/dist/get-sample-rate.js +2 -7
  210. package/dist/get-tracks.d.ts +5 -0
  211. package/dist/get-tracks.js +37 -44
  212. package/dist/get-video-codec.js +26 -34
  213. package/dist/has-all-info.js +33 -38
  214. package/dist/index.d.ts +15 -11
  215. package/dist/index.js +34 -48
  216. package/dist/init-video.d.ts +1 -1
  217. package/dist/init-video.js +47 -20
  218. package/dist/internal-parse-media.js +36 -40
  219. package/dist/is-audio-structure.d.ts +2 -2
  220. package/dist/is-audio-structure.js +1 -5
  221. package/dist/log.js +8 -12
  222. package/dist/make-hvc1-codec-strings.js +1 -5
  223. package/dist/media-parser-controller.js +7 -11
  224. package/dist/metadata/get-metadata.d.ts +4 -4
  225. package/dist/metadata/get-metadata.js +17 -22
  226. package/dist/metadata/metadata-from-iso.d.ts +3 -3
  227. package/dist/metadata/metadata-from-iso.js +12 -17
  228. package/dist/metadata/metadata-from-matroska.d.ts +2 -2
  229. package/dist/metadata/metadata-from-matroska.js +3 -7
  230. package/dist/metadata/metadata-from-riff.d.ts +2 -2
  231. package/dist/metadata/metadata-from-riff.js +3 -7
  232. package/dist/node-writer.js +1 -17
  233. package/dist/node.js +1 -17
  234. package/dist/options.d.ts +30 -24
  235. package/dist/options.js +1 -2
  236. package/dist/parse-media-on-browser-worker.d.ts +2 -0
  237. package/dist/parse-media-on-browser-worker.js +4 -0
  238. package/dist/parse-media-on-server-worker.d.ts +2 -0
  239. package/dist/parse-media-on-server-worker.js +4 -0
  240. package/dist/parse-media-on-web-worker.d.ts +2 -0
  241. package/dist/parse-media-on-web-worker.js +4 -0
  242. package/dist/parse-media-on-worker-entry.d.ts +2 -0
  243. package/dist/parse-media-on-worker-entry.js +269 -0
  244. package/dist/parse-media-on-worker.d.ts +2 -0
  245. package/dist/parse-media-on-worker.js +4 -0
  246. package/dist/parse-media.js +10 -13
  247. package/dist/parse-result.d.ts +3 -3
  248. package/dist/parse-result.js +1 -2
  249. package/dist/pause-signal.js +1 -5
  250. package/dist/perform-seek.js +6 -10
  251. package/dist/readers/fetch/get-body-and-reader.js +1 -5
  252. package/dist/readers/fetch/resolve-url.d.ts +1 -1
  253. package/dist/readers/fetch/resolve-url.js +1 -5
  254. package/dist/readers/from-fetch.d.ts +4 -1
  255. package/dist/readers/from-fetch.js +109 -94
  256. package/dist/readers/from-node.d.ts +4 -1
  257. package/dist/readers/from-node.js +58 -41
  258. package/dist/readers/from-web-file.d.ts +4 -1
  259. package/dist/readers/from-web-file.js +55 -49
  260. package/dist/readers/reader.d.ts +5 -1
  261. package/dist/readers/reader.js +1 -2
  262. package/dist/readers/universal.d.ts +2 -0
  263. package/dist/readers/universal.js +35 -0
  264. package/dist/readers/web.d.ts +2 -0
  265. package/dist/readers/web.js +22 -0
  266. package/dist/register-track.js +9 -15
  267. package/dist/remotion-license-acknowledge.js +4 -8
  268. package/dist/run-parse-iteration.js +26 -25
  269. package/dist/samples-from-moof.js +8 -12
  270. package/dist/skip.js +1 -5
  271. package/dist/state/aac-state.js +1 -5
  272. package/dist/state/can-skip-tracks.d.ts +2 -2
  273. package/dist/state/can-skip-tracks.js +3 -8
  274. package/dist/state/emitted-fields.js +1 -5
  275. package/dist/state/flac-state.js +1 -5
  276. package/dist/state/has-tracks-section.js +3 -7
  277. package/dist/state/images.js +1 -5
  278. package/dist/state/iso-base-media/cached-sample-positions.js +8 -13
  279. package/dist/state/iso-base-media/iso-state.js +5 -9
  280. package/dist/state/iso-base-media/moov-box.js +1 -5
  281. package/dist/state/keyframes.js +1 -5
  282. package/dist/state/last-eventloop-break.js +3 -7
  283. package/dist/state/m3u-state.d.ts +3 -0
  284. package/dist/state/m3u-state.js +16 -11
  285. package/dist/state/may-skip-video-data.js +3 -7
  286. package/dist/state/mp3.js +1 -5
  287. package/dist/state/need-samples-for-fields.js +1 -5
  288. package/dist/state/parser-state.d.ts +12 -10
  289. package/dist/state/parser-state.js +36 -41
  290. package/dist/state/riff.js +1 -5
  291. package/dist/state/sample-callbacks.js +8 -12
  292. package/dist/state/slow-duration-fps.js +1 -5
  293. package/dist/state/structure.d.ts +4 -4
  294. package/dist/state/structure.js +1 -5
  295. package/dist/state/transport-stream.js +3 -7
  296. package/dist/state/video-section.js +1 -5
  297. package/dist/state/webm.js +5 -9
  298. package/dist/throttled-progress.js +1 -5
  299. package/dist/truthy.js +1 -4
  300. package/dist/universal.d.ts +1 -0
  301. package/dist/universal.js +1 -0
  302. package/dist/version.d.ts +1 -1
  303. package/dist/version.js +1 -4
  304. package/dist/web-file.js +1 -17
  305. package/dist/web.d.ts +1 -0
  306. package/dist/web.js +1 -0
  307. package/dist/webcodec-sample-types.d.ts +6 -4
  308. package/dist/webcodec-sample-types.js +1 -2
  309. package/dist/worker/forward-controller.d.ts +3 -0
  310. package/dist/worker/forward-controller.js +20 -0
  311. package/dist/worker/serialize-error.d.ts +4 -0
  312. package/dist/worker/serialize-error.js +95 -0
  313. package/dist/worker/worker-types.d.ts +243 -0
  314. package/dist/worker/worker-types.js +1 -0
  315. package/dist/worker-bun-entry.d.ts +1 -0
  316. package/dist/worker-bun-entry.js +5 -0
  317. package/dist/worker-entry.d.ts +1 -0
  318. package/dist/worker-entry.js +5 -0
  319. package/dist/worker-server-entry.d.ts +1 -0
  320. package/dist/worker-server-entry.js +5 -0
  321. package/dist/worker-server.d.ts +2 -0
  322. package/dist/worker-server.js +381 -0
  323. package/dist/worker-web-entry.d.ts +1 -0
  324. package/dist/worker-web-entry.js +5 -0
  325. package/dist/worker.d.ts +2 -0
  326. package/dist/worker.js +267 -0
  327. package/dist/writers/node.js +16 -23
  328. package/dist/writers/writer.js +1 -2
  329. package/package.json +40 -21
  330. package/fetch.js +0 -2
  331. package/test.json +0 -663
  332. package/web-file.js +0 -2
@@ -1,55 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeParserState = void 0;
4
- const buffer_iterator_1 = require("../buffer-iterator");
5
- const log_1 = require("../log");
6
- const aac_state_1 = require("./aac-state");
7
- const emitted_fields_1 = require("./emitted-fields");
8
- const flac_state_1 = require("./flac-state");
9
- const images_1 = require("./images");
10
- const iso_state_1 = require("./iso-base-media/iso-state");
11
- const keyframes_1 = require("./keyframes");
12
- const last_eventloop_break_1 = require("./last-eventloop-break");
13
- const m3u_state_1 = require("./m3u-state");
14
- const mp3_1 = require("./mp3");
15
- const riff_1 = require("./riff");
16
- const sample_callbacks_1 = require("./sample-callbacks");
17
- const slow_duration_fps_1 = require("./slow-duration-fps");
18
- const structure_1 = require("./structure");
19
- const transport_stream_1 = require("./transport-stream");
20
- const video_section_1 = require("./video-section");
21
- const webm_1 = require("./webm");
22
- const makeParserState = ({ hasAudioTrackHandlers, hasVideoTrackHandlers, controller, fields, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, selectM3uStreamFn, selectM3uAssociatedPlaylistsFn, }) => {
1
+ import { getArrayBufferIterator } from '../buffer-iterator';
2
+ import { Log } from '../log';
3
+ import { aacState } from './aac-state';
4
+ import { emittedState } from './emitted-fields';
5
+ import { flacState } from './flac-state';
6
+ import { imagesState } from './images';
7
+ import { isoBaseMediaState } from './iso-base-media/iso-state';
8
+ import { keyframesState } from './keyframes';
9
+ import { m3uState } from './m3u-state';
10
+ import { makeMp3State } from './mp3';
11
+ import { riffSpecificState } from './riff';
12
+ import { sampleCallback } from './sample-callbacks';
13
+ import { slowDurationAndFpsState } from './slow-duration-fps';
14
+ import { structureState } from './structure';
15
+ import { transportStreamState } from './transport-stream';
16
+ import { videoSectionState } from './video-section';
17
+ import { webmState } from './webm';
18
+ export const makeParserState = ({ hasAudioTrackHandlers, hasVideoTrackHandlers, controller, fields, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, selectM3uStreamFn, selectM3uAssociatedPlaylistsFn, mp4HeaderSegment, }) => {
23
19
  let skippedBytes = 0;
24
- const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(new Uint8Array([]), contentLength);
20
+ const iterator = getArrayBufferIterator(new Uint8Array([]), contentLength);
25
21
  const increaseSkippedBytes = (bytes) => {
26
22
  skippedBytes += bytes;
27
23
  };
28
- const structure = (0, structure_1.structureState)();
29
- const keyframes = (0, keyframes_1.keyframesState)();
30
- const emittedFields = (0, emitted_fields_1.emittedState)();
31
- const slowDurationAndFps = (0, slow_duration_fps_1.slowDurationAndFpsState)();
32
- const mp3Info = (0, mp3_1.makeMp3State)();
33
- const images = (0, images_1.imagesState)();
24
+ const structure = structureState();
25
+ const keyframes = keyframesState();
26
+ const emittedFields = emittedState();
27
+ const slowDurationAndFps = slowDurationAndFpsState();
28
+ const mp3Info = makeMp3State();
29
+ const images = imagesState();
34
30
  const discardReadBytes = async (force) => {
35
31
  const { bytesRemoved, removedData } = iterator.removeBytesRead(force, mode);
36
32
  if (bytesRemoved) {
37
- log_1.Log.verbose(logLevel, `Freed ${bytesRemoved} bytes`);
33
+ Log.verbose(logLevel, `Freed ${bytesRemoved} bytes`);
38
34
  }
39
35
  if (removedData && onDiscardedData) {
40
36
  await onDiscardedData(removedData);
41
37
  }
42
38
  };
43
39
  return {
44
- riff: (0, riff_1.riffSpecificState)(),
45
- transportStream: (0, transport_stream_1.transportStreamState)(),
46
- webm: (0, webm_1.webmState)(),
47
- iso: (0, iso_state_1.isoBaseMediaState)(),
40
+ riff: riffSpecificState(),
41
+ transportStream: transportStreamState(),
42
+ webm: webmState(),
43
+ iso: isoBaseMediaState(),
48
44
  mp3Info,
49
- aac: (0, aac_state_1.aacState)(),
50
- flac: (0, flac_state_1.flacState)(),
51
- m3u: (0, m3u_state_1.m3uState)(logLevel),
52
- callbacks: (0, sample_callbacks_1.sampleCallback)({
45
+ aac: aacState(),
46
+ flac: flacState(),
47
+ m3u: m3uState(logLevel),
48
+ callbacks: sampleCallback({
53
49
  controller,
54
50
  hasAudioTrackHandlers,
55
51
  hasVideoTrackHandlers,
@@ -77,17 +73,16 @@ const makeParserState = ({ hasAudioTrackHandlers, hasVideoTrackHandlers, control
77
73
  slowDurationAndFps,
78
74
  contentLength,
79
75
  images,
80
- videoSection: (0, video_section_1.videoSectionState)(),
76
+ videoSection: videoSectionState(),
81
77
  logLevel,
82
78
  iterator,
83
79
  controller,
84
80
  mode,
85
- eventLoop: (0, last_eventloop_break_1.eventLoopState)(logLevel),
86
81
  src,
87
82
  readerInterface,
88
83
  discardReadBytes,
89
84
  selectM3uStreamFn,
90
85
  selectM3uAssociatedPlaylistsFn,
86
+ mp4HeaderSegment,
91
87
  };
92
88
  };
93
- exports.makeParserState = makeParserState;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.riffSpecificState = void 0;
4
- const riffSpecificState = () => {
1
+ export const riffSpecificState = () => {
5
2
  let avcProfile = null;
6
3
  let nextTrackIndex = 0;
7
4
  const profileCallbacks = [];
@@ -29,4 +26,3 @@ const riffSpecificState = () => {
29
26
  },
30
27
  };
31
28
  };
32
- exports.riffSpecificState = riffSpecificState;
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sampleCallback = void 0;
4
- const can_skip_tracks_1 = require("./can-skip-tracks");
5
- const has_tracks_section_1 = require("./has-tracks-section");
6
- const need_samples_for_fields_1 = require("./need-samples-for-fields");
7
- const sampleCallback = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandlers, fields, keyframes, emittedFields, slowDurationAndFpsState, structure, }) => {
1
+ import { makeCanSkipTracksState } from './can-skip-tracks';
2
+ import { makeTracksSectionState } from './has-tracks-section';
3
+ import { needsToIterateOverSamples } from './need-samples-for-fields';
4
+ export const sampleCallback = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandlers, fields, keyframes, emittedFields, slowDurationAndFpsState, structure, }) => {
8
5
  const videoSampleCallbacks = {};
9
6
  const audioSampleCallbacks = {};
10
7
  const queuedAudioSamples = {};
11
8
  const queuedVideoSamples = {};
12
- const canSkipTracksState = (0, can_skip_tracks_1.makeCanSkipTracksState)({
9
+ const canSkipTracksState = makeCanSkipTracksState({
13
10
  hasAudioTrackHandlers,
14
11
  fields,
15
12
  hasVideoTrackHandlers,
16
13
  structure,
17
14
  });
18
- const tracksState = (0, has_tracks_section_1.makeTracksSectionState)(canSkipTracksState);
15
+ const tracksState = makeTracksSectionState(canSkipTracksState);
19
16
  const samplesForTrack = {};
20
17
  return {
21
18
  registerVideoSampleCallback: async (id, callback) => {
@@ -45,7 +42,7 @@ const sampleCallback = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
45
42
  await callback(audioSample);
46
43
  }
47
44
  }
48
- if ((0, need_samples_for_fields_1.needsToIterateOverSamples)({ emittedFields, fields })) {
45
+ if (needsToIterateOverSamples({ emittedFields, fields })) {
49
46
  slowDurationAndFpsState.addAudioSample(audioSample);
50
47
  }
51
48
  },
@@ -68,7 +65,7 @@ const sampleCallback = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
68
65
  await callback(videoSample);
69
66
  }
70
67
  }
71
- if ((0, need_samples_for_fields_1.needsToIterateOverSamples)({
68
+ if (needsToIterateOverSamples({
72
69
  fields,
73
70
  emittedFields,
74
71
  })) {
@@ -104,4 +101,3 @@ const sampleCallback = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
104
101
  hasVideoTrackHandlers,
105
102
  };
106
103
  };
107
- exports.sampleCallback = sampleCallback;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.slowDurationAndFpsState = void 0;
4
- const slowDurationAndFpsState = () => {
1
+ export const slowDurationAndFpsState = () => {
5
2
  let smallestVideoSample;
6
3
  let largestVideoSample;
7
4
  let smallestAudioSample;
@@ -85,4 +82,3 @@ const slowDurationAndFpsState = () => {
85
82
  },
86
83
  };
87
84
  };
88
- exports.slowDurationAndFpsState = slowDurationAndFpsState;
@@ -1,8 +1,8 @@
1
- import type { Structure } from '../parse-result';
1
+ import type { MediaParserStructureUnstable } from '../parse-result';
2
2
  export declare const structureState: () => {
3
- getStructureOrNull: () => Structure | null;
4
- getStructure: () => Structure;
5
- setStructure: (value: Structure) => void;
3
+ getStructureOrNull: () => MediaParserStructureUnstable | null;
4
+ getStructure: () => MediaParserStructureUnstable;
5
+ setStructure: (value: MediaParserStructureUnstable) => void;
6
6
  getFlacStructure: () => import("../containers/flac/types").FlacStructure;
7
7
  getIsoStructure: () => import("../parse-result").IsoBaseMediaStructure;
8
8
  getMp3Structure: () => import("../parse-result").Mp3Structure;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.structureState = void 0;
4
- const structureState = () => {
1
+ export const structureState = () => {
5
2
  let structure = null;
6
3
  const getStructure = () => {
7
4
  if (structure === null) {
@@ -75,4 +72,3 @@ const structureState = () => {
75
72
  },
76
73
  };
77
74
  };
78
- exports.structureState = structureState;
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transportStreamState = void 0;
4
- const next_pes_header_store_1 = require("../containers/transport-stream/next-pes-header-store");
5
- const transportStreamState = () => {
1
+ import { makeNextPesHeaderStore } from '../containers/transport-stream/next-pes-header-store';
2
+ export const transportStreamState = () => {
6
3
  return {
7
- nextPesHeaderStore: (0, next_pes_header_store_1.makeNextPesHeaderStore)(),
4
+ nextPesHeaderStore: makeNextPesHeaderStore(),
8
5
  streamBuffers: new Map(),
9
6
  };
10
7
  };
11
- exports.transportStreamState = transportStreamState;
@@ -1,12 +1,9 @@
1
- "use strict";
2
1
  /**
3
2
  * Keeps track of in which section of the file the video is playing
4
3
  * Usually this section is in a different format and it is the only section
5
4
  * that can be read partially
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.videoSectionState = void 0;
9
- const videoSectionState = () => {
6
+ export const videoSectionState = () => {
10
7
  let videoSection = null;
11
8
  const setVideoSection = (section) => {
12
9
  videoSection = section;
@@ -34,4 +31,3 @@ const videoSectionState = () => {
34
31
  isInVideoSectionState,
35
32
  };
36
33
  };
37
- exports.videoSectionState = videoSectionState;
@@ -1,23 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.webmState = void 0;
4
- const traversal_1 = require("../containers/webm/traversal");
5
- const webmState = () => {
1
+ import { getTrackCodec, getTrackId, getTrackTimestampScale, } from '../containers/webm/traversal';
2
+ export const webmState = () => {
6
3
  const trackEntries = {};
7
4
  const onTrackEntrySegment = (trackEntry) => {
8
5
  var _a;
9
- const trackId = (0, traversal_1.getTrackId)(trackEntry);
6
+ const trackId = getTrackId(trackEntry);
10
7
  if (!trackId) {
11
8
  throw new Error('Expected track id');
12
9
  }
13
10
  if (trackEntries[trackId]) {
14
11
  return;
15
12
  }
16
- const codec = (0, traversal_1.getTrackCodec)(trackEntry);
13
+ const codec = getTrackCodec(trackEntry);
17
14
  if (!codec) {
18
15
  throw new Error('Expected codec');
19
16
  }
20
- const trackTimescale = (0, traversal_1.getTrackTimestampScale)(trackEntry);
17
+ const trackTimescale = getTrackTimestampScale(trackEntry);
21
18
  trackEntries[trackId] = {
22
19
  codec: codec.value,
23
20
  trackTimescale: (_a = trackTimescale === null || trackTimescale === void 0 ? void 0 : trackTimescale.value) !== null && _a !== void 0 ? _a : null,
@@ -106,4 +103,3 @@ const webmState = () => {
106
103
  getAvcProfileForTrackNumber,
107
104
  };
108
105
  };
109
- exports.webmState = webmState;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.throttledStateUpdate = void 0;
4
- const throttledStateUpdate = ({ updateFn, everyMilliseconds, controller, }) => {
1
+ export const throttledStateUpdate = ({ updateFn, everyMilliseconds, controller, }) => {
5
2
  let currentState = {
6
3
  bytes: 0,
7
4
  percentage: null,
@@ -52,4 +49,3 @@ const throttledStateUpdate = ({ updateFn, everyMilliseconds, controller, }) => {
52
49
  },
53
50
  };
54
51
  };
55
- exports.throttledStateUpdate = throttledStateUpdate;
package/dist/truthy.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.truthy = truthy;
4
- function truthy(value) {
1
+ export function truthy(value) {
5
2
  return Boolean(value);
6
3
  }
@@ -0,0 +1 @@
1
+ export { universalReader } from './readers/universal';
@@ -0,0 +1 @@
1
+ export { universalReader } from './readers/universal';
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "4.0.270";
1
+ export declare const VERSION = "4.0.271";
package/dist/version.js CHANGED
@@ -1,5 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERSION = void 0;
4
1
  // Automatically generated on publish
5
- exports.VERSION = '4.0.270';
2
+ export const VERSION = '4.0.271';
package/dist/web-file.js CHANGED
@@ -1,17 +1 @@
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-web-file"), exports);
1
+ export * from './readers/from-web-file';
package/dist/web.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { webReader } from './readers/web';
package/dist/web.js ADDED
@@ -0,0 +1 @@
1
+ export { webReader } from './readers/web';
@@ -2,14 +2,16 @@ import type { AudioTrack, VideoTrack } from './get-tracks';
2
2
  import type { MediaParserContainer } from './options';
3
3
  export type OnAudioSample = (sample: AudioOrVideoSample) => void | Promise<void>;
4
4
  export type OnVideoSample = (sample: AudioOrVideoSample) => void | Promise<void>;
5
- export type OnAudioTrack = (options: {
5
+ export type OnAudioTrackParams = {
6
6
  track: AudioTrack;
7
7
  container: MediaParserContainer;
8
- }) => OnAudioSample | Promise<OnAudioSample | null> | null;
9
- export type OnVideoTrack = (options: {
8
+ };
9
+ export type OnAudioTrack = (options: OnAudioTrackParams) => OnAudioSample | Promise<OnAudioSample | null> | null;
10
+ export type OnVideoTrackParams = {
10
11
  track: VideoTrack;
11
12
  container: MediaParserContainer;
12
- }) => OnVideoSample | Promise<OnVideoSample | null> | null;
13
+ };
14
+ export type OnVideoTrack = (options: OnVideoTrackParams) => OnVideoSample | Promise<OnVideoSample | null> | null;
13
15
  export type AudioOrVideoSample = {
14
16
  data: Uint8Array;
15
17
  timestamp: number;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { MediaParserController } from '../media-parser-controller';
2
+ import type { WorkerRequestPayload } from './worker-types';
3
+ export declare const forwardMediaParserControllerToWorker: (controller: MediaParserController) => ((message: WorkerRequestPayload) => void);
@@ -0,0 +1,20 @@
1
+ import { Log } from '../log';
2
+ export const forwardMediaParserControllerToWorker = (controller) => {
3
+ return (message) => {
4
+ if (message.type === 'request-pause') {
5
+ controller.pause();
6
+ return;
7
+ }
8
+ if (message.type === 'request-resume') {
9
+ controller.resume();
10
+ return;
11
+ }
12
+ if (message.type === 'request-abort') {
13
+ controller.abort();
14
+ return;
15
+ }
16
+ const msg = `Unknown message type: ${message.type}`;
17
+ Log.error(msg);
18
+ throw new Error(msg);
19
+ };
20
+ };
@@ -0,0 +1,4 @@
1
+ import type { LogLevel } from '../log';
2
+ import type { ResponseError } from './worker-types';
3
+ export declare const serializeError: (error: Error, logLevel: LogLevel) => ResponseError;
4
+ export declare const deserializeError: (error: ResponseError) => Error;
@@ -0,0 +1,95 @@
1
+ import { IsAGifError, IsAnImageError, IsAnUnsupportedFileTypeError, IsAPdfError, MediaParserAbortError, } from '../errors';
2
+ import { Log } from '../log';
3
+ export const serializeError = (error, logLevel) => {
4
+ var _a, _b, _c, _d, _e;
5
+ if (error instanceof IsAGifError) {
6
+ return {
7
+ type: 'response-error',
8
+ errorName: 'IsAGifError',
9
+ errorMessage: error.message,
10
+ errorStack: (_a = error.stack) !== null && _a !== void 0 ? _a : '',
11
+ mimeType: error.mimeType,
12
+ sizeInBytes: error.sizeInBytes,
13
+ fileName: error.fileName,
14
+ };
15
+ }
16
+ if (error instanceof IsAnImageError) {
17
+ return {
18
+ type: 'response-error',
19
+ errorName: 'IsAnImageError',
20
+ dimensions: error.dimensions,
21
+ errorMessage: error.message,
22
+ errorStack: (_b = error.stack) !== null && _b !== void 0 ? _b : '',
23
+ fileName: error.fileName,
24
+ imageType: error.imageType,
25
+ mimeType: error.mimeType,
26
+ sizeInBytes: error.sizeInBytes,
27
+ };
28
+ }
29
+ if (error instanceof IsAPdfError) {
30
+ return {
31
+ type: 'response-error',
32
+ errorName: 'IsAPdfError',
33
+ errorMessage: error.message,
34
+ errorStack: (_c = error.stack) !== null && _c !== void 0 ? _c : '',
35
+ mimeType: error.mimeType,
36
+ sizeInBytes: error.sizeInBytes,
37
+ fileName: error.fileName,
38
+ };
39
+ }
40
+ if (error instanceof MediaParserAbortError) {
41
+ return {
42
+ type: 'response-error',
43
+ errorName: 'MediaParserAbortError',
44
+ errorMessage: error.message,
45
+ errorStack: (_d = error.stack) !== null && _d !== void 0 ? _d : '',
46
+ };
47
+ }
48
+ if (error.name !== 'Error') {
49
+ Log.warn(logLevel, `Original error was of type ${error.name} did not properly propagate`);
50
+ }
51
+ return {
52
+ type: 'response-error',
53
+ errorName: 'Error',
54
+ errorMessage: error.message,
55
+ errorStack: (_e = error.stack) !== null && _e !== void 0 ? _e : '',
56
+ };
57
+ };
58
+ export const deserializeError = (error) => {
59
+ switch (error.errorName) {
60
+ case 'IsAGifError':
61
+ return new IsAGifError({
62
+ fileName: error.fileName,
63
+ mimeType: error.mimeType,
64
+ sizeInBytes: error.sizeInBytes,
65
+ message: error.errorMessage,
66
+ });
67
+ case 'IsAnImageError':
68
+ return new IsAnImageError({
69
+ dimensions: error.dimensions,
70
+ fileName: error.fileName,
71
+ imageType: error.imageType,
72
+ mimeType: error.mimeType,
73
+ sizeInBytes: error.sizeInBytes,
74
+ message: error.errorMessage,
75
+ });
76
+ case 'IsAPdfError':
77
+ return new IsAPdfError({
78
+ fileName: error.fileName,
79
+ mimeType: error.mimeType,
80
+ sizeInBytes: error.sizeInBytes,
81
+ message: error.errorMessage,
82
+ });
83
+ case 'IsAnUnsupportedFileTypeError':
84
+ return new IsAnUnsupportedFileTypeError({
85
+ fileName: error.fileName,
86
+ mimeType: error.mimeType,
87
+ sizeInBytes: error.sizeInBytes,
88
+ message: error.errorMessage,
89
+ });
90
+ case 'MediaParserAbortError':
91
+ return new MediaParserAbortError(error.errorMessage);
92
+ default:
93
+ return new Error(error.errorMessage);
94
+ }
95
+ };