@remotion/media-parser 4.0.250 → 4.0.252

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 (424) hide show
  1. package/dist/aac-codecprivate.d.ts +2 -1
  2. package/dist/aac-codecprivate.js +28 -7
  3. package/dist/add-avc-profile-to-track.js +2 -2
  4. package/dist/buffer-iterator.d.ts +7 -2
  5. package/dist/buffer-iterator.js +61 -35
  6. package/dist/containers/aac/parse-aac.d.ts +3 -0
  7. package/dist/containers/aac/parse-aac.js +84 -0
  8. package/dist/containers/aac/types.d.ts +4 -0
  9. package/dist/{boxes → containers}/avc/key.d.ts +1 -1
  10. package/dist/containers/flac/get-block-size.d.ts +2 -0
  11. package/dist/containers/flac/get-block-size.js +26 -0
  12. package/dist/containers/flac/get-channel-count.d.ts +2 -0
  13. package/dist/containers/flac/get-channel-count.js +36 -0
  14. package/dist/containers/flac/get-duration-from-flac.d.ts +2 -0
  15. package/dist/containers/flac/get-duration-from-flac.js +12 -0
  16. package/dist/containers/flac/get-metadata-from-flac.d.ts +2 -0
  17. package/dist/containers/flac/get-metadata-from-flac.js +11 -0
  18. package/dist/containers/flac/get-sample-rate.d.ts +3 -0
  19. package/dist/containers/flac/get-sample-rate.js +60 -0
  20. package/dist/containers/flac/parse-flac-frame.d.ts +15 -0
  21. package/dist/containers/flac/parse-flac-frame.js +169 -0
  22. package/dist/{boxes/riff/parse-riff.d.ts → containers/flac/parse-flac.d.ts} +1 -1
  23. package/dist/containers/flac/parse-flac.js +49 -0
  24. package/dist/{boxes/mp3/parse-mp3.d.ts → containers/flac/parse-header.d.ts} +2 -2
  25. package/dist/containers/flac/parse-header.js +10 -0
  26. package/dist/{boxes/iso-base-media/parse-boxes.d.ts → containers/flac/parse-metadata.d.ts} +3 -2
  27. package/dist/containers/flac/parse-metadata.js +24 -0
  28. package/dist/{boxes/webm/parse-webm-header.d.ts → containers/flac/parse-streaminfo.d.ts} +1 -1
  29. package/dist/containers/flac/parse-streaminfo.js +53 -0
  30. package/dist/{boxes/riff/parse-riff-body.d.ts → containers/flac/parse-unknown-block.d.ts} +2 -1
  31. package/dist/containers/flac/parse-unknown-block.js +11 -0
  32. package/dist/containers/flac/types.d.ts +26 -0
  33. package/dist/containers/iso-base-media/base-media-box.d.ts +37 -0
  34. package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.js +1 -1
  35. package/dist/containers/iso-base-media/get-children.d.ts +6 -0
  36. package/dist/{boxes → containers}/iso-base-media/get-children.js +5 -7
  37. package/dist/containers/iso-base-media/get-keyframes.d.ts +3 -0
  38. package/dist/{boxes → containers}/iso-base-media/get-keyframes.js +3 -2
  39. package/dist/containers/iso-base-media/get-moov-atom.d.ts +6 -0
  40. package/dist/containers/iso-base-media/get-moov-atom.js +73 -0
  41. package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.d.ts +1 -1
  42. package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.js +1 -1
  43. package/dist/containers/iso-base-media/mdat/mdat.d.ts +3 -0
  44. package/dist/{boxes → containers}/iso-base-media/mdat/mdat.js +17 -12
  45. package/dist/{boxes → containers}/iso-base-media/moov/moov.d.ts +1 -3
  46. package/dist/{boxes → containers}/iso-base-media/moov/moov.js +1 -2
  47. package/dist/containers/iso-base-media/parse-boxes.d.ts +3 -0
  48. package/dist/containers/iso-base-media/parse-boxes.js +18 -0
  49. package/dist/containers/iso-base-media/process-box.d.ts +3 -0
  50. package/dist/{boxes → containers}/iso-base-media/process-box.js +52 -169
  51. package/dist/{boxes → containers}/iso-base-media/stsd/mebx.d.ts +1 -3
  52. package/dist/{boxes → containers}/iso-base-media/stsd/mebx.js +3 -4
  53. package/dist/{boxes → containers}/iso-base-media/stsd/samples.d.ts +4 -6
  54. package/dist/{boxes → containers}/iso-base-media/stsd/samples.js +5 -7
  55. package/dist/{boxes → containers}/iso-base-media/stsd/stsd.d.ts +1 -3
  56. package/dist/{boxes → containers}/iso-base-media/stsd/stsd.js +2 -2
  57. package/dist/{boxes → containers}/iso-base-media/trak/trak.d.ts +1 -3
  58. package/dist/{boxes → containers}/iso-base-media/trak/trak.js +1 -2
  59. package/dist/{boxes → containers}/iso-base-media/traversal.d.ts +4 -2
  60. package/dist/{boxes → containers}/iso-base-media/traversal.js +6 -2
  61. package/dist/containers/iso-base-media/void-box.js +2 -0
  62. package/dist/{boxes → containers}/mp3/get-duration.js +0 -3
  63. package/dist/containers/mp3/get-tracks-from-mp3.d.ts +4 -0
  64. package/dist/{boxes → containers}/mp3/get-tracks-from-mp3.js +6 -6
  65. package/dist/containers/mp3/id3.d.ts +4 -0
  66. package/dist/{boxes → containers}/mp3/id3.js +3 -2
  67. package/dist/containers/mp3/parse-mp3.d.ts +3 -0
  68. package/dist/{boxes → containers}/mp3/parse-mp3.js +7 -15
  69. package/dist/containers/mp3/parse-mpeg-header.d.ts +4 -0
  70. package/dist/{boxes → containers}/mp3/parse-mpeg-header.js +3 -2
  71. package/dist/containers/riff/expect-riff-box.d.ts +6 -0
  72. package/dist/{boxes → containers}/riff/expect-riff-box.js +7 -17
  73. package/dist/containers/riff/get-duration.d.ts +3 -0
  74. package/dist/containers/riff/get-duration.js +33 -0
  75. package/dist/{boxes → containers}/riff/get-tracks-from-avi.d.ts +1 -2
  76. package/dist/{boxes → containers}/riff/get-tracks-from-avi.js +1 -1
  77. package/dist/{boxes → containers}/riff/parse-list-box.d.ts +1 -3
  78. package/dist/{boxes → containers}/riff/parse-list-box.js +5 -9
  79. package/dist/containers/riff/parse-movi.d.ts +9 -0
  80. package/dist/{boxes → containers}/riff/parse-movi.js +13 -29
  81. package/dist/containers/riff/parse-riff-body.d.ts +3 -0
  82. package/dist/containers/riff/parse-riff-body.js +28 -0
  83. package/dist/{boxes → containers}/riff/parse-riff-box.d.ts +1 -3
  84. package/dist/{boxes → containers}/riff/parse-riff-box.js +3 -6
  85. package/dist/containers/riff/parse-riff-header.d.ts +3 -0
  86. package/dist/{boxes → containers}/riff/parse-riff-header.js +6 -11
  87. package/dist/containers/riff/parse-riff.d.ts +3 -0
  88. package/dist/{boxes → containers}/riff/parse-riff.js +4 -7
  89. package/dist/containers/riff/parse-video-section.d.ts +2 -0
  90. package/dist/{boxes → containers}/riff/parse-video-section.js +5 -8
  91. package/dist/{boxes → containers}/riff/riff-box.d.ts +5 -10
  92. package/dist/containers/riff/riff-box.js +2 -0
  93. package/dist/{boxes → containers}/riff/traversal.d.ts +1 -2
  94. package/dist/{boxes → containers}/transport-stream/adts-header.js +1 -0
  95. package/dist/containers/transport-stream/boxes.js +2 -0
  96. package/dist/{boxes → containers}/transport-stream/get-tracks.js +1 -1
  97. package/dist/{boxes → containers}/transport-stream/parse-packet.d.ts +1 -3
  98. package/dist/{boxes → containers}/transport-stream/parse-packet.js +3 -3
  99. package/dist/{boxes → containers}/transport-stream/parse-stream-packet.d.ts +1 -3
  100. package/dist/{boxes → containers}/transport-stream/parse-stream-packet.js +2 -1
  101. package/dist/containers/transport-stream/parse-transport-stream.d.ts +3 -0
  102. package/dist/{boxes → containers}/transport-stream/parse-transport-stream.js +5 -22
  103. package/dist/{boxes → containers}/transport-stream/process-stream-buffers.js +1 -1
  104. package/dist/containers/wav/get-duration-from-wav.d.ts +3 -0
  105. package/dist/containers/wav/get-duration-from-wav.js +26 -0
  106. package/dist/containers/wav/get-metadata-from-wav.d.ts +3 -0
  107. package/dist/containers/wav/get-metadata-from-wav.js +11 -0
  108. package/dist/containers/wav/parse-data.d.ts +5 -0
  109. package/dist/containers/wav/parse-data.js +25 -0
  110. package/dist/containers/wav/parse-fmt.d.ts +5 -0
  111. package/dist/containers/wav/parse-fmt.js +56 -0
  112. package/dist/containers/wav/parse-header.d.ts +5 -0
  113. package/dist/containers/wav/parse-header.js +17 -0
  114. package/dist/containers/wav/parse-id3.d.ts +5 -0
  115. package/dist/containers/wav/parse-id3.js +15 -0
  116. package/dist/containers/wav/parse-list.d.ts +5 -0
  117. package/dist/containers/wav/parse-list.js +32 -0
  118. package/dist/containers/wav/parse-video-section.d.ts +5 -0
  119. package/dist/containers/wav/parse-video-section.js +34 -0
  120. package/dist/containers/wav/parse-wav.d.ts +3 -0
  121. package/dist/containers/wav/parse-wav.js +36 -0
  122. package/dist/containers/wav/types.d.ts +30 -0
  123. package/dist/containers/wav/types.js +2 -0
  124. package/dist/{boxes → containers}/webm/parse-ebml.d.ts +1 -2
  125. package/dist/{boxes → containers}/webm/parse-ebml.js +4 -3
  126. package/dist/containers/webm/parse-webm-header.d.ts +3 -0
  127. package/dist/{boxes → containers}/webm/parse-webm-header.js +5 -12
  128. package/dist/{boxes → containers}/webm/segments.d.ts +1 -3
  129. package/dist/{boxes → containers}/webm/segments.js +7 -6
  130. package/dist/download-and-parse-media.d.ts +2 -0
  131. package/dist/download-and-parse-media.js +70 -0
  132. package/dist/emit-available-info.d.ts +2 -5
  133. package/dist/emit-available-info.js +104 -94
  134. package/dist/errors.d.ts +1 -1
  135. package/dist/esm/from-fetch.mjs +1 -1
  136. package/dist/esm/from-node.mjs +1 -1
  137. package/dist/esm/from-web-file.mjs +7 -7
  138. package/dist/esm/index.mjs +2118 -1069
  139. package/dist/esm/node.mjs +113 -0
  140. package/dist/file-types/detect-file-type.d.ts +5 -1
  141. package/dist/file-types/detect-file-type.js +6 -1
  142. package/dist/file-types/index.js +3 -0
  143. package/dist/get-audio-codec.d.ts +3 -4
  144. package/dist/get-audio-codec.js +6 -3
  145. package/dist/get-container.d.ts +2 -2
  146. package/dist/get-container.js +10 -1
  147. package/dist/get-dimensions.d.ts +2 -3
  148. package/dist/get-dimensions.js +13 -9
  149. package/dist/get-duration.d.ts +5 -5
  150. package/dist/get-duration.js +26 -27
  151. package/dist/get-fields-from-callbacks.js +4 -0
  152. package/dist/get-fps.d.ts +5 -5
  153. package/dist/get-fps.js +24 -14
  154. package/dist/get-is-hdr.d.ts +1 -2
  155. package/dist/get-is-hdr.js +2 -2
  156. package/dist/get-keyframes.d.ts +2 -3
  157. package/dist/get-keyframes.js +7 -5
  158. package/dist/get-location.d.ts +2 -2
  159. package/dist/get-location.js +2 -2
  160. package/dist/get-number-of-audio-channels.d.ts +3 -0
  161. package/dist/get-number-of-audio-channels.js +14 -0
  162. package/dist/get-sample-aspect-ratio.d.ts +8 -8
  163. package/dist/get-sample-aspect-ratio.js +1 -1
  164. package/dist/get-sample-positions-from-lpcm.d.ts +1 -1
  165. package/dist/get-sample-positions-from-lpcm.js +1 -1
  166. package/dist/get-sample-positions.d.ts +6 -6
  167. package/dist/get-sample-rate.d.ts +3 -0
  168. package/dist/get-sample-rate.js +14 -0
  169. package/dist/get-tracks.d.ts +8 -9
  170. package/dist/get-tracks.js +30 -23
  171. package/dist/get-video-codec.d.ts +2 -3
  172. package/dist/get-video-codec.js +4 -4
  173. package/dist/has-all-info.js +29 -18
  174. package/dist/index.d.ts +170 -66
  175. package/dist/index.js +10 -8
  176. package/dist/init-video.d.ts +7 -0
  177. package/dist/{parse-video.js → init-video.js} +31 -60
  178. package/dist/internal-parse-media.d.ts +2 -0
  179. package/dist/internal-parse-media.js +221 -0
  180. package/dist/is-audio-structure.d.ts +2 -0
  181. package/dist/is-audio-structure.js +31 -0
  182. package/dist/make-hvc1-codec-strings.js +4 -4
  183. package/dist/metadata/get-metadata.d.ts +2 -1
  184. package/dist/metadata/get-metadata.js +19 -3
  185. package/dist/metadata/metadata-from-iso.d.ts +3 -2
  186. package/dist/metadata/metadata-from-iso.js +3 -3
  187. package/dist/metadata/metadata-from-matroska.js +1 -1
  188. package/dist/metadata/metadata-from-riff.d.ts +1 -1
  189. package/dist/options.d.ts +88 -39
  190. package/dist/parse-and-download-media.d.ts +2 -0
  191. package/dist/parse-and-download-media.js +57 -0
  192. package/dist/parse-media.js +43 -172
  193. package/dist/parse-result.d.ts +10 -50
  194. package/dist/perform-seek.d.ts +10 -0
  195. package/dist/perform-seek.js +36 -0
  196. package/dist/readers/from-fetch.js +1 -1
  197. package/dist/readers/from-node.js +1 -1
  198. package/dist/readers/from-web-file.js +9 -9
  199. package/dist/readers/reader.d.ts +8 -3
  200. package/dist/register-track.d.ts +3 -3
  201. package/dist/register-track.js +5 -0
  202. package/dist/run-parse-iteration.d.ts +8 -0
  203. package/dist/run-parse-iteration.js +48 -0
  204. package/dist/samples-from-moof.js +1 -1
  205. package/dist/skip.d.ts +5 -0
  206. package/dist/skip.js +8 -0
  207. package/dist/state/aac-state.d.ts +13 -0
  208. package/dist/state/aac-state.js +17 -0
  209. package/dist/state/can-skip-tracks.js +5 -1
  210. package/dist/state/emitted-fields.js +4 -0
  211. package/dist/state/flac-state.d.ts +4 -0
  212. package/dist/state/flac-state.js +13 -0
  213. package/dist/state/has-tracks-section.d.ts +5 -2
  214. package/dist/state/has-tracks-section.js +11 -2
  215. package/dist/state/iso-base-media/cached-sample-positions.js +3 -3
  216. package/dist/state/iso-base-media/iso-state.d.ts +4 -2
  217. package/dist/state/iso-base-media/iso-state.js +2 -5
  218. package/dist/state/iso-base-media/moov-box.d.ts +5 -0
  219. package/dist/state/iso-base-media/moov-box.js +13 -0
  220. package/dist/state/last-eventloop-break.d.ts +4 -0
  221. package/dist/state/last-eventloop-break.js +18 -0
  222. package/dist/{may-skip-video-data → state}/may-skip-video-data.d.ts +1 -1
  223. package/dist/{may-skip-video-data → state}/need-samples-for-fields.js +4 -0
  224. package/dist/state/parser-state.d.ts +151 -51
  225. package/dist/state/parser-state.js +28 -5
  226. package/dist/state/sample-callbacks.d.ts +3 -2
  227. package/dist/state/sample-callbacks.js +1 -1
  228. package/dist/state/slow-duration-fps.d.ts +2 -0
  229. package/dist/state/slow-duration-fps.js +18 -0
  230. package/dist/state/structure.d.ts +7 -0
  231. package/dist/state/structure.js +56 -6
  232. package/dist/state/transport-stream.d.ts +3 -3
  233. package/dist/state/transport-stream.js +1 -1
  234. package/dist/state/webm.d.ts +2 -2
  235. package/dist/state/webm.js +1 -1
  236. package/dist/version.d.ts +1 -1
  237. package/dist/version.js +1 -1
  238. package/dist/webcodec-sample-types.d.ts +3 -3
  239. package/dist/writers/node.d.ts +4 -0
  240. package/dist/writers/node.js +81 -0
  241. package/dist/writers/writer.d.ts +17 -0
  242. package/dist/writers/writer.js +2 -0
  243. package/package.json +12 -9
  244. package/dist/boxes/iso-base-media/continue-mdat-routine.d.ts +0 -14
  245. package/dist/boxes/iso-base-media/continue-mdat-routine.js +0 -74
  246. package/dist/boxes/iso-base-media/get-children.d.ts +0 -8
  247. package/dist/boxes/iso-base-media/get-keyframes.d.ts +0 -3
  248. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -6
  249. package/dist/boxes/iso-base-media/parse-all-children.d.ts +0 -8
  250. package/dist/boxes/iso-base-media/parse-all-children.js +0 -20
  251. package/dist/boxes/iso-base-media/parse-boxes.js +0 -46
  252. package/dist/boxes/iso-base-media/parse-mdat-partially.d.ts +0 -9
  253. package/dist/boxes/iso-base-media/parse-mdat-partially.js +0 -24
  254. package/dist/boxes/iso-base-media/process-box.d.ts +0 -7
  255. package/dist/boxes/mp3/get-tracks-from-mp3.d.ts +0 -4
  256. package/dist/boxes/mp3/id3-v2.d.ts +0 -0
  257. package/dist/boxes/mp3/id3-v2.js +0 -1
  258. package/dist/boxes/mp3/id3.d.ts +0 -6
  259. package/dist/boxes/mp3/parse-mpeg-header.d.ts +0 -6
  260. package/dist/boxes/riff/continue-after-riff-result.d.ts +0 -13
  261. package/dist/boxes/riff/continue-after-riff-result.js +0 -34
  262. package/dist/boxes/riff/expect-riff-box.d.ts +0 -11
  263. package/dist/boxes/riff/parse-box.d.ts +0 -9
  264. package/dist/boxes/riff/parse-box.js +0 -35
  265. package/dist/boxes/riff/parse-fmt-box.d.ts +0 -8
  266. package/dist/boxes/riff/parse-fmt-box.js +0 -35
  267. package/dist/boxes/riff/parse-movi.d.ts +0 -14
  268. package/dist/boxes/riff/parse-riff-body.js +0 -25
  269. package/dist/boxes/riff/parse-riff-header.d.ts +0 -7
  270. package/dist/boxes/riff/parse-video-section.d.ts +0 -6
  271. package/dist/boxes/transport-stream/parse-transport-stream.d.ts +0 -7
  272. package/dist/boxes/webm/segments/parse-children.d.ts +0 -9
  273. package/dist/boxes/webm/segments/parse-children.js +0 -21
  274. package/dist/bun-reader.d.ts +0 -1
  275. package/dist/bun-reader.js +0 -17
  276. package/dist/continue-mdat-routine.d.ts +0 -17
  277. package/dist/continue-mdat-routine.js +0 -92
  278. package/dist/parse-video.d.ts +0 -14
  279. package/dist/state/iso-state.d.ts +0 -4
  280. package/dist/state/iso-state.js +0 -13
  281. /package/dist/{boxes/iso-base-media/base-type.js → containers/aac/types.js} +0 -0
  282. /package/dist/{boxes → containers}/avc/codec-string.d.ts +0 -0
  283. /package/dist/{boxes → containers}/avc/codec-string.js +0 -0
  284. /package/dist/{boxes → containers}/avc/color.d.ts +0 -0
  285. /package/dist/{boxes → containers}/avc/color.js +0 -0
  286. /package/dist/{boxes → containers}/avc/create-sps-pps-data.d.ts +0 -0
  287. /package/dist/{boxes → containers}/avc/create-sps-pps-data.js +0 -0
  288. /package/dist/{boxes → containers}/avc/interpret-sps.d.ts +0 -0
  289. /package/dist/{boxes → containers}/avc/interpret-sps.js +0 -0
  290. /package/dist/{boxes → containers}/avc/key.js +0 -0
  291. /package/dist/{boxes → containers}/avc/parse-avc.d.ts +0 -0
  292. /package/dist/{boxes → containers}/avc/parse-avc.js +0 -0
  293. /package/dist/{boxes → containers}/avc/sps-and-pps.d.ts +0 -0
  294. /package/dist/{boxes → containers}/avc/sps-and-pps.js +0 -0
  295. /package/dist/{boxes/iso-base-media/void-box.js → containers/flac/types.js} +0 -0
  296. /package/dist/{boxes/riff/riff-box.js → containers/iso-base-media/base-media-box.js} +0 -0
  297. /package/dist/{boxes → containers}/iso-base-media/base-type.d.ts +0 -0
  298. /package/dist/{boxes/transport-stream/boxes.js → containers/iso-base-media/base-type.js} +0 -0
  299. /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.d.ts +0 -0
  300. /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.js +0 -0
  301. /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.d.ts +0 -0
  302. /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.js +0 -0
  303. /package/dist/{boxes → containers}/iso-base-media/esds/esds.d.ts +0 -0
  304. /package/dist/{boxes → containers}/iso-base-media/esds/esds.js +0 -0
  305. /package/dist/{boxes → containers}/iso-base-media/ftyp.d.ts +0 -0
  306. /package/dist/{boxes → containers}/iso-base-media/ftyp.js +0 -0
  307. /package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.d.ts +0 -0
  308. /package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.js +0 -0
  309. /package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.d.ts +0 -0
  310. /package/dist/{boxes → containers}/iso-base-media/make-track.d.ts +0 -0
  311. /package/dist/{boxes → containers}/iso-base-media/make-track.js +0 -0
  312. /package/dist/{boxes → containers}/iso-base-media/mdhd.d.ts +0 -0
  313. /package/dist/{boxes → containers}/iso-base-media/mdhd.js +0 -0
  314. /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.d.ts +0 -0
  315. /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.js +0 -0
  316. /package/dist/{boxes → containers}/iso-base-media/meta/ilst.d.ts +0 -0
  317. /package/dist/{boxes → containers}/iso-base-media/meta/ilst.js +0 -0
  318. /package/dist/{boxes → containers}/iso-base-media/mvhd.d.ts +0 -0
  319. /package/dist/{boxes → containers}/iso-base-media/mvhd.js +0 -0
  320. /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.d.ts +0 -0
  321. /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.js +0 -0
  322. /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.d.ts +0 -0
  323. /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.js +0 -0
  324. /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.d.ts +0 -0
  325. /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.js +0 -0
  326. /package/dist/{boxes → containers}/iso-base-media/stsd/colr.d.ts +0 -0
  327. /package/dist/{boxes → containers}/iso-base-media/stsd/colr.js +0 -0
  328. /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.d.ts +0 -0
  329. /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.js +0 -0
  330. /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.d.ts +0 -0
  331. /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.js +0 -0
  332. /package/dist/{boxes → containers}/iso-base-media/stsd/keys.d.ts +0 -0
  333. /package/dist/{boxes → containers}/iso-base-media/stsd/keys.js +0 -0
  334. /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.d.ts +0 -0
  335. /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.js +0 -0
  336. /package/dist/{boxes → containers}/iso-base-media/stsd/stco.d.ts +0 -0
  337. /package/dist/{boxes → containers}/iso-base-media/stsd/stco.js +0 -0
  338. /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.d.ts +0 -0
  339. /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.js +0 -0
  340. /package/dist/{boxes → containers}/iso-base-media/stsd/stss.d.ts +0 -0
  341. /package/dist/{boxes → containers}/iso-base-media/stsd/stss.js +0 -0
  342. /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.d.ts +0 -0
  343. /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.js +0 -0
  344. /package/dist/{boxes → containers}/iso-base-media/stsd/stts.d.ts +0 -0
  345. /package/dist/{boxes → containers}/iso-base-media/stsd/stts.js +0 -0
  346. /package/dist/{boxes → containers}/iso-base-media/tfdt.d.ts +0 -0
  347. /package/dist/{boxes → containers}/iso-base-media/tfdt.js +0 -0
  348. /package/dist/{boxes → containers}/iso-base-media/tfhd.d.ts +0 -0
  349. /package/dist/{boxes → containers}/iso-base-media/tfhd.js +0 -0
  350. /package/dist/{boxes → containers}/iso-base-media/tkhd.d.ts +0 -0
  351. /package/dist/{boxes → containers}/iso-base-media/tkhd.js +0 -0
  352. /package/dist/{boxes → containers}/iso-base-media/to-date.d.ts +0 -0
  353. /package/dist/{boxes → containers}/iso-base-media/to-date.js +0 -0
  354. /package/dist/{boxes → containers}/iso-base-media/trun.d.ts +0 -0
  355. /package/dist/{boxes → containers}/iso-base-media/trun.js +0 -0
  356. /package/dist/{boxes → containers}/iso-base-media/void-box.d.ts +0 -0
  357. /package/dist/{boxes → containers}/mp3/get-duration.d.ts +0 -0
  358. /package/dist/{boxes → containers}/mp3/get-frame-length.d.ts +0 -0
  359. /package/dist/{boxes → containers}/mp3/get-frame-length.js +0 -0
  360. /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.d.ts +0 -0
  361. /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.js +0 -0
  362. /package/dist/{boxes → containers}/mp3/id3-v1.d.ts +0 -0
  363. /package/dist/{boxes → containers}/mp3/id3-v1.js +0 -0
  364. /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.d.ts +0 -0
  365. /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.js +0 -0
  366. /package/dist/{boxes → containers}/riff/is-movi.d.ts +0 -0
  367. /package/dist/{boxes → containers}/riff/is-movi.js +0 -0
  368. /package/dist/{boxes → containers}/riff/parse-avih.d.ts +0 -0
  369. /package/dist/{boxes → containers}/riff/parse-avih.js +0 -0
  370. /package/dist/{boxes → containers}/riff/parse-isft.d.ts +0 -0
  371. /package/dist/{boxes → containers}/riff/parse-isft.js +0 -0
  372. /package/dist/{boxes → containers}/riff/parse-strf.d.ts +0 -0
  373. /package/dist/{boxes → containers}/riff/parse-strf.js +0 -0
  374. /package/dist/{boxes → containers}/riff/parse-strh.d.ts +0 -0
  375. /package/dist/{boxes → containers}/riff/parse-strh.js +0 -0
  376. /package/dist/{boxes → containers}/riff/timescale.d.ts +0 -0
  377. /package/dist/{boxes → containers}/riff/timescale.js +0 -0
  378. /package/dist/{boxes → containers}/riff/traversal.js +0 -0
  379. /package/dist/{boxes → containers}/transport-stream/adts-header.d.ts +0 -0
  380. /package/dist/{boxes → containers}/transport-stream/boxes.d.ts +0 -0
  381. /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.d.ts +0 -0
  382. /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.js +0 -0
  383. /package/dist/{boxes → containers}/transport-stream/find-separator.d.ts +0 -0
  384. /package/dist/{boxes → containers}/transport-stream/find-separator.js +0 -0
  385. /package/dist/{boxes → containers}/transport-stream/get-tracks.d.ts +0 -0
  386. /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.d.ts +0 -0
  387. /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.js +0 -0
  388. /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.d.ts +0 -0
  389. /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.js +0 -0
  390. /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.d.ts +0 -0
  391. /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.js +0 -0
  392. /package/dist/{boxes → containers}/transport-stream/parse-pat.d.ts +0 -0
  393. /package/dist/{boxes → containers}/transport-stream/parse-pat.js +0 -0
  394. /package/dist/{boxes → containers}/transport-stream/parse-pes.d.ts +0 -0
  395. /package/dist/{boxes → containers}/transport-stream/parse-pes.js +0 -0
  396. /package/dist/{boxes → containers}/transport-stream/parse-pmt.d.ts +0 -0
  397. /package/dist/{boxes → containers}/transport-stream/parse-pmt.js +0 -0
  398. /package/dist/{boxes → containers}/transport-stream/process-stream-buffers.d.ts +0 -0
  399. /package/dist/{boxes → containers}/transport-stream/traversal.d.ts +0 -0
  400. /package/dist/{boxes → containers}/transport-stream/traversal.js +0 -0
  401. /package/dist/{boxes → containers}/webm/allowed-partial-segments.d.ts +0 -0
  402. /package/dist/{boxes → containers}/webm/allowed-partial-segments.js +0 -0
  403. /package/dist/{boxes → containers}/webm/av1-codec-private.d.ts +0 -0
  404. /package/dist/{boxes → containers}/webm/av1-codec-private.js +0 -0
  405. /package/dist/{boxes → containers}/webm/color.d.ts +0 -0
  406. /package/dist/{boxes → containers}/webm/color.js +0 -0
  407. /package/dist/{boxes → containers}/webm/description.d.ts +0 -0
  408. /package/dist/{boxes → containers}/webm/description.js +0 -0
  409. /package/dist/{boxes → containers}/webm/get-ready-tracks.d.ts +0 -0
  410. /package/dist/{boxes → containers}/webm/get-ready-tracks.js +0 -0
  411. /package/dist/{boxes → containers}/webm/get-sample-from-block.d.ts +0 -0
  412. /package/dist/{boxes → containers}/webm/get-sample-from-block.js +0 -0
  413. /package/dist/{boxes → containers}/webm/make-track.d.ts +0 -0
  414. /package/dist/{boxes → containers}/webm/make-track.js +0 -0
  415. /package/dist/{boxes → containers}/webm/segments/all-segments.d.ts +0 -0
  416. /package/dist/{boxes → containers}/webm/segments/all-segments.js +0 -0
  417. /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.d.ts +0 -0
  418. /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.js +0 -0
  419. /package/dist/{boxes → containers}/webm/segments/track-entry.d.ts +0 -0
  420. /package/dist/{boxes → containers}/webm/segments/track-entry.js +0 -0
  421. /package/dist/{boxes → containers}/webm/traversal.d.ts +0 -0
  422. /package/dist/{boxes → containers}/webm/traversal.js +0 -0
  423. /package/dist/{may-skip-video-data → state}/may-skip-video-data.js +0 -0
  424. /package/dist/{may-skip-video-data → state}/need-samples-for-fields.d.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -1,18 +1,20 @@
1
1
  import type { LogLevel } from './log';
2
- export { MatroskaSegment } from './boxes/webm/segments';
3
- export { MatroskaElement } from './boxes/webm/segments/all-segments';
2
+ export { MatroskaSegment } from './containers/webm/segments';
3
+ export { MatroskaElement } from './containers/webm/segments/all-segments';
4
4
  export { IsAGifError, IsAnImageError, IsAnUnsupportedAudioTypeError, IsAnUnsupportedFileTypeError, IsAPdfError, } from './errors';
5
5
  export type { SamplePosition } from './get-sample-positions';
6
6
  export { MetadataEntry } from './metadata/get-metadata';
7
- export { MediaParserKeyframe } from './options';
7
+ export { MediaParserKeyframe, ParseMediaSrc } from './options';
8
8
  export type { MediaParserEmbeddedImage } from './state/images';
9
9
  export { AudioTrack, MediaParserAudioCodec, MediaParserVideoCodec, OtherTrack, Track, VideoTrack, VideoTrackColorParams, } from './get-tracks';
10
- export type { Options, ParseMediaContainer, ParseMediaDynamicOptions, ParseMediaFields, ParseMediaOnProgress, ParseMediaOptions, ParseMediaProgress, ParseMediaResult, TracksField, } from './options';
10
+ export { downloadAndParseMedia } from './download-and-parse-media';
11
+ export type { MediaParserContainer, Options, ParseMediaCallbacks, ParseMediaFields, ParseMediaOnProgress, ParseMediaOptions, ParseMediaProgress, ParseMediaResult, TracksField, } from './options';
11
12
  export { parseMedia } from './parse-media';
12
13
  export { AudioOrVideoSample, OnAudioSample, OnAudioTrack, OnVideoSample, OnVideoTrack, } from './webcodec-sample-types';
13
14
  export { Dimensions } from './get-dimensions';
14
15
  export { MediaParserLocation } from './get-location';
15
16
  export type { ReaderInterface } from './readers/reader';
17
+ export type { CreateContent, Writer, WriterInterface } from './writers/writer';
16
18
  export declare const MediaParserInternals: {
17
19
  Log: {
18
20
  trace: (logLevel: LogLevel, ...args: Parameters<typeof console.log>) => void;
@@ -21,10 +23,11 @@ export declare const MediaParserInternals: {
21
23
  warn: (logLevel: LogLevel, ...args: Parameters<typeof console.log>) => void;
22
24
  error: (...args: Parameters<typeof console.log>) => void;
23
25
  };
24
- createAacCodecPrivate: ({ audioObjectType, sampleRate, channelConfiguration, }: {
26
+ createAacCodecPrivate: ({ audioObjectType, sampleRate, channelConfiguration, codecPrivate, }: {
25
27
  audioObjectType: number;
26
28
  sampleRate: number;
27
29
  channelConfiguration: number;
30
+ codecPrivate: Uint8Array | null;
28
31
  }) => Uint8Array;
29
32
  matroskaElements: {
30
33
  readonly Header: "0x1a45dfa3";
@@ -655,11 +658,11 @@ export declare const MediaParserInternals: {
655
658
  iterator: import("./buffer-iterator").BufferIterator;
656
659
  offset: number;
657
660
  size: number;
658
- }) => import("./boxes/iso-base-media/tkhd").TkhdBox;
661
+ }) => import("./containers/iso-base-media/tkhd").TkhdBox;
659
662
  getArrayBufferIterator: (initialData: Uint8Array, maxBytes: number | null) => {
660
663
  startReadingBits: () => void;
661
664
  stopReadingBits: () => void;
662
- skipTo: (offset: number, reset: boolean) => void;
665
+ skipTo: (offset: number) => void;
663
666
  addData: (newData: Uint8Array) => void;
664
667
  counter: import("./buffer-iterator").OffsetCounter;
665
668
  peekB: (length: number) => void;
@@ -667,7 +670,10 @@ export declare const MediaParserInternals: {
667
670
  getBits: (bits: number) => number;
668
671
  bytesRemaining: () => number;
669
672
  leb128: () => number;
670
- removeBytesRead: () => void;
673
+ removeBytesRead: (force: boolean, mode: import("./options").ParseMediaMode) => {
674
+ bytesRemoved: number;
675
+ removedData: Uint8Array | null;
676
+ };
671
677
  discard: (length: number) => void;
672
678
  getEightByteNumber: (littleEndian?: boolean) => number;
673
679
  getFourByteNumber: () => number;
@@ -712,25 +718,136 @@ export declare const MediaParserInternals: {
712
718
  startCheckpoint: () => {
713
719
  returnToCheckpoint: () => void;
714
720
  };
721
+ getFlacCodecNumber: () => number;
715
722
  };
716
- parseStsd: ({ iterator, offset, size, state, }: {
717
- iterator: import("./buffer-iterator").BufferIterator;
723
+ parseStsd: ({ offset, size, state, }: {
718
724
  offset: number;
719
725
  size: number;
720
726
  state: import("./state/parser-state").ParserState;
721
- }) => Promise<import("./boxes/iso-base-media/stsd/stsd").StsdBox>;
722
- makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, signal, getIterator, fields, onAudioTrack, onVideoTrack, supportsContentRange, contentLength, logLevel, }: {
727
+ }) => Promise<import("./containers/iso-base-media/stsd/stsd").StsdBox>;
728
+ makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, signal, fields, onAudioTrack, onVideoTrack, contentLength, logLevel, mode, src, readerInterface, onDiscardedData, }: {
723
729
  hasAudioTrackHandlers: boolean;
724
730
  hasVideoTrackHandlers: boolean;
725
731
  signal: AbortSignal | undefined;
726
- getIterator: () => import("./buffer-iterator").BufferIterator | null;
727
732
  fields: import("./options").Options<import("./options").ParseMediaFields>;
728
- supportsContentRange: boolean;
729
733
  onAudioTrack: import("./webcodec-sample-types").OnAudioTrack | null;
730
734
  onVideoTrack: import("./webcodec-sample-types").OnVideoTrack | null;
731
- contentLength: number | null;
735
+ contentLength: number;
732
736
  logLevel: LogLevel;
737
+ mode: import("./options").ParseMediaMode;
738
+ src: import("./options").ParseMediaSrc;
739
+ readerInterface: import("./readers/reader").ReaderInterface;
740
+ onDiscardedData: import("./options").OnDiscardedData | null;
733
741
  }) => {
742
+ onAudioTrack: import("./webcodec-sample-types").OnAudioTrack | null;
743
+ onVideoTrack: import("./webcodec-sample-types").OnVideoTrack | null;
744
+ emittedFields: import("./options").AllOptions<import("./options").ParseMediaFields>;
745
+ fields: Partial<import("./options").AllOptions<import("./options").ParseMediaFields>>;
746
+ slowDurationAndFps: {
747
+ addVideoSample: (videoSample: import("./webcodec-sample-types").AudioOrVideoSample) => void;
748
+ addAudioSample: (audioSample: import("./webcodec-sample-types").AudioOrVideoSample) => void;
749
+ getSlowDurationInSeconds: () => number;
750
+ getFps: () => number;
751
+ getSlowNumberOfFrames: () => number;
752
+ getAudioBitrate: () => number | null;
753
+ getVideoBitrate: () => number | null;
754
+ };
755
+ contentLength: number;
756
+ images: {
757
+ images: import("./state/images").MediaParserEmbeddedImage[];
758
+ addImage: (image: import("./state/images").MediaParserEmbeddedImage) => void;
759
+ };
760
+ videoSection: {
761
+ setVideoSection: (section: {
762
+ start: number;
763
+ size: number;
764
+ }) => void;
765
+ getVideoSection: () => {
766
+ start: number;
767
+ size: number;
768
+ };
769
+ isInVideoSectionState: (iterator: import("./buffer-iterator").BufferIterator) => "no-section-defined" | "in-section" | "outside-section";
770
+ };
771
+ logLevel: "trace" | "verbose" | "info" | "warn" | "error";
772
+ iterator: {
773
+ startReadingBits: () => void;
774
+ stopReadingBits: () => void;
775
+ skipTo: (offset: number) => void;
776
+ addData: (newData: Uint8Array) => void;
777
+ counter: import("./buffer-iterator").OffsetCounter;
778
+ peekB: (length: number) => void;
779
+ peekD: (length: number) => void;
780
+ getBits: (bits: number) => number;
781
+ bytesRemaining: () => number;
782
+ leb128: () => number;
783
+ removeBytesRead: (force: boolean, mode: import("./options").ParseMediaMode) => {
784
+ bytesRemoved: number;
785
+ removedData: Uint8Array | null;
786
+ };
787
+ discard: (length: number) => void;
788
+ getEightByteNumber: (littleEndian?: boolean) => number;
789
+ getFourByteNumber: () => number;
790
+ getSlice: (amount: number) => Uint8Array;
791
+ getAtom: () => string;
792
+ detectFileType: () => import("./file-types/detect-file-type").FileType;
793
+ getPaddedFourByteNumber: () => number;
794
+ getMatroskaSegmentId: () => string | null;
795
+ getVint: () => number | null;
796
+ getUint8: () => number;
797
+ getEBML: () => number;
798
+ getInt8: () => number;
799
+ getUint16: () => number;
800
+ getUint16Le: () => number;
801
+ getUint24: () => number;
802
+ getInt24: () => number;
803
+ getInt16: () => number;
804
+ getUint32: () => number;
805
+ getUint64: (littleEndian?: boolean) => bigint;
806
+ getInt64: (littleEndian?: boolean) => bigint;
807
+ getFixedPointUnsigned1616Number: () => number;
808
+ getFixedPointSigned1616Number: () => number;
809
+ getFixedPointSigned230Number: () => number;
810
+ getPascalString: () => number[];
811
+ getUint(length: number): number;
812
+ getByteString(length: number, trimTrailingZeroes: boolean): string;
813
+ planBytes: (size: number) => {
814
+ discardRest: () => Uint8Array;
815
+ };
816
+ getFloat64: () => number;
817
+ readUntilNullTerminator: () => string;
818
+ getFloat32: () => number;
819
+ getUint32Le: () => number;
820
+ getInt32Le: () => number;
821
+ getInt32: () => number;
822
+ destroy: () => void;
823
+ startBox: (size: number) => {
824
+ discardRest: () => void;
825
+ expectNoMoreBytes: () => void;
826
+ };
827
+ readExpGolomb: () => number;
828
+ startCheckpoint: () => {
829
+ returnToCheckpoint: () => void;
830
+ };
831
+ getFlacCodecNumber: () => number;
832
+ };
833
+ signal: AbortSignal | undefined;
834
+ mode: import("./options").ParseMediaMode;
835
+ eventLoop: {
836
+ eventLoopBreakIfNeeded: () => Promise<void>;
837
+ };
838
+ src: import("./options").ParseMediaSrc;
839
+ readerInterface: import("./readers/reader").ReaderInterface;
840
+ discardReadBytes: (force: boolean) => Promise<void>;
841
+ getStructureOrNull: () => import("./parse-result").Structure | null;
842
+ getStructure: () => import("./parse-result").Structure;
843
+ setStructure: (value: import("./parse-result").Structure) => void;
844
+ getFlacStructure: () => import("./containers/flac/types").FlacStructure;
845
+ getIsoStructure: () => import("./parse-result").IsoBaseMediaStructure;
846
+ getMp3Structure: () => import("./parse-result").Mp3Structure;
847
+ getRiffStructure: () => import("./containers/riff/riff-box").RiffStructure;
848
+ getTsStructure: () => import("./parse-result").TransportStreamStructure;
849
+ getWavStructure: () => import("./containers/wav/types").WavStructure;
850
+ getMatroskaStructure: () => import("./parse-result").MatroskaStructure;
734
851
  riff: {
735
852
  getAvcProfile: () => import("./state/parser-state").SpsAndPps | null;
736
853
  onProfile: (profile: import("./state/parser-state").SpsAndPps) => Promise<void>;
@@ -740,14 +857,14 @@ export declare const MediaParserInternals: {
740
857
  };
741
858
  transportStream: {
742
859
  nextPesHeaderStore: {
743
- setNextPesHeader: (pesHeader: import("./boxes/transport-stream/parse-pes").PacketPes) => void;
744
- getNextPesHeader: () => import("./boxes/transport-stream/parse-pes").PacketPes;
860
+ setNextPesHeader: (pesHeader: import("./containers/transport-stream/parse-pes").PacketPes) => void;
861
+ getNextPesHeader: () => import("./containers/transport-stream/parse-pes").PacketPes;
745
862
  };
746
- streamBuffers: Map<number, import("./boxes/transport-stream/process-stream-buffers").TransportStreamPacketBuffer>;
863
+ streamBuffers: Map<number, import("./containers/transport-stream/process-stream-buffers").TransportStreamPacketBuffer>;
747
864
  };
748
865
  webm: {
749
- onTrackEntrySegment: import("./boxes/webm/segments").OnTrackEntrySegment;
750
- getTrackInfoByNumber: (id: number) => import("./boxes/webm/segments/track-entry").TrackInfo;
866
+ onTrackEntrySegment: import("./containers/webm/segments").OnTrackEntrySegment;
867
+ getTrackInfoByNumber: (id: number) => import("./containers/webm/segments/track-entry").TrackInfo;
751
868
  setTimestampOffset: (byteOffset: number, timestamp: number) => void;
752
869
  getTimestampOffsetForByteOffset: (byteOffset: number) => number | undefined;
753
870
  timescale: null;
@@ -759,17 +876,38 @@ export declare const MediaParserInternals: {
759
876
  isInsideCluster: (iterator: import("./buffer-iterator").BufferIterator) => import("./state/webm").ClusterSection | null;
760
877
  };
761
878
  iso: {
762
- getShouldReturnToVideoSectionAfterEnd: () => boolean;
763
- setShouldReturnToVideoSectionAfterEnd: (value: boolean) => void;
764
879
  flatSamples: {
765
880
  getSamples: () => import("./state/iso-base-media/cached-sample-positions").FlatSample[] | null;
766
881
  setSamples: (samples: import("./state/iso-base-media/cached-sample-positions").FlatSample[]) => void;
767
882
  };
883
+ moov: {
884
+ setMoovBox: (moov: import("./containers/iso-base-media/moov/moov").MoovBox) => void;
885
+ getMoovBox: () => import("./containers/iso-base-media/moov/moov").MoovBox | null;
886
+ };
768
887
  };
769
888
  mp3Info: {
770
889
  getMp3Info: () => import("./state/mp3").Mp3Info | null;
771
890
  setMp3Info: (info: import("./state/mp3").Mp3Info) => void;
772
891
  };
892
+ aac: {
893
+ addSample: ({ offset, size }: {
894
+ offset: number;
895
+ size: number;
896
+ }) => {
897
+ offset: number;
898
+ index: number;
899
+ size: number;
900
+ };
901
+ getSamples: () => {
902
+ offset: number;
903
+ index: number;
904
+ size: number;
905
+ }[];
906
+ };
907
+ flac: {
908
+ setBlockingBitStrategy: (strategy: number) => void;
909
+ getBlockingBitStrategy: () => number | undefined;
910
+ };
773
911
  callbacks: {
774
912
  registerVideoSampleCallback: (id: number, callback: import("./webcodec-sample-types").OnVideoSample | null) => Promise<void>;
775
913
  onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
@@ -781,10 +919,11 @@ export declare const MediaParserInternals: {
781
919
  registerAudioSampleCallback: (id: number, callback: import("./webcodec-sample-types").OnAudioSample | null) => Promise<void>;
782
920
  tracks: {
783
921
  hasAllTracks: () => boolean;
784
- setIsDone: () => void;
922
+ getIsDone: () => boolean;
923
+ setIsDone: (logLevel: LogLevel) => void;
785
924
  addTrack: (track: import("./get-tracks").Track) => void;
786
925
  getTracks: () => import("./get-tracks").Track[];
787
- ensureHasTracksAtEnd: () => void;
926
+ ensureHasTracksAtEnd: (fields: import("./options").Options<import("./options").ParseMediaFields>) => void;
788
927
  };
789
928
  audioSampleCallbacks: Record<number, import("./webcodec-sample-types").OnAudioSample>;
790
929
  videoSampleCallbacks: Record<number, import("./webcodec-sample-types").OnVideoSample>;
@@ -798,60 +937,25 @@ export declare const MediaParserInternals: {
798
937
  addKeyframe: (keyframe: import("./options").MediaParserKeyframe) => void;
799
938
  getKeyframes: () => import("./options").MediaParserKeyframe[];
800
939
  };
801
- structure: {
802
- getStructureOrNull: () => import("./parse-result").Structure | null;
803
- getStructure: () => import("./parse-result").Structure;
804
- setStructure: (value: import("./parse-result").Structure) => void;
805
- };
806
- onAudioTrack: import("./webcodec-sample-types").OnAudioTrack | null;
807
- onVideoTrack: import("./webcodec-sample-types").OnVideoTrack | null;
808
- supportsContentRange: boolean;
809
- emittedFields: import("./options").AllOptions<import("./options").ParseMediaFields>;
810
- fields: Partial<import("./options").AllOptions<import("./options").ParseMediaFields>>;
811
- slowDurationAndFps: {
812
- addVideoSample: (videoSample: import("./webcodec-sample-types").AudioOrVideoSample) => void;
813
- addAudioSample: (audioSample: import("./webcodec-sample-types").AudioOrVideoSample) => void;
814
- getSlowDurationInSeconds: () => number;
815
- getFps: () => number;
816
- getSlowNumberOfFrames: () => number;
817
- };
818
- contentLength: number | null;
819
- images: {
820
- images: import("./state/images").MediaParserEmbeddedImage[];
821
- addImage: (image: import("./state/images").MediaParserEmbeddedImage) => void;
822
- };
823
- videoSection: {
824
- setVideoSection: (section: {
825
- start: number;
826
- size: number;
827
- }) => void;
828
- getVideoSection: () => {
829
- start: number;
830
- size: number;
831
- };
832
- isInVideoSectionState: (iterator: import("./buffer-iterator").BufferIterator) => "no-section-defined" | "in-section" | "outside-section";
833
- };
834
- logLevel: "trace" | "verbose" | "info" | "warn" | "error";
835
940
  };
836
- processSample: ({ iterator, state, }: {
837
- iterator: import("./buffer-iterator").BufferIterator;
941
+ processSample: ({ state, }: {
838
942
  state: import("./state/parser-state").ParserState;
839
943
  }) => Promise<{
840
- sample: import("./boxes/iso-base-media/stsd/samples").Sample | null;
944
+ sample: import("./containers/iso-base-media/stsd/samples").Sample | null;
841
945
  }>;
842
946
  parseFtyp: ({ iterator, size, offset, }: {
843
947
  iterator: import("./buffer-iterator").BufferIterator;
844
948
  size: number;
845
949
  offset: number;
846
- }) => import("./boxes/iso-base-media/ftyp").FtypBox;
847
- parseEbml: (iterator: import("./buffer-iterator").BufferIterator, state: import("./state/parser-state").ParserState) => Promise<import("./boxes/webm/parse-ebml").Prettify<import("./boxes/webm/segments/all-segments").PossibleEbml>>;
950
+ }) => import("./containers/iso-base-media/ftyp").FtypBox;
951
+ parseEbml: (state: import("./state/parser-state").ParserState) => Promise<import("./containers/webm/parse-ebml").Prettify<import("./containers/webm/segments/all-segments").PossibleEbml>>;
848
952
  parseMvhd: ({ iterator, offset, size, }: {
849
953
  iterator: import("./buffer-iterator").BufferIterator;
850
954
  offset: number;
851
955
  size: number;
852
- }) => import("./boxes/iso-base-media/mvhd").MvhdBox;
956
+ }) => import("./containers/iso-base-media/mvhd").MvhdBox;
853
957
  };
854
- export type { Prettify } from './boxes/webm/parse-ebml';
855
- export type { Ebml, EbmlValue, FloatWithSize, MainSegment, PossibleEbml, TrackEntry, UintWithSize, } from './boxes/webm/segments/all-segments';
958
+ export type { Prettify } from './containers/webm/parse-ebml';
959
+ export type { Ebml, EbmlValue, FloatWithSize, MainSegment, PossibleEbml, TrackEntry, UintWithSize, } from './containers/webm/segments/all-segments';
856
960
  export type { LogLevel };
857
961
  export { VERSION } from './version';
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERSION = exports.MediaParserInternals = exports.parseMedia = exports.IsAPdfError = exports.IsAnUnsupportedFileTypeError = exports.IsAnUnsupportedAudioTypeError = exports.IsAnImageError = exports.IsAGifError = void 0;
3
+ exports.VERSION = exports.MediaParserInternals = exports.parseMedia = exports.downloadAndParseMedia = exports.IsAPdfError = exports.IsAnUnsupportedFileTypeError = exports.IsAnUnsupportedAudioTypeError = exports.IsAnImageError = exports.IsAGifError = void 0;
4
4
  const aac_codecprivate_1 = require("./aac-codecprivate");
5
- const ftyp_1 = require("./boxes/iso-base-media/ftyp");
6
- const mvhd_1 = require("./boxes/iso-base-media/mvhd");
7
- const samples_1 = require("./boxes/iso-base-media/stsd/samples");
8
- const stsd_1 = require("./boxes/iso-base-media/stsd/stsd");
9
- const tkhd_1 = require("./boxes/iso-base-media/tkhd");
10
- const parse_ebml_1 = require("./boxes/webm/parse-ebml");
11
- const all_segments_1 = require("./boxes/webm/segments/all-segments");
12
5
  const buffer_iterator_1 = require("./buffer-iterator");
6
+ const ftyp_1 = require("./containers/iso-base-media/ftyp");
7
+ const mvhd_1 = require("./containers/iso-base-media/mvhd");
8
+ const samples_1 = require("./containers/iso-base-media/stsd/samples");
9
+ const stsd_1 = require("./containers/iso-base-media/stsd/stsd");
10
+ const tkhd_1 = require("./containers/iso-base-media/tkhd");
11
+ const parse_ebml_1 = require("./containers/webm/parse-ebml");
12
+ const all_segments_1 = require("./containers/webm/segments/all-segments");
13
13
  const log_1 = require("./log");
14
14
  const parser_state_1 = require("./state/parser-state");
15
15
  var errors_1 = require("./errors");
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "IsAnImageError", { enumerable: true, get: functi
18
18
  Object.defineProperty(exports, "IsAnUnsupportedAudioTypeError", { enumerable: true, get: function () { return errors_1.IsAnUnsupportedAudioTypeError; } });
19
19
  Object.defineProperty(exports, "IsAnUnsupportedFileTypeError", { enumerable: true, get: function () { return errors_1.IsAnUnsupportedFileTypeError; } });
20
20
  Object.defineProperty(exports, "IsAPdfError", { enumerable: true, get: function () { return errors_1.IsAPdfError; } });
21
+ var download_and_parse_media_1 = require("./download-and-parse-media");
22
+ Object.defineProperty(exports, "downloadAndParseMedia", { enumerable: true, get: function () { return download_and_parse_media_1.downloadAndParseMedia; } });
21
23
  var parse_media_1 = require("./parse-media");
22
24
  Object.defineProperty(exports, "parseMedia", { enumerable: true, get: function () { return parse_media_1.parseMedia; } });
23
25
  exports.MediaParserInternals = {
@@ -0,0 +1,7 @@
1
+ import type { ParserState } from './state/parser-state';
2
+ export declare const initVideo: ({ state, mimeType, name, contentLength, }: {
3
+ state: ParserState;
4
+ mimeType: string | null;
5
+ name: string | null;
6
+ contentLength: number;
7
+ }) => Promise<never> | undefined;
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseVideo = void 0;
4
- const parse_boxes_1 = require("./boxes/iso-base-media/parse-boxes");
5
- const parse_mp3_1 = require("./boxes/mp3/parse-mp3");
6
- const parse_riff_1 = require("./boxes/riff/parse-riff");
7
- const parse_transport_stream_1 = require("./boxes/transport-stream/parse-transport-stream");
8
- const parse_webm_header_1 = require("./boxes/webm/parse-webm-header");
3
+ exports.initVideo = void 0;
9
4
  const errors_1 = require("./errors");
10
5
  const log_1 = require("./log");
11
- const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
12
- const fileType = iterator.detectFileType();
6
+ const initVideo = ({ state, mimeType, name, contentLength, }) => {
7
+ const fileType = state.iterator.detectFileType();
13
8
  if (fileType.type === 'riff') {
14
9
  log_1.Log.verbose(state.logLevel, 'Detected RIFF container');
15
- state.structure.setStructure({
10
+ state.setStructure({
16
11
  type: 'riff',
17
12
  boxes: [],
18
13
  });
@@ -20,7 +15,7 @@ const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
20
15
  }
21
16
  if (fileType.type === 'iso-base-media') {
22
17
  log_1.Log.verbose(state.logLevel, 'Detected ISO Base Media container');
23
- state.structure.setStructure({
18
+ state.setStructure({
24
19
  type: 'iso-base-media',
25
20
  boxes: [],
26
21
  });
@@ -28,7 +23,7 @@ const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
28
23
  }
29
24
  if (fileType.type === 'webm') {
30
25
  log_1.Log.verbose(state.logLevel, 'Detected Matroska container');
31
- state.structure.setStructure({
26
+ state.setStructure({
32
27
  boxes: [],
33
28
  type: 'matroska',
34
29
  });
@@ -36,7 +31,7 @@ const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
36
31
  }
37
32
  if (fileType.type === 'transport-stream') {
38
33
  log_1.Log.verbose(state.logLevel, 'Detected MPEG-2 Transport Stream');
39
- state.structure.setStructure({
34
+ state.setStructure({
40
35
  boxes: [],
41
36
  type: 'transport-stream',
42
37
  });
@@ -48,26 +43,34 @@ const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
48
43
  boxes: [],
49
44
  type: 'mp3',
50
45
  };
51
- state.structure.setStructure(structure);
46
+ state.setStructure(structure);
52
47
  return;
53
48
  }
54
49
  if (fileType.type === 'wav') {
55
- return Promise.reject(new errors_1.IsAnUnsupportedAudioTypeError({
56
- message: 'WAV files are not yet supported',
57
- mimeType,
58
- sizeInBytes: contentLength,
59
- fileName: name,
60
- audioType: 'wav',
61
- }));
50
+ log_1.Log.verbose(state.logLevel, 'Detected WAV');
51
+ const structure = {
52
+ boxes: [],
53
+ type: 'wav',
54
+ };
55
+ state.setStructure(structure);
56
+ return;
57
+ }
58
+ if (fileType.type === 'flac') {
59
+ log_1.Log.verbose(state.logLevel, 'Detected FLAC');
60
+ const structure = {
61
+ boxes: [],
62
+ type: 'flac',
63
+ };
64
+ state.setStructure(structure);
65
+ return;
62
66
  }
63
67
  if (fileType.type === 'aac') {
64
- return Promise.reject(new errors_1.IsAnUnsupportedAudioTypeError({
65
- message: 'AAC files are not yet supported',
66
- mimeType,
67
- sizeInBytes: contentLength,
68
- fileName: name,
69
- audioType: 'aac',
70
- }));
68
+ log_1.Log.verbose(state.logLevel, 'Detected AAC');
69
+ state.setStructure({
70
+ type: 'aac',
71
+ boxes: [],
72
+ });
73
+ return;
71
74
  }
72
75
  if (fileType.type === 'gif') {
73
76
  return Promise.reject(new errors_1.IsAGifError({
@@ -108,36 +111,4 @@ const initVideo = ({ iterator, state, mimeType, name, contentLength, }) => {
108
111
  }
109
112
  return Promise.reject(new Error('Unknown video format ' + fileType));
110
113
  };
111
- const parseVideo = async ({ iterator, state, mimeType, contentLength, name, }) => {
112
- if (iterator.bytesRemaining() === 0) {
113
- return Promise.reject(new Error('no bytes'));
114
- }
115
- const structure = state.structure.getStructureOrNull();
116
- if (structure === null) {
117
- await initVideo({ iterator, state, mimeType, name, contentLength });
118
- return { skipTo: null };
119
- }
120
- if (structure.type === 'riff') {
121
- return (0, parse_riff_1.parseRiff)({ iterator, state });
122
- }
123
- if (structure.type === 'mp3') {
124
- return (0, parse_mp3_1.parseMp3)({ iterator, state });
125
- }
126
- if (structure.type === 'iso-base-media') {
127
- return (0, parse_boxes_1.parseIsoBaseMedia)({
128
- iterator,
129
- state,
130
- });
131
- }
132
- if (structure.type === 'matroska') {
133
- return (0, parse_webm_header_1.parseWebm)({ iterator, state });
134
- }
135
- if (structure.type === 'transport-stream') {
136
- return (0, parse_transport_stream_1.parseTransportStream)({
137
- iterator,
138
- state,
139
- });
140
- }
141
- return Promise.reject(new Error('Unknown video format ' + structure));
142
- };
143
- exports.parseVideo = parseVideo;
114
+ exports.initVideo = initVideo;
@@ -0,0 +1,2 @@
1
+ import type { InternalParseMedia } from './options';
2
+ export declare const internalParseMedia: InternalParseMedia;