@remotion/media-parser 4.0.254 → 4.0.256

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 (299) hide show
  1. package/dist/add-new-matroska-tracks.d.ts +8 -0
  2. package/dist/add-new-matroska-tracks.js +14 -0
  3. package/dist/boxes/avc/parse-avc.d.ts +18 -0
  4. package/dist/boxes/avc/parse-avc.js +96 -0
  5. package/dist/boxes/iso-base-media/base-type.d.ts +4 -0
  6. package/dist/boxes/iso-base-media/base-type.js +2 -0
  7. package/dist/boxes/iso-base-media/esds/decoder-specific-config.d.ts +14 -0
  8. package/dist/boxes/iso-base-media/esds/decoder-specific-config.js +38 -0
  9. package/dist/boxes/iso-base-media/esds/esds-descriptors.d.ts +29 -0
  10. package/dist/boxes/iso-base-media/esds/esds-descriptors.js +82 -0
  11. package/dist/boxes/iso-base-media/esds/esds.d.ts +15 -0
  12. package/dist/boxes/iso-base-media/esds/esds.js +27 -0
  13. package/dist/boxes/iso-base-media/ftyp.d.ts +13 -0
  14. package/dist/boxes/iso-base-media/ftyp.js +22 -0
  15. package/dist/boxes/iso-base-media/get-actual-number-of-channels.d.ts +13 -0
  16. package/dist/boxes/iso-base-media/get-actual-number-of-channels.js +22 -0
  17. package/dist/boxes/iso-base-media/get-sample-positions-from-track.d.ts +4 -0
  18. package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +54 -0
  19. package/dist/boxes/iso-base-media/make-track.d.ts +3 -0
  20. package/dist/boxes/iso-base-media/make-track.js +107 -0
  21. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +25 -0
  22. package/dist/boxes/iso-base-media/mdat/mdat.js +122 -0
  23. package/dist/boxes/iso-base-media/mdhd.d.ts +16 -0
  24. package/dist/boxes/iso-base-media/mdhd.js +32 -0
  25. package/dist/boxes/iso-base-media/meta/hdlr.d.ts +12 -0
  26. package/dist/boxes/iso-base-media/meta/hdlr.js +33 -0
  27. package/dist/boxes/iso-base-media/meta/ilst.d.ts +28 -0
  28. package/dist/boxes/iso-base-media/meta/ilst.js +86 -0
  29. package/dist/boxes/iso-base-media/moov/moov.d.ts +19 -0
  30. package/dist/boxes/iso-base-media/moov/moov.js +27 -0
  31. package/dist/boxes/iso-base-media/mvhd.d.ts +30 -0
  32. package/dist/boxes/iso-base-media/mvhd.js +65 -0
  33. package/dist/boxes/iso-base-media/parse-icc-profile.d.ts +36 -0
  34. package/dist/boxes/iso-base-media/parse-icc-profile.js +115 -0
  35. package/dist/boxes/iso-base-media/process-box.d.ts +34 -0
  36. package/dist/boxes/iso-base-media/process-box.js +710 -0
  37. package/dist/boxes/iso-base-media/stsd/av1c.d.ts +9 -0
  38. package/dist/boxes/iso-base-media/stsd/av1c.js +10 -0
  39. package/dist/boxes/iso-base-media/stsd/avcc.d.ts +10 -0
  40. package/dist/boxes/iso-base-media/stsd/avcc.js +21 -0
  41. package/dist/boxes/iso-base-media/stsd/colr.d.ts +21 -0
  42. package/dist/boxes/iso-base-media/stsd/colr.js +47 -0
  43. package/dist/boxes/iso-base-media/stsd/ctts.d.ts +19 -0
  44. package/dist/boxes/iso-base-media/stsd/ctts.js +34 -0
  45. package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +11 -0
  46. package/dist/boxes/iso-base-media/stsd/hvcc.js +17 -0
  47. package/dist/boxes/iso-base-media/stsd/keys.d.ts +19 -0
  48. package/dist/boxes/iso-base-media/stsd/keys.js +35 -0
  49. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +19 -0
  50. package/dist/boxes/iso-base-media/stsd/mebx.js +32 -0
  51. package/dist/boxes/iso-base-media/stsd/pasp.d.ts +12 -0
  52. package/dist/boxes/iso-base-media/stsd/pasp.js +17 -0
  53. package/dist/boxes/iso-base-media/stsd/samples.d.ts +68 -0
  54. package/dist/boxes/iso-base-media/stsd/samples.js +320 -0
  55. package/dist/boxes/iso-base-media/stsd/stco.d.ts +15 -0
  56. package/dist/boxes/iso-base-media/stsd/stco.js +30 -0
  57. package/dist/boxes/iso-base-media/stsd/stsc.d.ts +19 -0
  58. package/dist/boxes/iso-base-media/stsd/stsc.js +34 -0
  59. package/dist/boxes/iso-base-media/stsd/stsd.d.ts +18 -0
  60. package/dist/boxes/iso-base-media/stsd/stsd.js +33 -0
  61. package/dist/boxes/iso-base-media/stsd/stss.d.ts +13 -0
  62. package/dist/boxes/iso-base-media/stsd/stss.js +28 -0
  63. package/dist/boxes/iso-base-media/stsd/stsz.d.ts +21 -0
  64. package/dist/boxes/iso-base-media/stsd/stsz.js +44 -0
  65. package/dist/boxes/iso-base-media/stsd/stts.d.ts +15 -0
  66. package/dist/boxes/iso-base-media/stsd/stts.js +35 -0
  67. package/dist/boxes/iso-base-media/tfdt.d.ts +12 -0
  68. package/dist/boxes/iso-base-media/tfdt.js +20 -0
  69. package/dist/boxes/iso-base-media/tfhd.d.ts +16 -0
  70. package/dist/boxes/iso-base-media/tfhd.js +41 -0
  71. package/dist/boxes/iso-base-media/tkhd.d.ts +25 -0
  72. package/dist/boxes/iso-base-media/tkhd.js +87 -0
  73. package/dist/boxes/iso-base-media/to-date.d.ts +2 -0
  74. package/dist/boxes/iso-base-media/to-date.js +19 -0
  75. package/dist/boxes/iso-base-media/trak/trak.d.ts +19 -0
  76. package/dist/boxes/iso-base-media/trak/trak.js +27 -0
  77. package/dist/boxes/iso-base-media/traversal.d.ts +39 -0
  78. package/dist/boxes/iso-base-media/traversal.js +201 -0
  79. package/dist/boxes/iso-base-media/trun.d.ts +21 -0
  80. package/dist/boxes/iso-base-media/trun.js +44 -0
  81. package/dist/boxes/iso-base-media/void-box.d.ts +4 -0
  82. package/dist/boxes/iso-base-media/void-box.js +2 -0
  83. package/dist/boxes/riff/expect-riff-box.d.ts +17 -0
  84. package/dist/boxes/riff/expect-riff-box.js +49 -0
  85. package/dist/boxes/riff/get-tracks-from-avi.d.ts +22 -0
  86. package/dist/boxes/riff/get-tracks-from-avi.js +114 -0
  87. package/dist/boxes/riff/is-movi.d.ts +2 -0
  88. package/dist/boxes/riff/is-movi.js +12 -0
  89. package/dist/boxes/riff/parse-avih.d.ts +6 -0
  90. package/dist/boxes/riff/parse-avih.js +32 -0
  91. package/dist/boxes/riff/parse-box.d.ts +15 -0
  92. package/dist/boxes/riff/parse-box.js +146 -0
  93. package/dist/boxes/riff/parse-fmt-box.d.ts +7 -0
  94. package/dist/boxes/riff/parse-fmt-box.js +33 -0
  95. package/dist/boxes/riff/parse-isft.d.ts +6 -0
  96. package/dist/boxes/riff/parse-isft.js +17 -0
  97. package/dist/boxes/riff/parse-list-box.d.ts +8 -0
  98. package/dist/boxes/riff/parse-list-box.js +30 -0
  99. package/dist/boxes/riff/parse-movi.d.ts +17 -0
  100. package/dist/boxes/riff/parse-movi.js +133 -0
  101. package/dist/boxes/riff/parse-riff-box.d.ts +10 -0
  102. package/dist/boxes/riff/parse-riff-box.js +37 -0
  103. package/dist/boxes/riff/parse-strf.d.ts +7 -0
  104. package/dist/boxes/riff/parse-strf.js +67 -0
  105. package/dist/boxes/riff/parse-strh.d.ts +6 -0
  106. package/dist/boxes/riff/parse-strh.js +46 -0
  107. package/dist/boxes/riff/riff-box.d.ts +85 -0
  108. package/dist/boxes/riff/riff-box.js +2 -0
  109. package/dist/boxes/riff/timescale.d.ts +1 -0
  110. package/dist/boxes/riff/timescale.js +4 -0
  111. package/dist/boxes/riff/traversal.d.ts +8 -0
  112. package/dist/boxes/riff/traversal.js +36 -0
  113. package/dist/boxes/webm/allowed-partial-segments.d.ts +1 -0
  114. package/dist/boxes/webm/allowed-partial-segments.js +4 -0
  115. package/dist/boxes/webm/av1-codec-private.d.ts +2 -0
  116. package/dist/boxes/webm/av1-codec-private.js +95 -0
  117. package/dist/boxes/webm/color.d.ts +4 -0
  118. package/dist/boxes/webm/color.js +127 -0
  119. package/dist/boxes/webm/description.d.ts +2 -0
  120. package/dist/boxes/webm/description.js +83 -0
  121. package/dist/boxes/webm/ebml.d.ts +2 -0
  122. package/dist/boxes/webm/ebml.js +94 -0
  123. package/dist/boxes/webm/get-ready-tracks.d.ts +3 -0
  124. package/dist/boxes/webm/get-ready-tracks.js +29 -0
  125. package/dist/boxes/webm/get-sample-from-block.d.ts +17 -0
  126. package/dist/boxes/webm/get-sample-from-block.js +81 -0
  127. package/dist/boxes/webm/make-header.d.ts +8 -0
  128. package/dist/boxes/webm/make-header.js +187 -0
  129. package/dist/boxes/webm/make-track.d.ts +9 -0
  130. package/dist/boxes/webm/make-track.js +261 -0
  131. package/dist/boxes/webm/parse-ebml.d.ts +12 -0
  132. package/dist/boxes/webm/parse-ebml.js +185 -0
  133. package/dist/boxes/webm/parse-webm-header.d.ts +9 -0
  134. package/dist/boxes/webm/parse-webm-header.js +36 -0
  135. package/dist/boxes/webm/segments/all-segments.d.ts +976 -0
  136. package/dist/boxes/webm/segments/all-segments.js +724 -0
  137. package/dist/boxes/webm/segments/block-simple-block-flags.d.ts +9 -0
  138. package/dist/boxes/webm/segments/block-simple-block-flags.js +38 -0
  139. package/dist/boxes/webm/segments/parse-children.d.ts +23 -0
  140. package/dist/boxes/webm/segments/parse-children.js +145 -0
  141. package/dist/boxes/webm/segments/track-entry.d.ts +9 -0
  142. package/dist/boxes/webm/segments/track-entry.js +24 -0
  143. package/dist/boxes/webm/segments.d.ts +15 -0
  144. package/dist/boxes/webm/segments.js +161 -0
  145. package/dist/boxes/webm/traversal.d.ts +33 -0
  146. package/dist/boxes/webm/traversal.js +265 -0
  147. package/dist/containers/flac/get-channel-count.d.ts +1 -1
  148. package/dist/create/cluster-segment.d.ts +10 -0
  149. package/dist/create/cluster-segment.js +39 -0
  150. package/dist/create/cluster.d.ts +19 -0
  151. package/dist/create/cluster.js +55 -0
  152. package/dist/create/create-media.d.ts +15 -0
  153. package/dist/create/create-media.js +165 -0
  154. package/dist/create/event-emitter.d.ts +31 -0
  155. package/dist/create/event-emitter.js +25 -0
  156. package/dist/create/iso-base-media/codec-specific/avc1.d.ts +2 -0
  157. package/dist/create/iso-base-media/codec-specific/avc1.js +48 -0
  158. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.d.ts +22 -0
  159. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.js +36 -0
  160. package/dist/create/iso-base-media/codec-specific/mp4a.d.ts +2 -0
  161. package/dist/create/iso-base-media/codec-specific/mp4a.js +74 -0
  162. package/dist/create/iso-base-media/create-colr.d.ts +6 -0
  163. package/dist/create/iso-base-media/create-colr.js +26 -0
  164. package/dist/create/iso-base-media/create-ftyp.d.ts +10 -0
  165. package/dist/create/iso-base-media/create-ftyp.js +22 -0
  166. package/dist/create/iso-base-media/create-ilst.d.ts +1 -0
  167. package/dist/create/iso-base-media/create-ilst.js +14 -0
  168. package/dist/create/iso-base-media/create-iso-base-media.d.ts +2 -0
  169. package/dist/create/iso-base-media/create-iso-base-media.js +165 -0
  170. package/dist/create/iso-base-media/create-mdia.d.ts +5 -0
  171. package/dist/create/iso-base-media/create-mdia.js +18 -0
  172. package/dist/create/iso-base-media/create-moov.d.ts +5 -0
  173. package/dist/create/iso-base-media/create-moov.js +18 -0
  174. package/dist/create/iso-base-media/create-mvhd.d.ts +10 -0
  175. package/dist/create/iso-base-media/create-mvhd.js +48 -0
  176. package/dist/create/iso-base-media/create-trak.d.ts +4 -0
  177. package/dist/create/iso-base-media/create-trak.js +17 -0
  178. package/dist/create/iso-base-media/create-udta.d.ts +1 -0
  179. package/dist/create/iso-base-media/create-udta.js +14 -0
  180. package/dist/create/iso-base-media/create-url.d.ts +1 -0
  181. package/dist/create/iso-base-media/create-url.js +16 -0
  182. package/dist/create/iso-base-media/example-stts.d.ts +3 -0
  183. package/dist/create/iso-base-media/example-stts.js +2797 -0
  184. package/dist/create/iso-base-media/ilst/create-cmt.d.ts +1 -0
  185. package/dist/create/iso-base-media/ilst/create-cmt.js +26 -0
  186. package/dist/create/iso-base-media/ilst/create-too.d.ts +1 -0
  187. package/dist/create/iso-base-media/ilst/create-too.js +27 -0
  188. package/dist/create/iso-base-media/mdia/create-mdhd.d.ts +6 -0
  189. package/dist/create/iso-base-media/mdia/create-mdhd.js +33 -0
  190. package/dist/create/iso-base-media/mp4-header.d.ts +6 -0
  191. package/dist/create/iso-base-media/mp4-header.js +48 -0
  192. package/dist/create/iso-base-media/primitives.d.ts +15 -0
  193. package/dist/create/iso-base-media/primitives.js +133 -0
  194. package/dist/create/iso-base-media/serialize-track.d.ts +9 -0
  195. package/dist/create/iso-base-media/serialize-track.js +63 -0
  196. package/dist/create/iso-base-media/trak/create-tkhd.d.ts +27 -0
  197. package/dist/create/iso-base-media/trak/create-tkhd.js +97 -0
  198. package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +4 -0
  199. package/dist/create/iso-base-media/trak/mdia/create-minf.js +19 -0
  200. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.d.ts +1 -0
  201. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.js +22 -0
  202. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.d.ts +1 -0
  203. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.js +20 -0
  204. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +6 -0
  205. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.js +35 -0
  206. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.d.ts +1 -0
  207. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.js +20 -0
  208. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +2 -0
  209. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.js +45 -0
  210. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +2 -0
  211. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.js +28 -0
  212. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +2 -0
  213. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.js +56 -0
  214. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +2 -0
  215. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.js +23 -0
  216. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +2 -0
  217. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.js +25 -0
  218. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +2 -0
  219. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.js +48 -0
  220. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +1 -0
  221. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.js +20 -0
  222. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +1 -0
  223. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.js +16 -0
  224. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.d.ts +1 -0
  225. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.js +13 -0
  226. package/dist/create/iso-base-media/udta/create-meta.d.ts +4 -0
  227. package/dist/create/iso-base-media/udta/create-meta.js +20 -0
  228. package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +1 -0
  229. package/dist/create/iso-base-media/udta/meta/create-hdlr.js +32 -0
  230. package/dist/create/make-duration-with-padding.d.ts +1 -0
  231. package/dist/create/make-duration-with-padding.js +15 -0
  232. package/dist/create/make-track-info.d.ts +20 -0
  233. package/dist/create/make-track-info.js +2 -0
  234. package/dist/create/matroska/cluster-segment.d.ts +10 -0
  235. package/dist/create/matroska/cluster-segment.js +39 -0
  236. package/dist/create/matroska/cluster.d.ts +25 -0
  237. package/dist/create/matroska/cluster.js +77 -0
  238. package/dist/create/matroska/create-matroska-media.d.ts +2 -0
  239. package/dist/create/matroska/create-matroska-media.js +187 -0
  240. package/dist/create/matroska/make-duration-with-padding.d.ts +1 -0
  241. package/dist/create/matroska/make-duration-with-padding.js +15 -0
  242. package/dist/create/matroska/matroska-cues.d.ts +6 -0
  243. package/dist/create/matroska/matroska-cues.js +49 -0
  244. package/dist/create/matroska/matroska-header.d.ts +1 -0
  245. package/dist/create/matroska/matroska-header.js +66 -0
  246. package/dist/create/matroska/matroska-info.d.ts +3 -0
  247. package/dist/create/matroska/matroska-info.js +33 -0
  248. package/dist/create/matroska/matroska-seek.d.ts +6 -0
  249. package/dist/create/matroska/matroska-seek.js +32 -0
  250. package/dist/create/matroska/matroska-segment.d.ts +3 -0
  251. package/dist/create/matroska/matroska-segment.js +13 -0
  252. package/dist/create/matroska/matroska-trackentry.d.ts +10 -0
  253. package/dist/create/matroska/matroska-trackentry.js +249 -0
  254. package/dist/create/matroska-cues.d.ts +6 -0
  255. package/dist/create/matroska-cues.js +49 -0
  256. package/dist/create/matroska-header.d.ts +1 -0
  257. package/dist/create/matroska-header.js +66 -0
  258. package/dist/create/matroska-info.d.ts +3 -0
  259. package/dist/create/matroska-info.js +33 -0
  260. package/dist/create/matroska-seek.d.ts +6 -0
  261. package/dist/create/matroska-seek.js +32 -0
  262. package/dist/create/matroska-segment.d.ts +3 -0
  263. package/dist/create/matroska-segment.js +13 -0
  264. package/dist/create/matroska-trackentry.d.ts +27 -0
  265. package/dist/create/matroska-trackentry.js +243 -0
  266. package/dist/create/media-fn.d.ts +33 -0
  267. package/dist/create/media-fn.js +2 -0
  268. package/dist/create/progress-tracker.d.ts +7 -0
  269. package/dist/create/progress-tracker.js +43 -0
  270. package/dist/create/timescale.d.ts +1 -0
  271. package/dist/create/timescale.js +4 -0
  272. package/dist/create/wav/create-wav.d.ts +2 -0
  273. package/dist/create/wav/create-wav.js +110 -0
  274. package/dist/create/with-resolvers.d.ts +10 -0
  275. package/dist/create/with-resolvers.js +28 -0
  276. package/dist/esm/buffer.mjs +56 -0
  277. package/dist/esm/index.mjs +1 -1
  278. package/dist/esm/web-fs.mjs +73 -0
  279. package/dist/parse-video.d.ts +25 -0
  280. package/dist/parse-video.js +39 -0
  281. package/dist/parser-context.d.ts +10 -0
  282. package/dist/parser-context.js +2 -0
  283. package/dist/parser-state.d.ts +22 -0
  284. package/dist/parser-state.js +132 -0
  285. package/dist/version.d.ts +1 -1
  286. package/dist/version.js +1 -1
  287. package/dist/writers/buffer-implementation/writer.d.ts +2 -0
  288. package/dist/writers/buffer-implementation/writer.js +54 -0
  289. package/dist/writers/buffer.d.ts +2 -0
  290. package/dist/writers/buffer.js +7 -0
  291. package/dist/writers/web-fs.d.ts +3 -0
  292. package/dist/writers/web-fs.js +74 -0
  293. package/package.json +3 -3
  294. package/dist/abort.d.ts +0 -1
  295. package/dist/abort.js +0 -7
  296. package/dist/controller.d.ts +0 -17
  297. package/dist/controller.js +0 -31
  298. package/dist/parse-and-download-media.d.ts +0 -2
  299. package/dist/parse-and-download-media.js +0 -57
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMdat = void 0;
4
+ const get_tracks_1 = require("../../../get-tracks");
5
+ const get_sample_positions_from_track_1 = require("../get-sample-positions-from-track");
6
+ const traversal_1 = require("../traversal");
7
+ const parseMdat = async ({ data, size, fileOffset, existingBoxes, options, signal, maySkipSampleProcessing, }) => {
8
+ const alreadyHas = (0, get_tracks_1.hasTracks)({
9
+ type: 'iso-base-media',
10
+ boxes: existingBoxes,
11
+ }, options.parserState);
12
+ if (!alreadyHas) {
13
+ if (maySkipSampleProcessing) {
14
+ data.discard(size - (data.counter.getOffset() - fileOffset));
15
+ return Promise.resolve({
16
+ type: 'mdat-box',
17
+ boxSize: size,
18
+ status: 'samples-skipped',
19
+ fileOffset,
20
+ });
21
+ }
22
+ data.discard(size - (data.counter.getOffset() - fileOffset));
23
+ data.disallowDiscard();
24
+ return Promise.resolve({
25
+ type: 'mdat-box',
26
+ boxSize: size,
27
+ status: 'samples-buffered',
28
+ fileOffset,
29
+ });
30
+ }
31
+ const tracks = (0, get_tracks_1.getTracks)({ type: 'iso-base-media', boxes: existingBoxes }, options.parserState);
32
+ const allTracks = [
33
+ ...tracks.videoTracks,
34
+ ...tracks.audioTracks,
35
+ ...tracks.otherTracks,
36
+ ];
37
+ const flatSamples = allTracks
38
+ .map((track) => {
39
+ const samplePositions = (0, get_sample_positions_from_track_1.getSamplePositionsFromTrack)(track.trakBox, (0, traversal_1.getMoofBox)(existingBoxes));
40
+ if (!samplePositions) {
41
+ throw new Error('No sample positions');
42
+ }
43
+ return samplePositions.map((samplePosition) => {
44
+ return {
45
+ track: { ...track },
46
+ samplePosition,
47
+ };
48
+ });
49
+ })
50
+ .flat(1);
51
+ while (true) {
52
+ if (signal && signal.aborted) {
53
+ break;
54
+ }
55
+ const samplesWithIndex = flatSamples.find((sample) => {
56
+ return sample.samplePosition.offset === data.counter.getOffset();
57
+ });
58
+ if (!samplesWithIndex) {
59
+ // There are various reasons why in mdat we find weird stuff:
60
+ // - iphonevideo.hevc has a fake hoov atom which is not mapped
61
+ // - corrupted.mp4 has a corrupt table
62
+ const nextSample_ = flatSamples
63
+ .filter((s) => s.samplePosition.offset > data.counter.getOffset())
64
+ .sort((a, b) => a.samplePosition.offset - b.samplePosition.offset)[0];
65
+ if (nextSample_) {
66
+ data.discard(nextSample_.samplePosition.offset - data.counter.getOffset());
67
+ continue;
68
+ }
69
+ else {
70
+ const bytesRemaining = size + fileOffset - data.counter.getOffset();
71
+ data.discard(bytesRemaining);
72
+ break;
73
+ }
74
+ }
75
+ if (data.bytesRemaining() < samplesWithIndex.samplePosition.size) {
76
+ break;
77
+ }
78
+ const bytes = data.getSlice(samplesWithIndex.samplePosition.size);
79
+ const timestamp = (samplesWithIndex.samplePosition.cts * 1000000) /
80
+ samplesWithIndex.track.timescale;
81
+ const duration = (samplesWithIndex.samplePosition.duration * 1000000) /
82
+ samplesWithIndex.track.timescale;
83
+ const cts = (samplesWithIndex.samplePosition.cts * 1000000) /
84
+ samplesWithIndex.track.timescale;
85
+ const dts = (samplesWithIndex.samplePosition.dts * 1000000) /
86
+ samplesWithIndex.track.timescale;
87
+ if (samplesWithIndex.track.type === 'audio') {
88
+ await options.parserState.onAudioSample(samplesWithIndex.track.trackId, {
89
+ data: bytes,
90
+ timestamp,
91
+ duration,
92
+ cts,
93
+ dts,
94
+ trackId: samplesWithIndex.track.trackId,
95
+ type: samplesWithIndex.samplePosition.isKeyframe ? 'key' : 'delta',
96
+ });
97
+ }
98
+ if (samplesWithIndex.track.type === 'video') {
99
+ await options.parserState.onVideoSample(samplesWithIndex.track.trackId, {
100
+ data: bytes,
101
+ timestamp,
102
+ duration,
103
+ cts,
104
+ dts,
105
+ trackId: samplesWithIndex.track.trackId,
106
+ type: samplesWithIndex.samplePosition.isKeyframe ? 'key' : 'delta',
107
+ });
108
+ }
109
+ const remaining = size - (data.counter.getOffset() - fileOffset);
110
+ data.removeBytesRead();
111
+ if (remaining === 0) {
112
+ break;
113
+ }
114
+ }
115
+ return Promise.resolve({
116
+ type: 'mdat-box',
117
+ boxSize: size,
118
+ status: 'samples-processed',
119
+ fileOffset,
120
+ });
121
+ };
122
+ exports.parseMdat = parseMdat;
@@ -0,0 +1,16 @@
1
+ import type { BufferIterator } from '../../buffer-iterator';
2
+ export interface MdhdBox {
3
+ type: 'mdhd-box';
4
+ version: number;
5
+ timescale: number;
6
+ duration: number;
7
+ language: number;
8
+ quality: number;
9
+ creationTime: number | null;
10
+ modificationTime: number | null;
11
+ }
12
+ export declare const parseMdhd: ({ data, size, fileOffset, }: {
13
+ data: BufferIterator;
14
+ size: number;
15
+ fileOffset: number;
16
+ }) => MdhdBox;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMdhd = void 0;
4
+ const parseMdhd = ({ data, size, fileOffset, }) => {
5
+ const version = data.getUint8();
6
+ // flags, we discard them
7
+ data.discard(3);
8
+ // creation time
9
+ const creationTime = version === 1 ? Number(data.getUint64()) : data.getUint32();
10
+ // modification time
11
+ const modificationTime = version === 1 ? Number(data.getUint64()) : data.getUint32();
12
+ const timescale = data.getUint32();
13
+ const duration = version === 1 ? data.getUint64() : data.getUint32();
14
+ const language = data.getUint16();
15
+ // quality
16
+ const quality = data.getUint16();
17
+ const remaining = size - (data.counter.getOffset() - fileOffset);
18
+ if (remaining !== 0) {
19
+ throw new Error(`Expected remaining bytes to be 0, got ${remaining}`);
20
+ }
21
+ return {
22
+ type: 'mdhd-box',
23
+ duration: Number(duration),
24
+ timescale,
25
+ version,
26
+ language,
27
+ quality,
28
+ creationTime,
29
+ modificationTime,
30
+ };
31
+ };
32
+ exports.parseMdhd = parseMdhd;
@@ -0,0 +1,12 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { BaseBox } from '../base-type';
3
+ export interface HdlrBox extends BaseBox {
4
+ type: 'hdlr-box';
5
+ hdlrType: string;
6
+ componentName: string;
7
+ }
8
+ export declare const parseHdlr: ({ iterator, size, offset, }: {
9
+ iterator: BufferIterator;
10
+ size: number;
11
+ offset: number;
12
+ }) => Promise<HdlrBox>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseHdlr = void 0;
4
+ const parseHdlr = ({ iterator, size, offset, }) => {
5
+ const box = iterator.startBox(size - 8);
6
+ const version = iterator.getUint8();
7
+ if (version !== 0) {
8
+ throw new Error(`Unsupported hdlr version: ${version}`);
9
+ }
10
+ // version
11
+ iterator.discard(3);
12
+ // predefined
13
+ iterator.discard(4);
14
+ // type
15
+ const hdlrType = iterator.getByteString(4);
16
+ // component manufactor
17
+ iterator.discard(4);
18
+ // component flags
19
+ iterator.discard(4);
20
+ // component flags mask
21
+ iterator.discard(4);
22
+ // component name
23
+ const componentName = iterator.readUntilNullTerminator();
24
+ box.discardRest();
25
+ return Promise.resolve({
26
+ type: 'hdlr-box',
27
+ boxSize: size,
28
+ offset,
29
+ hdlrType,
30
+ componentName,
31
+ });
32
+ };
33
+ exports.parseHdlr = parseHdlr;
@@ -0,0 +1,28 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { BaseBox } from '../base-type';
3
+ type IlstEntry = {
4
+ index: number;
5
+ wellKnownType: number;
6
+ type: string;
7
+ value: Value;
8
+ };
9
+ export type Value = {
10
+ type: 'text';
11
+ value: string;
12
+ } | {
13
+ type: 'number';
14
+ value: number;
15
+ } | {
16
+ type: 'unknown';
17
+ value: unknown;
18
+ };
19
+ export interface IlstBox extends BaseBox {
20
+ type: 'ilst-box';
21
+ entries: IlstEntry[];
22
+ }
23
+ export declare const parseIlstBox: ({ iterator, size, offset, }: {
24
+ iterator: BufferIterator;
25
+ size: number;
26
+ offset: number;
27
+ }) => IlstBox;
28
+ export {};
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseIlstBox = void 0;
4
+ // https://developer.apple.com/documentation/quicktime-file-format/well-known_types
5
+ const parseFromWellKnownType = (wellKnownType, iterator, size) => {
6
+ if (wellKnownType === 1) {
7
+ const value = iterator.getByteString(size);
8
+ return { type: 'text', value };
9
+ }
10
+ if (wellKnownType === 21) {
11
+ if (size === 1) {
12
+ return { type: 'number', value: iterator.getInt8() };
13
+ }
14
+ if (size === 2) {
15
+ return { type: 'number', value: iterator.getInt16() };
16
+ }
17
+ if (size === 3) {
18
+ return { type: 'number', value: iterator.getInt24() };
19
+ }
20
+ if (size === 4) {
21
+ return { type: 'number', value: iterator.getInt32() };
22
+ }
23
+ if (size === 8) {
24
+ return { type: 'number', value: Number(iterator.getInt64()) };
25
+ }
26
+ throw new Error(`Weird size for number ${size}`);
27
+ }
28
+ if (wellKnownType === 22) {
29
+ if (size === 1) {
30
+ return { type: 'number', value: iterator.getUint8() };
31
+ }
32
+ if (size === 2) {
33
+ return { type: 'number', value: iterator.getUint16() };
34
+ }
35
+ if (size === 3) {
36
+ return { type: 'number', value: iterator.getUint24() };
37
+ }
38
+ if (size === 4) {
39
+ return { type: 'number', value: iterator.getUint32() };
40
+ }
41
+ throw new Error(`Weird size for number ${size}`);
42
+ }
43
+ if (wellKnownType === 23) {
44
+ if (size === 4) {
45
+ return { type: 'number', value: iterator.getFloat32() };
46
+ }
47
+ if (size === 8) {
48
+ return { type: 'number', value: iterator.getFloat64() };
49
+ }
50
+ throw new Error(`Weird size for number ${size}`);
51
+ }
52
+ iterator.discard(size);
53
+ return { type: 'unknown', value: null };
54
+ };
55
+ const parseIlstBox = ({ iterator, size, offset, }) => {
56
+ const box = iterator.startBox(size - 8);
57
+ const entries = [];
58
+ while (iterator.counter.getOffset() < size + offset) {
59
+ // metadata size
60
+ const metadataSize = iterator.getUint32();
61
+ const index = iterator.getUint32();
62
+ // "skip" as a number
63
+ if (index === 1936419184) {
64
+ iterator.discard(metadataSize - 8);
65
+ continue;
66
+ }
67
+ const innerSize = iterator.getUint32();
68
+ const type = iterator.getAtom();
69
+ const typeIndicator = iterator.getUint8();
70
+ if (typeIndicator !== 0) {
71
+ throw new Error('Expected type indicator to be 0');
72
+ }
73
+ const wellKnownType = iterator.getUint24();
74
+ iterator.discard(4);
75
+ const value = parseFromWellKnownType(wellKnownType, iterator, innerSize - 16);
76
+ entries.push({ index, type, wellKnownType, value });
77
+ }
78
+ box.discardRest();
79
+ return {
80
+ type: 'ilst-box',
81
+ boxSize: size,
82
+ offset,
83
+ entries,
84
+ };
85
+ };
86
+ exports.parseIlstBox = parseIlstBox;
@@ -0,0 +1,19 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { LogLevel } from '../../../log';
3
+ import type { Options, ParseMediaFields } from '../../../options';
4
+ import type { AnySegment } from '../../../parse-result';
5
+ import type { ParserContext } from '../../../parser-context';
6
+ import type { BaseBox } from '../base-type';
7
+ export interface MoovBox extends BaseBox {
8
+ type: 'moov-box';
9
+ children: AnySegment[];
10
+ }
11
+ export declare const parseMoov: ({ iterator, offset, size, options, signal, logLevel, fields, }: {
12
+ iterator: BufferIterator;
13
+ offset: number;
14
+ size: number;
15
+ options: ParserContext;
16
+ signal: AbortSignal | null;
17
+ logLevel: LogLevel;
18
+ fields: Options<ParseMediaFields>;
19
+ }) => Promise<MoovBox>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMoov = void 0;
4
+ const process_box_1 = require("../process-box");
5
+ const parseMoov = async ({ iterator, offset, size, options, signal, logLevel, fields, }) => {
6
+ const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
7
+ iterator,
8
+ maxBytes: size - (iterator.counter.getOffset() - offset),
9
+ allowIncompleteBoxes: false,
10
+ initialBoxes: [],
11
+ options,
12
+ continueMdat: false,
13
+ signal,
14
+ logLevel,
15
+ fields,
16
+ });
17
+ if (children.status === 'incomplete') {
18
+ throw new Error('Incomplete boxes are not allowed');
19
+ }
20
+ return {
21
+ offset,
22
+ boxSize: size,
23
+ type: 'moov-box',
24
+ children: children.segments.boxes,
25
+ };
26
+ };
27
+ exports.parseMoov = parseMoov;
@@ -0,0 +1,30 @@
1
+ import type { BufferIterator } from '../../buffer-iterator';
2
+ import type { BaseBox } from './base-type';
3
+ export type ThreeDMatrix = [
4
+ number,
5
+ number,
6
+ number,
7
+ number,
8
+ number,
9
+ number,
10
+ number,
11
+ number,
12
+ number
13
+ ];
14
+ export interface MvhdBox extends BaseBox {
15
+ durationInUnits: number;
16
+ durationInSeconds: number;
17
+ creationTime: number | null;
18
+ modificationTime: number | null;
19
+ timeScale: number;
20
+ rate: number;
21
+ volume: number;
22
+ matrix: ThreeDMatrix;
23
+ nextTrackId: number;
24
+ type: 'mvhd-box';
25
+ }
26
+ export declare const parseMvhd: ({ iterator, offset, size, }: {
27
+ iterator: BufferIterator;
28
+ offset: number;
29
+ size: number;
30
+ }) => MvhdBox;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMvhd = void 0;
4
+ const buffer_iterator_1 = require("../../buffer-iterator");
5
+ const to_date_1 = require("./to-date");
6
+ const parseMvhd = ({ iterator, offset, size, }) => {
7
+ const version = iterator.getUint8();
8
+ // Flags, we discard them
9
+ iterator.discard(3);
10
+ const creationTime = version === 1 ? iterator.getUint64() : iterator.getUint32();
11
+ const modificationTime = version === 1 ? iterator.getUint64() : iterator.getUint32();
12
+ const timeScale = iterator.getUint32();
13
+ const durationInUnits = version === 1 ? iterator.getUint64() : iterator.getUint32();
14
+ const durationInSeconds = Number(durationInUnits) / timeScale;
15
+ const rateArray = iterator.getSlice(4);
16
+ const rateView = (0, buffer_iterator_1.getArrayBufferIterator)(rateArray, rateArray.length);
17
+ const rate = rateView.getInt8() * 10 +
18
+ rateView.getInt8() +
19
+ rateView.getInt8() * 0.1 +
20
+ rateView.getInt8() * 0.01;
21
+ const volumeArray = iterator.getSlice(2);
22
+ const volumeView = (0, buffer_iterator_1.getArrayBufferIterator)(volumeArray, volumeArray.length);
23
+ const volume = volumeView.getInt8() + volumeView.getInt8() * 0.1;
24
+ // reserved 16bit
25
+ iterator.discard(2);
26
+ // reserved 32bit x2
27
+ iterator.discard(4);
28
+ iterator.discard(4);
29
+ // matrix
30
+ const matrix = [
31
+ iterator.getFixedPointSigned1616Number(),
32
+ iterator.getFixedPointSigned1616Number(),
33
+ iterator.getFixedPointSigned230Number(),
34
+ iterator.getFixedPointSigned1616Number(),
35
+ iterator.getFixedPointSigned1616Number(),
36
+ iterator.getFixedPointSigned230Number(),
37
+ iterator.getFixedPointSigned1616Number(),
38
+ iterator.getFixedPointSigned1616Number(),
39
+ iterator.getFixedPointSigned230Number(),
40
+ ];
41
+ // pre-defined
42
+ iterator.discard(4 * 6);
43
+ // next track id
44
+ const nextTrackId = iterator.getUint32();
45
+ volumeView.destroy();
46
+ const bytesRemaining = size - (iterator.counter.getOffset() - offset);
47
+ if (bytesRemaining !== 0) {
48
+ throw new Error('expected 0 bytes ' + bytesRemaining);
49
+ }
50
+ return {
51
+ creationTime: (0, to_date_1.toUnixTimestamp)(Number(creationTime)),
52
+ modificationTime: (0, to_date_1.toUnixTimestamp)(Number(modificationTime)),
53
+ timeScale,
54
+ durationInUnits: Number(durationInUnits),
55
+ durationInSeconds,
56
+ rate,
57
+ volume,
58
+ matrix: matrix,
59
+ nextTrackId,
60
+ type: 'mvhd-box',
61
+ boxSize: size,
62
+ offset,
63
+ };
64
+ };
65
+ exports.parseMvhd = parseMvhd;
@@ -0,0 +1,36 @@
1
+ type Point = {
2
+ x: number;
3
+ y: number;
4
+ z: number;
5
+ };
6
+ export type IccProfile = {
7
+ size: number;
8
+ preferredCMMType: string;
9
+ profileVersion: string;
10
+ profileDeviceClass: string;
11
+ colorSpace: string;
12
+ pcs: string;
13
+ dateTime: Uint8Array;
14
+ signature: string;
15
+ primaryPlatform: string;
16
+ profileFlags: number;
17
+ deviceManufacturer: string;
18
+ deviceModel: string;
19
+ deviceAttributes: bigint;
20
+ renderingIntent: number;
21
+ pcsIlluminant: [number, number, number];
22
+ profileCreator: string;
23
+ profileId: string;
24
+ entries: Entry[];
25
+ rXYZ: Point | null;
26
+ gXYZ: Point | null;
27
+ bXYZ: Point | null;
28
+ whitePoint: Point | null;
29
+ };
30
+ type Entry = {
31
+ tag: string;
32
+ size: number;
33
+ offset: number;
34
+ };
35
+ export declare const parseIccProfile: (data: Uint8Array) => IccProfile;
36
+ export {};
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseIccProfile = void 0;
4
+ const buffer_iterator_1 = require("../../buffer-iterator");
5
+ const parseIccProfile = (data) => {
6
+ const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(data, Infinity);
7
+ const size = iterator.getUint32();
8
+ if (size !== data.length) {
9
+ throw new Error('Invalid ICC profile size');
10
+ }
11
+ const preferredCMMType = iterator.getByteString(4);
12
+ const profileVersion = iterator.getByteString(4);
13
+ const profileDeviceClass = iterator.getByteString(4);
14
+ const colorSpace = iterator.getByteString(4);
15
+ const pcs = iterator.getByteString(4);
16
+ const dateTime = iterator.getSlice(12);
17
+ const signature = iterator.getByteString(4);
18
+ if (signature !== 'acsp') {
19
+ throw new Error('Invalid ICC profile signature');
20
+ }
21
+ const primaryPlatform = iterator.getByteString(4);
22
+ const profileFlags = iterator.getUint32();
23
+ const deviceManufacturer = iterator.getByteString(4);
24
+ const deviceModel = iterator.getByteString(4);
25
+ const deviceAttributes = iterator.getUint64();
26
+ const renderingIntent = iterator.getUint32();
27
+ const pcsIlluminant1 = iterator.getUint32();
28
+ const pcsIlluminant2 = iterator.getUint32();
29
+ const pcsIlluminant3 = iterator.getUint32();
30
+ const profileCreator = iterator.getByteString(4);
31
+ const profileId = iterator.getByteString(16);
32
+ // reserved
33
+ iterator.discard(28);
34
+ const tagCount = iterator.getUint32();
35
+ const entries = [];
36
+ for (let i = 0; i < tagCount; i++) {
37
+ const entry = {
38
+ tag: iterator.getByteString(4),
39
+ offset: iterator.getUint32(),
40
+ size: iterator.getUint32(),
41
+ };
42
+ entries.push(entry);
43
+ }
44
+ let lastOffset = -1;
45
+ let rXYZ = null;
46
+ let gXYZ = null;
47
+ let bXYZ = null;
48
+ let whitePoint = null;
49
+ for (const entry of entries) {
50
+ const found = data.slice(entry.offset, entry.offset + entry.size);
51
+ if (entry.tag === 'rXYZ' ||
52
+ entry.tag === 'gXYZ' ||
53
+ entry.tag === 'bXYZ' ||
54
+ entry.tag === 'wtpt') {
55
+ const it = (0, buffer_iterator_1.getArrayBufferIterator)(found, Infinity);
56
+ it.discard(4);
57
+ const x = it.getInt32() / 65536;
58
+ const y = it.getInt32() / 65536;
59
+ const z = it.getInt32() / 65536;
60
+ it.destroy();
61
+ const point = { x, y, z };
62
+ if (entry.tag === 'rXYZ') {
63
+ rXYZ = point;
64
+ }
65
+ else if (entry.tag === 'gXYZ') {
66
+ gXYZ = point;
67
+ }
68
+ else if (entry.tag === 'bXYZ') {
69
+ bXYZ = point;
70
+ }
71
+ else if (entry.tag === 'wtpt') {
72
+ whitePoint = point;
73
+ }
74
+ }
75
+ if (lastOffset !== -1) {
76
+ const bytesToAdvance = entry.offset - lastOffset;
77
+ const bytesToGoBackwards = entry.size - bytesToAdvance;
78
+ if (bytesToGoBackwards > 0) {
79
+ iterator.counter.decrement(bytesToGoBackwards);
80
+ }
81
+ }
82
+ lastOffset = entry.offset;
83
+ }
84
+ const profile = {
85
+ size,
86
+ preferredCMMType,
87
+ profileVersion,
88
+ profileDeviceClass,
89
+ colorSpace,
90
+ pcs,
91
+ dateTime,
92
+ signature,
93
+ primaryPlatform,
94
+ profileFlags,
95
+ deviceManufacturer,
96
+ deviceModel,
97
+ deviceAttributes,
98
+ renderingIntent,
99
+ pcsIlluminant: [
100
+ pcsIlluminant1 / 65536,
101
+ pcsIlluminant2 / 65536,
102
+ pcsIlluminant3 / 65536,
103
+ ],
104
+ profileCreator,
105
+ profileId,
106
+ entries,
107
+ bXYZ,
108
+ gXYZ,
109
+ rXYZ,
110
+ whitePoint,
111
+ };
112
+ iterator.destroy();
113
+ return profile;
114
+ };
115
+ exports.parseIccProfile = parseIccProfile;
@@ -0,0 +1,34 @@
1
+ import type { BufferIterator } from '../../buffer-iterator';
2
+ import type { LogLevel } from '../../log';
3
+ import type { Options, ParseMediaFields } from '../../options';
4
+ import type { IsoBaseMediaBox, IsoBaseMediaStructure, ParseResult } from '../../parse-result';
5
+ import type { BoxAndNext, PartialMdatBox } from '../../parse-video';
6
+ import type { ParserContext } from '../../parser-context';
7
+ export declare const parseMdatPartially: ({ iterator, boxSize, fileOffset, parsedBoxes, options, signal, }: {
8
+ iterator: BufferIterator;
9
+ boxSize: number;
10
+ fileOffset: number;
11
+ parsedBoxes: IsoBaseMediaBox[];
12
+ options: ParserContext;
13
+ signal: AbortSignal | null;
14
+ }) => Promise<BoxAndNext>;
15
+ export declare const processBox: ({ iterator, allowIncompleteBoxes, parsedBoxes, options, signal, logLevel, fields, }: {
16
+ iterator: BufferIterator;
17
+ allowIncompleteBoxes: boolean;
18
+ parsedBoxes: IsoBaseMediaBox[];
19
+ options: ParserContext;
20
+ signal: AbortSignal | null;
21
+ logLevel: LogLevel;
22
+ fields: Options<ParseMediaFields>;
23
+ }) => Promise<BoxAndNext>;
24
+ export declare const parseIsoBaseMediaBoxes: ({ iterator, maxBytes, allowIncompleteBoxes, initialBoxes, options, continueMdat, signal, logLevel, fields, }: {
25
+ iterator: BufferIterator;
26
+ maxBytes: number;
27
+ allowIncompleteBoxes: boolean;
28
+ initialBoxes: IsoBaseMediaBox[];
29
+ options: ParserContext;
30
+ continueMdat: false | PartialMdatBox;
31
+ signal: AbortSignal | null;
32
+ logLevel: LogLevel;
33
+ fields: Options<ParseMediaFields>;
34
+ }) => Promise<ParseResult<IsoBaseMediaStructure>>;