@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
@@ -3,27 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseMdatSection = void 0;
4
4
  const convert_audio_or_video_sample_1 = require("../../../convert-audio-or-video-sample");
5
5
  const get_tracks_1 = require("../../../get-tracks");
6
- const may_skip_video_data_1 = require("../../../may-skip-video-data/may-skip-video-data");
6
+ const skip_1 = require("../../../skip");
7
7
  const cached_sample_positions_1 = require("../../../state/iso-base-media/cached-sample-positions");
8
- const parseMdatSection = async ({ iterator, state, }) => {
8
+ const may_skip_video_data_1 = require("../../../state/may-skip-video-data");
9
+ const get_moov_atom_1 = require("../get-moov-atom");
10
+ const parseMdatSection = async (state) => {
9
11
  const videoSection = state.videoSection.getVideoSection();
12
+ const endOfMdat = videoSection.size + videoSection.start;
10
13
  // don't need mdat at all, can skip
11
14
  if ((0, may_skip_video_data_1.maySkipVideoData)({ state })) {
12
- return videoSection.size + videoSection.start;
15
+ return (0, skip_1.makeSkip)(endOfMdat);
13
16
  }
14
- const alreadyHas = (0, get_tracks_1.getHasTracks)(state.structure.getStructure(), state);
17
+ const alreadyHas = (0, get_tracks_1.getHasTracks)(state);
15
18
  if (!alreadyHas) {
16
- // Will first read the end and then return
17
- if (state.supportsContentRange) {
18
- state.iso.setShouldReturnToVideoSectionAfterEnd(true);
19
- return videoSection.size + videoSection.start;
20
- }
21
- throw new Error('Source does not support reading partially, but metadata is at the end of the file. This would require buffering the entire file in memory, leading to a leak. Remotion does not currently support this scenario, make sure to pass a source that supports Content-Range.');
19
+ const moov = await (0, get_moov_atom_1.getMoovAtom)({
20
+ endOfMdat,
21
+ state,
22
+ });
23
+ state.iso.moov.setMoovBox(moov);
24
+ state.callbacks.tracks.setIsDone(state.logLevel);
25
+ state.getIsoStructure().boxes.push(moov);
26
+ return (0, exports.parseMdatSection)(state);
22
27
  }
23
28
  if (!state.iso.flatSamples.getSamples()) {
24
29
  state.iso.flatSamples.setSamples((0, cached_sample_positions_1.calculateFlatSamples)(state));
25
30
  }
26
31
  const flatSamples = state.iso.flatSamples.getSamples();
32
+ const { iterator } = state;
27
33
  const samplesWithIndex = flatSamples.find((sample) => {
28
34
  return sample.samplePosition.offset === iterator.counter.getOffset();
29
35
  });
@@ -40,7 +46,7 @@ const parseMdatSection = async ({ iterator, state, }) => {
40
46
  }
41
47
  // guess we reached the end!
42
48
  // iphonevideo.mov has extra padding here, so let's make sure to jump ahead
43
- return videoSection.size + videoSection.start;
49
+ return (0, skip_1.makeSkip)(endOfMdat);
44
50
  }
45
51
  if (iterator.bytesRemaining() < samplesWithIndex.samplePosition.size) {
46
52
  return null;
@@ -85,7 +91,6 @@ const parseMdatSection = async ({ iterator, state, }) => {
85
91
  timescale: samplesWithIndex.track.timescale,
86
92
  }, samplesWithIndex.track.timescale));
87
93
  }
88
- iterator.removeBytesRead();
89
94
  return null;
90
95
  };
91
96
  exports.parseMdatSection = parseMdatSection;
@@ -1,4 +1,3 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
1
  import type { AnySegment } from '../../../parse-result';
3
2
  import type { ParserState } from '../../../state/parser-state';
4
3
  import type { BaseBox } from '../base-type';
@@ -6,8 +5,7 @@ export interface MoovBox extends BaseBox {
6
5
  type: 'moov-box';
7
6
  children: AnySegment[];
8
7
  }
9
- export declare const parseMoov: ({ iterator, offset, size, state, }: {
10
- iterator: BufferIterator;
8
+ export declare const parseMoov: ({ offset, size, state, }: {
11
9
  offset: number;
12
10
  size: number;
13
11
  state: ParserState;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseMoov = void 0;
4
4
  const get_children_1 = require("../get-children");
5
- const parseMoov = async ({ iterator, offset, size, state, }) => {
5
+ const parseMoov = async ({ offset, size, state, }) => {
6
6
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
7
- iterator,
8
7
  state,
9
8
  size: size - 8,
10
9
  });
@@ -0,0 +1,3 @@
1
+ import type { ParseResult } from '../../parse-result';
2
+ import type { ParserState } from '../../state/parser-state';
3
+ export declare const parseIsoBaseMedia: (state: ParserState) => Promise<ParseResult>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseIsoBaseMedia = void 0;
4
+ const mdat_1 = require("./mdat/mdat");
5
+ const process_box_1 = require("./process-box");
6
+ const parseIsoBaseMedia = async (state) => {
7
+ const videoSectionState = state.videoSection.isInVideoSectionState(state.iterator);
8
+ if (videoSectionState === 'in-section') {
9
+ const skipTo = await (0, mdat_1.parseMdatSection)(state);
10
+ return skipTo;
11
+ }
12
+ const result = await (0, process_box_1.processBox)(state);
13
+ if (result) {
14
+ state.getIsoStructure().boxes.push(result);
15
+ }
16
+ return null;
17
+ };
18
+ exports.parseIsoBaseMedia = parseIsoBaseMedia;
@@ -0,0 +1,3 @@
1
+ import type { ParserState } from '../../state/parser-state';
2
+ import type { BoxAndNext } from './base-media-box';
3
+ export declare const processBox: (state: ParserState) => Promise<BoxAndNext>;
@@ -31,18 +31,17 @@ const tfhd_1 = require("./tfhd");
31
31
  const tkhd_1 = require("./tkhd");
32
32
  const trak_1 = require("./trak/trak");
33
33
  const trun_1 = require("./trun");
34
- const processBox = async ({ iterator, state, }) => {
34
+ const processBox = async (state) => {
35
+ const { iterator } = state;
35
36
  const fileOffset = iterator.counter.getOffset();
36
37
  const { returnToCheckpoint } = iterator.startCheckpoint();
37
38
  const bytesRemaining = iterator.bytesRemaining();
39
+ const startOff = iterator.counter.getOffset();
38
40
  const boxSizeRaw = iterator.getFourByteNumber();
39
41
  if (boxSizeRaw === 0) {
40
42
  return {
41
- box: {
42
- type: 'void-box',
43
- boxSize: 0,
44
- },
45
- skipTo: null,
43
+ type: 'void-box',
44
+ boxSize: 0,
46
45
  };
47
46
  }
48
47
  // If `boxSize === 1`, the 8 bytes after the box type are the size of the box.
@@ -54,207 +53,129 @@ const processBox = async ({ iterator, state, }) => {
54
53
  const boxType = iterator.getByteString(4, false);
55
54
  const boxSize = boxSizeRaw === 1 ? iterator.getEightByteNumber() : boxSizeRaw;
56
55
  log_1.Log.trace(state.logLevel, 'Found box', boxType, boxSize);
56
+ const headerLength = iterator.counter.getOffset() - startOff;
57
57
  if (boxType === 'mdat') {
58
58
  state.videoSection.setVideoSection({
59
- size: boxSize - 8,
59
+ size: boxSize - headerLength,
60
60
  start: iterator.counter.getOffset(),
61
61
  });
62
- return {
63
- box: null,
64
- skipTo: null,
65
- };
62
+ return null;
66
63
  }
67
64
  if (bytesRemaining < boxSize) {
68
65
  returnToCheckpoint();
69
- return {
70
- box: null,
71
- skipTo: null,
72
- };
66
+ return null;
73
67
  }
74
68
  if (boxType === 'ftyp') {
75
- const box = (0, ftyp_1.parseFtyp)({ iterator, size: boxSize, offset: fileOffset });
76
- return {
77
- box,
78
- skipTo: null,
79
- };
69
+ return (0, ftyp_1.parseFtyp)({ iterator, size: boxSize, offset: fileOffset });
80
70
  }
81
71
  if (boxType === 'colr') {
82
- const box = (0, colr_1.parseColorParameterBox)({
72
+ return (0, colr_1.parseColorParameterBox)({
83
73
  iterator,
84
74
  size: boxSize,
85
75
  });
86
- return {
87
- box,
88
- skipTo: null,
89
- };
90
76
  }
91
77
  if (boxType === 'mvhd') {
92
- const box = (0, mvhd_1.parseMvhd)({ iterator, offset: fileOffset, size: boxSize });
93
- return {
94
- box,
95
- skipTo: null,
96
- };
78
+ return (0, mvhd_1.parseMvhd)({ iterator, offset: fileOffset, size: boxSize });
97
79
  }
98
80
  if (boxType === 'tkhd') {
99
- const box = (0, tkhd_1.parseTkhd)({ iterator, offset: fileOffset, size: boxSize });
100
- return {
101
- box,
102
- skipTo: null,
103
- };
81
+ return (0, tkhd_1.parseTkhd)({ iterator, offset: fileOffset, size: boxSize });
104
82
  }
105
83
  if (boxType === 'trun') {
106
- const box = (0, trun_1.parseTrun)({ iterator, offset: fileOffset, size: boxSize });
107
- return {
108
- box,
109
- skipTo: null,
110
- };
84
+ return (0, trun_1.parseTrun)({ iterator, offset: fileOffset, size: boxSize });
111
85
  }
112
86
  if (boxType === 'tfdt') {
113
- const box = (0, tfdt_1.parseTfdt)({ iterator, size: boxSize, offset: fileOffset });
114
- return {
115
- box,
116
- skipTo: null,
117
- };
87
+ return (0, tfdt_1.parseTfdt)({ iterator, size: boxSize, offset: fileOffset });
118
88
  }
119
89
  if (boxType === 'stsd') {
120
- const box = await (0, stsd_1.parseStsd)({
121
- iterator,
90
+ return (0, stsd_1.parseStsd)({
122
91
  offset: fileOffset,
123
92
  size: boxSize,
124
93
  state,
125
94
  });
126
- return {
127
- box,
128
- skipTo: null,
129
- };
130
95
  }
131
96
  if (boxType === 'stsz') {
132
- const box = (0, stsz_1.parseStsz)({
97
+ return (0, stsz_1.parseStsz)({
133
98
  iterator,
134
99
  offset: fileOffset,
135
100
  size: boxSize,
136
101
  });
137
- return {
138
- box,
139
- skipTo: null,
140
- };
141
102
  }
142
103
  if (boxType === 'stco' || boxType === 'co64') {
143
- const box = (0, stco_1.parseStco)({
104
+ return (0, stco_1.parseStco)({
144
105
  iterator,
145
106
  offset: fileOffset,
146
107
  size: boxSize,
147
108
  mode64Bit: boxType === 'co64',
148
109
  });
149
- return {
150
- box,
151
- skipTo: null,
152
- };
153
110
  }
154
111
  if (boxType === 'pasp') {
155
- const box = (0, pasp_1.parsePasp)({
112
+ return (0, pasp_1.parsePasp)({
156
113
  iterator,
157
114
  offset: fileOffset,
158
115
  size: boxSize,
159
116
  });
160
- return {
161
- box,
162
- skipTo: null,
163
- };
164
117
  }
165
118
  if (boxType === 'stss') {
166
- const box = (0, stss_1.parseStss)({
119
+ return (0, stss_1.parseStss)({
167
120
  iterator,
168
121
  offset: fileOffset,
169
122
  boxSize,
170
123
  });
171
- return {
172
- box,
173
- skipTo: null,
174
- };
175
124
  }
176
125
  if (boxType === 'ctts') {
177
- const box = (0, ctts_1.parseCtts)({
126
+ return (0, ctts_1.parseCtts)({
178
127
  iterator,
179
128
  offset: fileOffset,
180
129
  size: boxSize,
181
130
  });
182
- return {
183
- box,
184
- skipTo: null,
185
- };
186
131
  }
187
132
  if (boxType === 'stsc') {
188
- const box = (0, stsc_1.parseStsc)({
133
+ return (0, stsc_1.parseStsc)({
189
134
  iterator,
190
135
  offset: fileOffset,
191
136
  size: boxSize,
192
137
  });
193
- return {
194
- box,
195
- skipTo: null,
196
- };
197
138
  }
198
139
  if (boxType === 'mebx') {
199
- const box = await (0, mebx_1.parseMebx)({
200
- iterator,
140
+ return (0, mebx_1.parseMebx)({
201
141
  offset: fileOffset,
202
142
  size: boxSize,
203
143
  state,
204
144
  });
205
- return {
206
- box,
207
- skipTo: null,
208
- };
209
145
  }
210
146
  if (boxType === 'hdlr') {
211
- const box = await (0, hdlr_1.parseHdlr)({ iterator, size: boxSize, offset: fileOffset });
212
- return {
213
- box,
214
- skipTo: null,
215
- };
147
+ return (0, hdlr_1.parseHdlr)({ iterator, size: boxSize, offset: fileOffset });
216
148
  }
217
149
  if (boxType === 'keys') {
218
- const box = (0, keys_1.parseKeys)({ iterator, size: boxSize, offset: fileOffset });
219
- return {
220
- box,
221
- skipTo: null,
222
- };
150
+ return (0, keys_1.parseKeys)({ iterator, size: boxSize, offset: fileOffset });
223
151
  }
224
152
  if (boxType === 'ilst') {
225
- const box = (0, ilst_1.parseIlstBox)({
153
+ return (0, ilst_1.parseIlstBox)({
226
154
  iterator,
227
155
  offset: fileOffset,
228
156
  size: boxSize,
229
157
  });
230
- return {
231
- box,
232
- skipTo: null,
233
- };
234
158
  }
235
159
  if (boxType === 'moov') {
236
160
  if (state.callbacks.tracks.hasAllTracks()) {
237
161
  iterator.discard(boxSize - 8);
238
- return {
239
- box: null,
240
- skipTo: null,
241
- };
162
+ return null;
163
+ }
164
+ if (state.iso.moov.getMoovBox()) {
165
+ log_1.Log.verbose(state.logLevel, 'Moov box already parsed, skipping');
166
+ iterator.discard(boxSize - 8);
167
+ return null;
242
168
  }
243
169
  const box = await (0, moov_1.parseMoov)({
244
- iterator,
245
170
  offset: fileOffset,
246
171
  size: boxSize,
247
172
  state,
248
173
  });
249
- state.callbacks.tracks.setIsDone();
250
- return {
251
- box,
252
- skipTo: null,
253
- };
174
+ state.callbacks.tracks.setIsDone(state.logLevel);
175
+ return box;
254
176
  }
255
177
  if (boxType === 'trak') {
256
178
  const box = await (0, trak_1.parseTrak)({
257
- data: iterator,
258
179
  size: boxSize,
259
180
  offsetAtStart: fileOffset,
260
181
  state,
@@ -267,85 +188,54 @@ const processBox = async ({ iterator, state, }) => {
267
188
  container: 'mp4',
268
189
  });
269
190
  }
270
- return {
271
- box,
272
- skipTo: null,
273
- };
191
+ return box;
274
192
  }
275
193
  if (boxType === 'stts') {
276
- const box = (0, stts_1.parseStts)({
194
+ return (0, stts_1.parseStts)({
277
195
  data: iterator,
278
196
  size: boxSize,
279
197
  fileOffset,
280
198
  });
281
- return {
282
- box,
283
- skipTo: null,
284
- };
285
199
  }
286
200
  if (boxType === 'avcC') {
287
- const box = (0, avcc_1.parseAvcc)({
201
+ return (0, avcc_1.parseAvcc)({
288
202
  data: iterator,
289
203
  size: boxSize,
290
204
  });
291
- return {
292
- box,
293
- skipTo: null,
294
- };
295
205
  }
296
206
  if (boxType === 'av1C') {
297
- const box = (0, av1c_1.parseAv1C)({
207
+ return (0, av1c_1.parseAv1C)({
298
208
  data: iterator,
299
209
  size: boxSize,
300
210
  });
301
- return {
302
- box,
303
- skipTo: null,
304
- };
305
211
  }
306
212
  if (boxType === 'hvcC') {
307
- const box = (0, hvcc_1.parseHvcc)({
213
+ return (0, hvcc_1.parseHvcc)({
308
214
  data: iterator,
309
215
  size: boxSize,
310
216
  offset: fileOffset,
311
217
  });
312
- return {
313
- box,
314
- skipTo: null,
315
- };
316
218
  }
317
219
  if (boxType === 'tfhd') {
318
- const box = (0, tfhd_1.getTfhd)({
220
+ return (0, tfhd_1.getTfhd)({
319
221
  iterator,
320
222
  offset: fileOffset,
321
223
  size: boxSize,
322
224
  });
323
- return {
324
- box,
325
- skipTo: null,
326
- };
327
225
  }
328
226
  if (boxType === 'mdhd') {
329
- const box = (0, mdhd_1.parseMdhd)({
227
+ return (0, mdhd_1.parseMdhd)({
330
228
  data: iterator,
331
229
  size: boxSize,
332
230
  fileOffset,
333
231
  });
334
- return {
335
- box,
336
- skipTo: null,
337
- };
338
232
  }
339
233
  if (boxType === 'esds') {
340
- const box = (0, esds_1.parseEsds)({
234
+ return (0, esds_1.parseEsds)({
341
235
  data: iterator,
342
236
  size: boxSize,
343
237
  fileOffset,
344
238
  });
345
- return {
346
- box,
347
- skipTo: null,
348
- };
349
239
  }
350
240
  if (boxType === 'mdia' ||
351
241
  boxType === 'minf' ||
@@ -358,31 +248,24 @@ const processBox = async ({ iterator, state, }) => {
358
248
  boxType === 'traf' ||
359
249
  boxType === 'stsb') {
360
250
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
361
- iterator,
362
251
  state,
363
252
  size: boxSize - 8,
364
253
  });
365
254
  return {
366
- box: {
367
- type: 'regular-box',
368
- boxType,
369
- boxSize,
370
- children,
371
- offset: fileOffset,
372
- },
373
- skipTo: null,
374
- };
375
- }
376
- iterator.discard(boxSize - 8);
377
- return {
378
- box: {
379
255
  type: 'regular-box',
380
256
  boxType,
381
257
  boxSize,
382
- children: [],
258
+ children,
383
259
  offset: fileOffset,
384
- },
385
- skipTo: null,
260
+ };
261
+ }
262
+ iterator.discard(boxSize - 8);
263
+ return {
264
+ type: 'regular-box',
265
+ boxType,
266
+ boxSize,
267
+ children: [],
268
+ offset: fileOffset,
386
269
  };
387
270
  };
388
271
  exports.processBox = processBox;
@@ -1,4 +1,3 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
1
  import type { AnySegment } from '../../../parse-result';
3
2
  import type { ParserState } from '../../../state/parser-state';
4
3
  import type { BaseBox } from '../base-type';
@@ -8,8 +7,7 @@ export interface MebxBox extends BaseBox {
8
7
  format: string;
9
8
  children: AnySegment[];
10
9
  }
11
- export declare const parseMebx: ({ iterator, offset, size, state, }: {
12
- iterator: BufferIterator;
10
+ export declare const parseMebx: ({ offset, size, state, }: {
13
11
  offset: number;
14
12
  size: number;
15
13
  state: ParserState;
@@ -2,12 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseMebx = void 0;
4
4
  const get_children_1 = require("../get-children");
5
- const parseMebx = async ({ iterator, offset, size, state, }) => {
5
+ const parseMebx = async ({ offset, size, state, }) => {
6
6
  // reserved, 6 bit
7
- iterator.discard(6);
8
- const dataReferenceIndex = iterator.getUint16();
7
+ state.iterator.discard(6);
8
+ const dataReferenceIndex = state.iterator.getUint16();
9
9
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
10
- iterator,
11
10
  state,
12
11
  size: size - 8,
13
12
  });
@@ -1,6 +1,6 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { AnySegment, IsoBaseMediaBox } from '../../../parse-result';
1
+ import type { AnySegment } from '../../../parse-result';
3
2
  import type { ParserState } from '../../../state/parser-state';
3
+ import type { IsoBaseMediaBox } from '../base-media-box';
4
4
  type SampleBase = {
5
5
  format: string;
6
6
  offset: number;
@@ -48,12 +48,10 @@ export type Sample = AudioSample | VideoSample | UnknownSample;
48
48
  type FormatBoxAndNext = {
49
49
  sample: Sample | null;
50
50
  };
51
- export declare const processIsoFormatBox: ({ iterator, state, }: {
52
- iterator: BufferIterator;
51
+ export declare const processIsoFormatBox: ({ state, }: {
53
52
  state: ParserState;
54
53
  }) => Promise<FormatBoxAndNext>;
55
- export declare const parseIsoFormatBoxes: ({ iterator, maxBytes, state, }: {
56
- iterator: BufferIterator;
54
+ export declare const parseIsoFormatBoxes: ({ maxBytes, state, }: {
57
55
  maxBytes: number;
58
56
  state: ParserState;
59
57
  }) => Promise<Sample[]>;
@@ -31,6 +31,7 @@ const videoTags = [
31
31
  'v410',
32
32
  'v210',
33
33
  'hvc1',
34
+ 'hev1',
34
35
  'ap4h',
35
36
  'av01',
36
37
  ];
@@ -62,7 +63,8 @@ const audioTags = [
62
63
  'mp4a',
63
64
  'ac-3',
64
65
  ];
65
- const processIsoFormatBox = async ({ iterator, state, }) => {
66
+ const processIsoFormatBox = async ({ state, }) => {
67
+ const { iterator } = state;
66
68
  const fileOffset = iterator.counter.getOffset();
67
69
  const bytesRemaining = iterator.bytesRemaining();
68
70
  const boxSize = iterator.getUint32();
@@ -99,7 +101,6 @@ const processIsoFormatBox = async ({ iterator, state, }) => {
99
101
  const packetSize = iterator.getUint16();
100
102
  const sampleRate = iterator.getFixedPointUnsigned1616Number();
101
103
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
102
- iterator,
103
104
  state,
104
105
  size: boxSize - (iterator.counter.getOffset() - fileOffset),
105
106
  });
@@ -137,7 +138,6 @@ const processIsoFormatBox = async ({ iterator, state, }) => {
137
138
  const bytesPerFrame = iterator.getUint32();
138
139
  const bytesPerSample = iterator.getUint32();
139
140
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
140
- iterator,
141
141
  state,
142
142
  size: boxSize - (iterator.counter.getOffset() - fileOffset),
143
143
  });
@@ -179,7 +179,6 @@ const processIsoFormatBox = async ({ iterator, state, }) => {
179
179
  const bytesPerFrame = iterator.getUint32();
180
180
  const samplesPerPacket = iterator.getUint32();
181
181
  const children = await (0, get_children_1.getIsoBaseMediaChildren)({
182
- iterator,
183
182
  state,
184
183
  size: boxSize - (iterator.counter.getOffset() - fileOffset),
185
184
  });
@@ -226,7 +225,6 @@ const processIsoFormatBox = async ({ iterator, state, }) => {
226
225
  const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
227
226
  const children = bytesRemainingInBox > 8
228
227
  ? await (0, get_children_1.getIsoBaseMediaChildren)({
229
- iterator,
230
228
  state,
231
229
  size: bytesRemainingInBox,
232
230
  })
@@ -259,13 +257,13 @@ const processIsoFormatBox = async ({ iterator, state, }) => {
259
257
  throw new Error(`Unknown sample format ${boxFormat}`);
260
258
  };
261
259
  exports.processIsoFormatBox = processIsoFormatBox;
262
- const parseIsoFormatBoxes = async ({ iterator, maxBytes, state, }) => {
260
+ const parseIsoFormatBoxes = async ({ maxBytes, state, }) => {
261
+ const { iterator } = state;
263
262
  const samples = [];
264
263
  const initialOffset = iterator.counter.getOffset();
265
264
  while (iterator.bytesRemaining() > 0 &&
266
265
  iterator.counter.getOffset() - initialOffset < maxBytes) {
267
266
  const { sample } = await (0, exports.processIsoFormatBox)({
268
- iterator,
269
267
  state,
270
268
  });
271
269
  if (sample) {
@@ -1,4 +1,3 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
1
  import type { ParserState } from '../../../state/parser-state';
3
2
  import type { BaseBox } from '../base-type';
4
3
  import type { Sample } from './samples';
@@ -7,8 +6,7 @@ export interface StsdBox extends BaseBox {
7
6
  numberOfEntries: number;
8
7
  samples: Sample[];
9
8
  }
10
- export declare const parseStsd: ({ iterator, offset, size, state, }: {
11
- iterator: BufferIterator;
9
+ export declare const parseStsd: ({ offset, size, state, }: {
12
10
  offset: number;
13
11
  size: number;
14
12
  state: ParserState;
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseStsd = void 0;
4
4
  const samples_1 = require("./samples");
5
- const parseStsd = async ({ iterator, offset, size, state, }) => {
5
+ const parseStsd = async ({ offset, size, state, }) => {
6
+ const { iterator } = state;
6
7
  const version = iterator.getUint8();
7
8
  if (version !== 0) {
8
9
  throw new Error(`Unsupported STSD version ${version}`);
@@ -12,7 +13,6 @@ const parseStsd = async ({ iterator, offset, size, state, }) => {
12
13
  const numberOfEntries = iterator.getUint32();
13
14
  const bytesRemainingInBox = size - (iterator.counter.getOffset() - offset);
14
15
  const boxes = await (0, samples_1.parseIsoFormatBoxes)({
15
- iterator,
16
16
  maxBytes: bytesRemainingInBox,
17
17
  state,
18
18
  });