@remotion/media-parser 4.0.249 → 4.0.251

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 (405) hide show
  1. package/dist/add-avc-profile-to-track.js +2 -2
  2. package/dist/buffer-iterator.d.ts +3 -5
  3. package/dist/buffer-iterator.js +66 -50
  4. package/dist/containers/aac/parse-aac.d.ts +3 -0
  5. package/dist/containers/aac/parse-aac.js +83 -0
  6. package/dist/containers/aac/types.d.ts +4 -0
  7. package/dist/{boxes → containers}/avc/key.d.ts +1 -1
  8. package/dist/containers/flac/get-block-size.d.ts +2 -0
  9. package/dist/containers/flac/get-block-size.js +26 -0
  10. package/dist/containers/flac/get-channel-count.d.ts +2 -0
  11. package/dist/containers/flac/get-channel-count.js +36 -0
  12. package/dist/containers/flac/get-duration-from-flac.d.ts +2 -0
  13. package/dist/containers/flac/get-duration-from-flac.js +15 -0
  14. package/dist/containers/flac/get-metadata-from-flac.d.ts +2 -0
  15. package/dist/containers/flac/get-metadata-from-flac.js +11 -0
  16. package/dist/containers/flac/get-sample-rate.d.ts +3 -0
  17. package/dist/containers/flac/get-sample-rate.js +60 -0
  18. package/dist/containers/flac/parse-flac-frame.d.ts +15 -0
  19. package/dist/containers/flac/parse-flac-frame.js +175 -0
  20. package/dist/{boxes/riff/parse-box.d.ts → containers/flac/parse-flac.d.ts} +1 -3
  21. package/dist/containers/flac/parse-flac.js +54 -0
  22. package/dist/{boxes/mp3/parse-mpeg-header.d.ts → containers/flac/parse-header.d.ts} +4 -3
  23. package/dist/containers/flac/parse-header.js +10 -0
  24. package/dist/{boxes/mp3/parse-mp3.d.ts → containers/flac/parse-metadata.d.ts} +4 -4
  25. package/dist/containers/flac/parse-metadata.js +24 -0
  26. package/dist/{boxes/webm/parse-webm-header.d.ts → containers/flac/parse-streaminfo.d.ts} +2 -4
  27. package/dist/containers/flac/parse-streaminfo.js +53 -0
  28. package/dist/containers/flac/parse-unknown-block.d.ts +8 -0
  29. package/dist/containers/flac/parse-unknown-block.js +11 -0
  30. package/dist/containers/flac/types.d.ts +26 -0
  31. package/dist/containers/iso-base-media/base-media-box.d.ts +40 -0
  32. package/dist/containers/iso-base-media/get-children.d.ts +6 -0
  33. package/dist/containers/iso-base-media/get-children.js +21 -0
  34. package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.d.ts +1 -1
  35. package/dist/containers/iso-base-media/mdat/mdat.d.ts +2 -0
  36. package/dist/containers/iso-base-media/mdat/mdat.js +91 -0
  37. package/dist/containers/iso-base-media/moov/moov.d.ts +12 -0
  38. package/dist/containers/iso-base-media/moov/moov.js +17 -0
  39. package/dist/containers/iso-base-media/parse-boxes.d.ts +3 -0
  40. package/dist/containers/iso-base-media/parse-boxes.js +40 -0
  41. package/dist/containers/iso-base-media/process-box.d.ts +3 -0
  42. package/dist/{boxes → containers}/iso-base-media/process-box.js +49 -147
  43. package/dist/{boxes → containers}/iso-base-media/stsd/mebx.d.ts +1 -6
  44. package/dist/containers/iso-base-media/stsd/mebx.js +22 -0
  45. package/dist/{boxes → containers}/iso-base-media/stsd/samples.d.ts +6 -16
  46. package/dist/{boxes → containers}/iso-base-media/stsd/samples.js +26 -71
  47. package/dist/{boxes → containers}/iso-base-media/stsd/stsd.d.ts +1 -6
  48. package/dist/{boxes → containers}/iso-base-media/stsd/stsd.js +3 -6
  49. package/dist/containers/iso-base-media/trak/trak.d.ts +12 -0
  50. package/dist/containers/iso-base-media/trak/trak.js +17 -0
  51. package/dist/{boxes → containers}/iso-base-media/traversal.d.ts +2 -3
  52. package/dist/{boxes → containers}/iso-base-media/traversal.js +1 -12
  53. package/dist/containers/iso-base-media/void-box.js +2 -0
  54. package/dist/containers/mp3/get-tracks-from-mp3.d.ts +4 -0
  55. package/dist/{boxes → containers}/mp3/get-tracks-from-mp3.js +6 -6
  56. package/dist/containers/mp3/id3.d.ts +4 -0
  57. package/dist/{boxes → containers}/mp3/id3.js +8 -5
  58. package/dist/containers/mp3/parse-mp3.d.ts +3 -0
  59. package/dist/{boxes → containers}/mp3/parse-mp3.js +4 -20
  60. package/dist/containers/mp3/parse-mpeg-header.d.ts +4 -0
  61. package/dist/{boxes → containers}/mp3/parse-mpeg-header.js +2 -1
  62. package/dist/containers/riff/expect-riff-box.d.ts +7 -0
  63. package/dist/containers/riff/expect-riff-box.js +72 -0
  64. package/dist/containers/riff/get-duration.d.ts +3 -0
  65. package/dist/containers/riff/get-duration.js +33 -0
  66. package/dist/{boxes → containers}/riff/get-tracks-from-avi.d.ts +2 -3
  67. package/dist/{boxes → containers}/riff/get-tracks-from-avi.js +6 -10
  68. package/dist/containers/riff/parse-list-box.d.ts +6 -0
  69. package/dist/containers/riff/parse-list-box.js +29 -0
  70. package/dist/containers/riff/parse-movi.d.ts +11 -0
  71. package/dist/{boxes → containers}/riff/parse-movi.js +37 -57
  72. package/dist/containers/riff/parse-riff-body.d.ts +3 -0
  73. package/dist/containers/riff/parse-riff-body.js +22 -0
  74. package/dist/containers/riff/parse-riff-box.d.ts +7 -0
  75. package/dist/{boxes → containers}/riff/parse-riff-box.js +3 -10
  76. package/dist/containers/riff/parse-riff-header.d.ts +3 -0
  77. package/dist/containers/riff/parse-riff-header.js +23 -0
  78. package/dist/containers/riff/parse-riff.d.ts +3 -0
  79. package/dist/containers/riff/parse-riff.js +12 -0
  80. package/dist/containers/riff/parse-strf.d.ts +7 -0
  81. package/dist/{boxes → containers}/riff/parse-strf.js +4 -8
  82. package/dist/{boxes → containers}/riff/parse-strh.js +11 -0
  83. package/dist/containers/riff/parse-video-section.d.ts +2 -0
  84. package/dist/containers/riff/parse-video-section.js +19 -0
  85. package/dist/{boxes → containers}/riff/riff-box.d.ts +8 -14
  86. package/dist/containers/riff/riff-box.js +2 -0
  87. package/dist/{boxes → containers}/riff/traversal.d.ts +1 -3
  88. package/dist/{boxes → containers}/riff/traversal.js +1 -6
  89. package/dist/containers/transport-stream/boxes.js +2 -0
  90. package/dist/containers/transport-stream/get-tracks.d.ts +4 -0
  91. package/dist/{boxes → containers}/transport-stream/get-tracks.js +4 -3
  92. package/dist/containers/transport-stream/parse-packet.d.ts +5 -0
  93. package/dist/{boxes → containers}/transport-stream/parse-packet.js +4 -5
  94. package/dist/containers/transport-stream/parse-stream-packet.d.ts +9 -0
  95. package/dist/{boxes → containers}/transport-stream/parse-stream-packet.js +11 -12
  96. package/dist/containers/transport-stream/parse-transport-stream.d.ts +3 -0
  97. package/dist/{boxes → containers}/transport-stream/parse-transport-stream.js +8 -37
  98. package/dist/{boxes → containers}/transport-stream/process-stream-buffers.d.ts +1 -2
  99. package/dist/{boxes → containers}/transport-stream/process-stream-buffers.js +3 -3
  100. package/dist/containers/wav/get-duration-from-wav.d.ts +3 -0
  101. package/dist/containers/wav/get-duration-from-wav.js +29 -0
  102. package/dist/containers/wav/get-metadata-from-wav.d.ts +3 -0
  103. package/dist/containers/wav/get-metadata-from-wav.js +11 -0
  104. package/dist/containers/wav/parse-data.d.ts +5 -0
  105. package/dist/containers/wav/parse-data.js +25 -0
  106. package/dist/containers/wav/parse-fmt.d.ts +5 -0
  107. package/dist/containers/wav/parse-fmt.js +56 -0
  108. package/dist/containers/wav/parse-header.d.ts +5 -0
  109. package/dist/containers/wav/parse-header.js +17 -0
  110. package/dist/containers/wav/parse-id3.d.ts +5 -0
  111. package/dist/containers/wav/parse-id3.js +17 -0
  112. package/dist/containers/wav/parse-list.d.ts +5 -0
  113. package/dist/containers/wav/parse-list.js +32 -0
  114. package/dist/containers/wav/parse-video-section.d.ts +5 -0
  115. package/dist/containers/wav/parse-video-section.js +37 -0
  116. package/dist/containers/wav/parse-wav.d.ts +3 -0
  117. package/dist/containers/wav/parse-wav.js +36 -0
  118. package/dist/containers/wav/types.d.ts +30 -0
  119. package/dist/containers/wav/types.js +2 -0
  120. package/dist/{boxes → containers}/webm/parse-ebml.d.ts +1 -2
  121. package/dist/{boxes → containers}/webm/parse-ebml.js +6 -2
  122. package/dist/containers/webm/parse-webm-header.d.ts +3 -0
  123. package/dist/containers/webm/parse-webm-header.js +53 -0
  124. package/dist/containers/webm/segments.d.ts +9 -0
  125. package/dist/containers/webm/segments.js +80 -0
  126. package/dist/emit-available-info.d.ts +1 -3
  127. package/dist/emit-available-info.js +86 -76
  128. package/dist/errors.d.ts +1 -1
  129. package/dist/esm/from-node.mjs +8 -9
  130. package/dist/esm/index.mjs +4951 -4693
  131. package/dist/file-types/detect-file-type.d.ts +5 -1
  132. package/dist/file-types/detect-file-type.js +10 -3
  133. package/dist/file-types/index.js +3 -0
  134. package/dist/get-audio-codec.d.ts +4 -5
  135. package/dist/get-audio-codec.js +5 -5
  136. package/dist/get-container.d.ts +2 -2
  137. package/dist/get-container.js +10 -1
  138. package/dist/get-dimensions.d.ts +2 -3
  139. package/dist/get-dimensions.js +14 -10
  140. package/dist/get-duration.d.ts +5 -5
  141. package/dist/get-duration.js +29 -27
  142. package/dist/get-fields-from-callbacks.js +4 -0
  143. package/dist/get-fps.d.ts +1 -1
  144. package/dist/get-fps.js +12 -4
  145. package/dist/get-is-hdr.d.ts +2 -3
  146. package/dist/get-is-hdr.js +4 -4
  147. package/dist/get-keyframes.d.ts +1 -1
  148. package/dist/get-keyframes.js +4 -3
  149. package/dist/get-number-of-audio-channels.d.ts +3 -0
  150. package/dist/get-number-of-audio-channels.js +14 -0
  151. package/dist/get-sample-aspect-ratio.d.ts +8 -8
  152. package/dist/get-sample-aspect-ratio.js +1 -1
  153. package/dist/get-sample-positions-from-lpcm.d.ts +1 -1
  154. package/dist/get-sample-positions-from-lpcm.js +1 -1
  155. package/dist/get-sample-positions.d.ts +6 -6
  156. package/dist/get-sample-rate.d.ts +3 -0
  157. package/dist/get-sample-rate.js +14 -0
  158. package/dist/get-tracks.d.ts +9 -8
  159. package/dist/get-tracks.js +36 -22
  160. package/dist/get-video-codec.d.ts +3 -4
  161. package/dist/get-video-codec.js +6 -6
  162. package/dist/has-all-info.js +26 -15
  163. package/dist/index.d.ts +145 -41
  164. package/dist/index.js +8 -8
  165. package/dist/init-video.d.ts +7 -0
  166. package/dist/init-video.js +114 -0
  167. package/dist/is-audio-structure.d.ts +2 -0
  168. package/dist/is-audio-structure.js +31 -0
  169. package/dist/metadata/get-metadata.js +16 -1
  170. package/dist/metadata/metadata-from-iso.d.ts +2 -1
  171. package/dist/metadata/metadata-from-iso.js +1 -1
  172. package/dist/metadata/metadata-from-matroska.js +1 -1
  173. package/dist/metadata/metadata-from-riff.d.ts +1 -1
  174. package/dist/options.d.ts +64 -38
  175. package/dist/parse-media.js +125 -43
  176. package/dist/parse-result.d.ts +8 -61
  177. package/dist/perform-seek.d.ts +13 -0
  178. package/dist/perform-seek.js +29 -0
  179. package/dist/readers/from-node.js +7 -8
  180. package/dist/readers/reader.d.ts +1 -1
  181. package/dist/register-track.d.ts +3 -3
  182. package/dist/run-parse-iteration.d.ts +8 -0
  183. package/dist/run-parse-iteration.js +48 -0
  184. package/dist/samples-from-moof.js +1 -1
  185. package/dist/state/aac-state.d.ts +13 -0
  186. package/dist/state/aac-state.js +17 -0
  187. package/dist/state/can-skip-tracks.d.ts +8 -1
  188. package/dist/state/can-skip-tracks.js +42 -27
  189. package/dist/state/emitted-fields.js +4 -0
  190. package/dist/state/flac-state.d.ts +4 -0
  191. package/dist/state/flac-state.js +13 -0
  192. package/dist/state/has-tracks-section.d.ts +2 -1
  193. package/dist/state/has-tracks-section.js +4 -1
  194. package/dist/state/iso-base-media/cached-sample-positions.d.ts +15 -0
  195. package/dist/state/iso-base-media/cached-sample-positions.js +42 -0
  196. package/dist/state/iso-base-media/iso-state.d.ts +8 -0
  197. package/dist/state/iso-base-media/iso-state.js +15 -0
  198. package/dist/{may-skip-video-data → state}/may-skip-video-data.d.ts +1 -1
  199. package/dist/{may-skip-video-data → state}/may-skip-video-data.js +6 -2
  200. package/dist/{may-skip-video-data → state}/need-samples-for-fields.js +4 -0
  201. package/dist/state/parser-state.d.ts +131 -17
  202. package/dist/state/parser-state.js +18 -5
  203. package/dist/state/sample-callbacks.d.ts +6 -2
  204. package/dist/state/sample-callbacks.js +5 -2
  205. package/dist/state/slow-duration-fps.d.ts +2 -0
  206. package/dist/state/slow-duration-fps.js +18 -0
  207. package/dist/state/transport-stream.d.ts +8 -0
  208. package/dist/state/transport-stream.js +11 -0
  209. package/dist/state/video-section.d.ts +16 -0
  210. package/dist/state/video-section.js +37 -0
  211. package/dist/state/webm.d.ts +17 -2
  212. package/dist/state/webm.js +33 -1
  213. package/dist/version.d.ts +1 -1
  214. package/dist/version.js +1 -1
  215. package/dist/webcodec-sample-types.d.ts +3 -3
  216. package/package.json +3 -3
  217. package/test.json +663 -0
  218. package/dist/boxes/iso-base-media/get-children.d.ts +0 -14
  219. package/dist/boxes/iso-base-media/get-children.js +0 -39
  220. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -26
  221. package/dist/boxes/iso-base-media/mdat/mdat.js +0 -141
  222. package/dist/boxes/iso-base-media/moov/moov.d.ts +0 -19
  223. package/dist/boxes/iso-base-media/moov/moov.js +0 -27
  224. package/dist/boxes/iso-base-media/parse-boxes.d.ts +0 -15
  225. package/dist/boxes/iso-base-media/parse-boxes.js +0 -129
  226. package/dist/boxes/iso-base-media/parse-mdat-partially.d.ts +0 -12
  227. package/dist/boxes/iso-base-media/parse-mdat-partially.js +0 -33
  228. package/dist/boxes/iso-base-media/process-box.d.ts +0 -15
  229. package/dist/boxes/iso-base-media/stsd/mebx.js +0 -32
  230. package/dist/boxes/iso-base-media/trak/trak.d.ts +0 -19
  231. package/dist/boxes/iso-base-media/trak/trak.js +0 -27
  232. package/dist/boxes/mp3/get-tracks-from-mp3.d.ts +0 -4
  233. package/dist/boxes/mp3/id3-v2.d.ts +0 -0
  234. package/dist/boxes/mp3/id3-v2.js +0 -1
  235. package/dist/boxes/mp3/id3.d.ts +0 -8
  236. package/dist/boxes/riff/continue-after-riff-result.d.ts +0 -13
  237. package/dist/boxes/riff/continue-after-riff-result.js +0 -34
  238. package/dist/boxes/riff/expect-riff-box.d.ts +0 -19
  239. package/dist/boxes/riff/expect-riff-box.js +0 -50
  240. package/dist/boxes/riff/parse-box.js +0 -35
  241. package/dist/boxes/riff/parse-fmt-box.d.ts +0 -7
  242. package/dist/boxes/riff/parse-fmt-box.js +0 -33
  243. package/dist/boxes/riff/parse-list-box.d.ts +0 -10
  244. package/dist/boxes/riff/parse-list-box.js +0 -31
  245. package/dist/boxes/riff/parse-movi.d.ts +0 -17
  246. package/dist/boxes/riff/parse-riff-body.d.ts +0 -11
  247. package/dist/boxes/riff/parse-riff-body.js +0 -105
  248. package/dist/boxes/riff/parse-riff-box.d.ts +0 -12
  249. package/dist/boxes/riff/parse-strf.d.ts +0 -7
  250. package/dist/boxes/transport-stream/get-tracks.d.ts +0 -5
  251. package/dist/boxes/transport-stream/parse-packet.d.ts +0 -13
  252. package/dist/boxes/transport-stream/parse-stream-packet.d.ts +0 -15
  253. package/dist/boxes/transport-stream/parse-transport-stream.d.ts +0 -13
  254. package/dist/boxes/webm/parse-webm-header.js +0 -37
  255. package/dist/boxes/webm/segments/parse-children.d.ts +0 -23
  256. package/dist/boxes/webm/segments/parse-children.js +0 -144
  257. package/dist/boxes/webm/segments.d.ts +0 -15
  258. package/dist/boxes/webm/segments.js +0 -161
  259. package/dist/continue-mdat-routine.d.ts +0 -17
  260. package/dist/continue-mdat-routine.js +0 -92
  261. package/dist/parse-video.d.ts +0 -28
  262. package/dist/parse-video.js +0 -130
  263. /package/dist/{boxes/iso-base-media/base-type.js → containers/aac/types.js} +0 -0
  264. /package/dist/{boxes → containers}/avc/codec-string.d.ts +0 -0
  265. /package/dist/{boxes → containers}/avc/codec-string.js +0 -0
  266. /package/dist/{boxes → containers}/avc/color.d.ts +0 -0
  267. /package/dist/{boxes → containers}/avc/color.js +0 -0
  268. /package/dist/{boxes → containers}/avc/create-sps-pps-data.d.ts +0 -0
  269. /package/dist/{boxes → containers}/avc/create-sps-pps-data.js +0 -0
  270. /package/dist/{boxes → containers}/avc/interpret-sps.d.ts +0 -0
  271. /package/dist/{boxes → containers}/avc/interpret-sps.js +0 -0
  272. /package/dist/{boxes → containers}/avc/key.js +0 -0
  273. /package/dist/{boxes → containers}/avc/parse-avc.d.ts +0 -0
  274. /package/dist/{boxes → containers}/avc/parse-avc.js +0 -0
  275. /package/dist/{boxes → containers}/avc/sps-and-pps.d.ts +0 -0
  276. /package/dist/{boxes → containers}/avc/sps-and-pps.js +0 -0
  277. /package/dist/{boxes/iso-base-media/void-box.js → containers/flac/types.js} +0 -0
  278. /package/dist/{boxes/riff/riff-box.js → containers/iso-base-media/base-media-box.js} +0 -0
  279. /package/dist/{boxes → containers}/iso-base-media/base-type.d.ts +0 -0
  280. /package/dist/{boxes/transport-stream/boxes.js → containers/iso-base-media/base-type.js} +0 -0
  281. /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.d.ts +0 -0
  282. /package/dist/{boxes → containers}/iso-base-media/esds/decoder-specific-config.js +0 -0
  283. /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.d.ts +0 -0
  284. /package/dist/{boxes → containers}/iso-base-media/esds/esds-descriptors.js +0 -0
  285. /package/dist/{boxes → containers}/iso-base-media/esds/esds.d.ts +0 -0
  286. /package/dist/{boxes → containers}/iso-base-media/esds/esds.js +0 -0
  287. /package/dist/{boxes → containers}/iso-base-media/ftyp.d.ts +0 -0
  288. /package/dist/{boxes → containers}/iso-base-media/ftyp.js +0 -0
  289. /package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.d.ts +0 -0
  290. /package/dist/{boxes → containers}/iso-base-media/get-actual-number-of-channels.js +0 -0
  291. /package/dist/{boxes → containers}/iso-base-media/get-keyframes.d.ts +0 -0
  292. /package/dist/{boxes → containers}/iso-base-media/get-keyframes.js +0 -0
  293. /package/dist/{boxes → containers}/iso-base-media/get-sample-positions-from-track.js +0 -0
  294. /package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.d.ts +0 -0
  295. /package/dist/{boxes → containers}/iso-base-media/get-video-codec-from-iso-track.js +0 -0
  296. /package/dist/{boxes → containers}/iso-base-media/make-track.d.ts +0 -0
  297. /package/dist/{boxes → containers}/iso-base-media/make-track.js +0 -0
  298. /package/dist/{boxes → containers}/iso-base-media/mdhd.d.ts +0 -0
  299. /package/dist/{boxes → containers}/iso-base-media/mdhd.js +0 -0
  300. /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.d.ts +0 -0
  301. /package/dist/{boxes → containers}/iso-base-media/meta/hdlr.js +0 -0
  302. /package/dist/{boxes → containers}/iso-base-media/meta/ilst.d.ts +0 -0
  303. /package/dist/{boxes → containers}/iso-base-media/meta/ilst.js +0 -0
  304. /package/dist/{boxes → containers}/iso-base-media/mvhd.d.ts +0 -0
  305. /package/dist/{boxes → containers}/iso-base-media/mvhd.js +0 -0
  306. /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.d.ts +0 -0
  307. /package/dist/{boxes → containers}/iso-base-media/parse-icc-profile.js +0 -0
  308. /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.d.ts +0 -0
  309. /package/dist/{boxes → containers}/iso-base-media/stsd/av1c.js +0 -0
  310. /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.d.ts +0 -0
  311. /package/dist/{boxes → containers}/iso-base-media/stsd/avcc.js +0 -0
  312. /package/dist/{boxes → containers}/iso-base-media/stsd/colr.d.ts +0 -0
  313. /package/dist/{boxes → containers}/iso-base-media/stsd/colr.js +0 -0
  314. /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.d.ts +0 -0
  315. /package/dist/{boxes → containers}/iso-base-media/stsd/ctts.js +0 -0
  316. /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.d.ts +0 -0
  317. /package/dist/{boxes → containers}/iso-base-media/stsd/hvcc.js +0 -0
  318. /package/dist/{boxes → containers}/iso-base-media/stsd/keys.d.ts +0 -0
  319. /package/dist/{boxes → containers}/iso-base-media/stsd/keys.js +0 -0
  320. /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.d.ts +0 -0
  321. /package/dist/{boxes → containers}/iso-base-media/stsd/pasp.js +0 -0
  322. /package/dist/{boxes → containers}/iso-base-media/stsd/stco.d.ts +0 -0
  323. /package/dist/{boxes → containers}/iso-base-media/stsd/stco.js +0 -0
  324. /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.d.ts +0 -0
  325. /package/dist/{boxes → containers}/iso-base-media/stsd/stsc.js +0 -0
  326. /package/dist/{boxes → containers}/iso-base-media/stsd/stss.d.ts +0 -0
  327. /package/dist/{boxes → containers}/iso-base-media/stsd/stss.js +0 -0
  328. /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.d.ts +0 -0
  329. /package/dist/{boxes → containers}/iso-base-media/stsd/stsz.js +0 -0
  330. /package/dist/{boxes → containers}/iso-base-media/stsd/stts.d.ts +0 -0
  331. /package/dist/{boxes → containers}/iso-base-media/stsd/stts.js +0 -0
  332. /package/dist/{boxes → containers}/iso-base-media/tfdt.d.ts +0 -0
  333. /package/dist/{boxes → containers}/iso-base-media/tfdt.js +0 -0
  334. /package/dist/{boxes → containers}/iso-base-media/tfhd.d.ts +0 -0
  335. /package/dist/{boxes → containers}/iso-base-media/tfhd.js +0 -0
  336. /package/dist/{boxes → containers}/iso-base-media/tkhd.d.ts +0 -0
  337. /package/dist/{boxes → containers}/iso-base-media/tkhd.js +0 -0
  338. /package/dist/{boxes → containers}/iso-base-media/to-date.d.ts +0 -0
  339. /package/dist/{boxes → containers}/iso-base-media/to-date.js +0 -0
  340. /package/dist/{boxes → containers}/iso-base-media/trun.d.ts +0 -0
  341. /package/dist/{boxes → containers}/iso-base-media/trun.js +0 -0
  342. /package/dist/{boxes → containers}/iso-base-media/void-box.d.ts +0 -0
  343. /package/dist/{boxes → containers}/mp3/get-duration.d.ts +0 -0
  344. /package/dist/{boxes → containers}/mp3/get-duration.js +0 -0
  345. /package/dist/{boxes → containers}/mp3/get-frame-length.d.ts +0 -0
  346. /package/dist/{boxes → containers}/mp3/get-frame-length.js +0 -0
  347. /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.d.ts +0 -0
  348. /package/dist/{boxes → containers}/mp3/get-metadata-from-mp3.js +0 -0
  349. /package/dist/{boxes → containers}/mp3/id3-v1.d.ts +0 -0
  350. /package/dist/{boxes → containers}/mp3/id3-v1.js +0 -0
  351. /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.d.ts +0 -0
  352. /package/dist/{boxes → containers}/mp3/samples-per-mpeg-file.js +0 -0
  353. /package/dist/{boxes → containers}/riff/is-movi.d.ts +0 -0
  354. /package/dist/{boxes → containers}/riff/is-movi.js +0 -0
  355. /package/dist/{boxes → containers}/riff/parse-avih.d.ts +0 -0
  356. /package/dist/{boxes → containers}/riff/parse-avih.js +0 -0
  357. /package/dist/{boxes → containers}/riff/parse-isft.d.ts +0 -0
  358. /package/dist/{boxes → containers}/riff/parse-isft.js +0 -0
  359. /package/dist/{boxes → containers}/riff/parse-strh.d.ts +0 -0
  360. /package/dist/{boxes → containers}/riff/timescale.d.ts +0 -0
  361. /package/dist/{boxes → containers}/riff/timescale.js +0 -0
  362. /package/dist/{boxes → containers}/transport-stream/adts-header.d.ts +0 -0
  363. /package/dist/{boxes → containers}/transport-stream/adts-header.js +0 -0
  364. /package/dist/{boxes → containers}/transport-stream/boxes.d.ts +0 -0
  365. /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.d.ts +0 -0
  366. /package/dist/{boxes → containers}/transport-stream/discard-rest-of-packet.js +0 -0
  367. /package/dist/{boxes → containers}/transport-stream/find-separator.d.ts +0 -0
  368. /package/dist/{boxes → containers}/transport-stream/find-separator.js +0 -0
  369. /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.d.ts +0 -0
  370. /package/dist/{boxes → containers}/transport-stream/handle-aac-packet.js +0 -0
  371. /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.d.ts +0 -0
  372. /package/dist/{boxes → containers}/transport-stream/handle-avc-packet.js +0 -0
  373. /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.d.ts +0 -0
  374. /package/dist/{boxes → containers}/transport-stream/next-pes-header-store.js +0 -0
  375. /package/dist/{boxes → containers}/transport-stream/parse-pat.d.ts +0 -0
  376. /package/dist/{boxes → containers}/transport-stream/parse-pat.js +0 -0
  377. /package/dist/{boxes → containers}/transport-stream/parse-pes.d.ts +0 -0
  378. /package/dist/{boxes → containers}/transport-stream/parse-pes.js +0 -0
  379. /package/dist/{boxes → containers}/transport-stream/parse-pmt.d.ts +0 -0
  380. /package/dist/{boxes → containers}/transport-stream/parse-pmt.js +0 -0
  381. /package/dist/{boxes → containers}/transport-stream/traversal.d.ts +0 -0
  382. /package/dist/{boxes → containers}/transport-stream/traversal.js +0 -0
  383. /package/dist/{boxes → containers}/webm/allowed-partial-segments.d.ts +0 -0
  384. /package/dist/{boxes → containers}/webm/allowed-partial-segments.js +0 -0
  385. /package/dist/{boxes → containers}/webm/av1-codec-private.d.ts +0 -0
  386. /package/dist/{boxes → containers}/webm/av1-codec-private.js +0 -0
  387. /package/dist/{boxes → containers}/webm/color.d.ts +0 -0
  388. /package/dist/{boxes → containers}/webm/color.js +0 -0
  389. /package/dist/{boxes → containers}/webm/description.d.ts +0 -0
  390. /package/dist/{boxes → containers}/webm/description.js +0 -0
  391. /package/dist/{boxes → containers}/webm/get-ready-tracks.d.ts +0 -0
  392. /package/dist/{boxes → containers}/webm/get-ready-tracks.js +0 -0
  393. /package/dist/{boxes → containers}/webm/get-sample-from-block.d.ts +0 -0
  394. /package/dist/{boxes → containers}/webm/get-sample-from-block.js +0 -0
  395. /package/dist/{boxes → containers}/webm/make-track.d.ts +0 -0
  396. /package/dist/{boxes → containers}/webm/make-track.js +0 -0
  397. /package/dist/{boxes → containers}/webm/segments/all-segments.d.ts +0 -0
  398. /package/dist/{boxes → containers}/webm/segments/all-segments.js +0 -0
  399. /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.d.ts +0 -0
  400. /package/dist/{boxes → containers}/webm/segments/block-simple-block-flags.js +0 -0
  401. /package/dist/{boxes → containers}/webm/segments/track-entry.d.ts +0 -0
  402. /package/dist/{boxes → containers}/webm/segments/track-entry.js +0 -0
  403. /package/dist/{boxes → containers}/webm/traversal.d.ts +0 -0
  404. /package/dist/{boxes → containers}/webm/traversal.js +0 -0
  405. /package/dist/{may-skip-video-data → state}/need-samples-for-fields.d.ts +0 -0
@@ -0,0 +1,40 @@
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 {
11
+ skipTo,
12
+ };
13
+ }
14
+ const result = await (0, process_box_1.processBox)(state);
15
+ if (result.box) {
16
+ state.structure.getStructure().boxes.push(result.box);
17
+ }
18
+ const { iterator } = state;
19
+ if (iterator.counter.getOffset() === state.contentLength &&
20
+ state.iso.getShouldReturnToVideoSectionAfterEnd()) {
21
+ state.iso.setShouldReturnToVideoSectionAfterEnd(false);
22
+ return {
23
+ skipTo: state.videoSection.getVideoSection().start,
24
+ };
25
+ }
26
+ if (result.skipTo !== null) {
27
+ return {
28
+ skipTo: result.skipTo,
29
+ };
30
+ }
31
+ if (iterator.bytesRemaining() < 0) {
32
+ return {
33
+ skipTo: null,
34
+ };
35
+ }
36
+ return {
37
+ skipTo: null,
38
+ };
39
+ };
40
+ 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>;
@@ -1,20 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.processBox = void 0;
4
- const get_tracks_1 = require("../../get-tracks");
5
- const may_skip_video_data_1 = require("../../may-skip-video-data/may-skip-video-data");
4
+ const log_1 = require("../../log");
6
5
  const register_track_1 = require("../../register-track");
7
6
  const esds_1 = require("./esds/esds");
8
7
  const ftyp_1 = require("./ftyp");
9
8
  const get_children_1 = require("./get-children");
10
9
  const make_track_1 = require("./make-track");
11
- const mdat_1 = require("./mdat/mdat");
12
10
  const mdhd_1 = require("./mdhd");
13
11
  const hdlr_1 = require("./meta/hdlr");
14
12
  const ilst_1 = require("./meta/ilst");
15
13
  const moov_1 = require("./moov/moov");
16
14
  const mvhd_1 = require("./mvhd");
17
- const parse_mdat_partially_1 = require("./parse-mdat-partially");
18
15
  const av1c_1 = require("./stsd/av1c");
19
16
  const avcc_1 = require("./stsd/avcc");
20
17
  const colr_1 = require("./stsd/colr");
@@ -34,18 +31,18 @@ const tfhd_1 = require("./tfhd");
34
31
  const tkhd_1 = require("./tkhd");
35
32
  const trak_1 = require("./trak/trak");
36
33
  const trun_1 = require("./trun");
37
- const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state, signal, logLevel, fields, }) => {
34
+ const processBox = async (state) => {
35
+ const { iterator } = state;
38
36
  const fileOffset = iterator.counter.getOffset();
37
+ const { returnToCheckpoint } = iterator.startCheckpoint();
39
38
  const bytesRemaining = iterator.bytesRemaining();
40
39
  const boxSizeRaw = iterator.getFourByteNumber();
41
40
  if (boxSizeRaw === 0) {
42
41
  return {
43
- type: 'complete',
44
42
  box: {
45
43
  type: 'void-box',
46
44
  boxSize: 0,
47
45
  },
48
- size: 4,
49
46
  skipTo: null,
50
47
  };
51
48
  }
@@ -53,64 +50,32 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
53
50
  if ((boxSizeRaw === 1 && iterator.bytesRemaining() < 12) ||
54
51
  iterator.bytesRemaining() < 4) {
55
52
  iterator.counter.decrement(iterator.counter.getOffset() - fileOffset);
56
- if (!allowIncompleteBoxes) {
57
- throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSizeRaw}. Incomplete boxes are not allowed.`);
58
- }
59
- return {
60
- type: 'incomplete',
61
- };
53
+ throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSizeRaw}. Incomplete boxes are not allowed.`);
62
54
  }
63
55
  const boxType = iterator.getByteString(4, false);
64
56
  const boxSize = boxSizeRaw === 1 ? iterator.getEightByteNumber() : boxSizeRaw;
57
+ log_1.Log.trace(state.logLevel, 'Found box', boxType, boxSize);
58
+ if (boxType === 'mdat') {
59
+ state.videoSection.setVideoSection({
60
+ size: boxSize - 8,
61
+ start: iterator.counter.getOffset(),
62
+ });
63
+ return {
64
+ box: null,
65
+ skipTo: null,
66
+ };
67
+ }
65
68
  if (bytesRemaining < boxSize) {
66
- if (boxType !== 'mdat') {
67
- iterator.counter.decrement(iterator.counter.getOffset() - fileOffset);
68
- if (!allowIncompleteBoxes) {
69
- throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSize}. Incomplete boxes are not allowed.`);
70
- }
71
- return {
72
- type: 'incomplete',
73
- };
74
- }
75
- // Check if the moov atom is at the end
76
- const shouldSkip = (0, may_skip_video_data_1.maySkipVideoData)({ state }) ||
77
- (!(0, get_tracks_1.getHasTracks)({ type: 'iso-base-media', boxes: parsedBoxes }, state) &&
78
- state.supportsContentRange);
79
- if (shouldSkip) {
80
- const skipTo = fileOffset + boxSize;
81
- const bytesToSkip = skipTo - iterator.counter.getOffset();
82
- // If there is a huge mdat chunk, we can skip it because we don't need it for the metadata
83
- if (bytesToSkip > 1000000) {
84
- return {
85
- type: 'complete',
86
- box: {
87
- type: 'mdat-box',
88
- boxSize,
89
- fileOffset,
90
- status: 'samples-skipped',
91
- },
92
- size: boxSize,
93
- skipTo: fileOffset + boxSize,
94
- };
95
- }
96
- }
97
- else {
98
- return (0, parse_mdat_partially_1.parseMdatPartially)({
99
- iterator,
100
- boxSize,
101
- fileOffset,
102
- parsedBoxes,
103
- state,
104
- signal,
105
- });
106
- }
69
+ returnToCheckpoint();
70
+ return {
71
+ box: null,
72
+ skipTo: null,
73
+ };
107
74
  }
108
75
  if (boxType === 'ftyp') {
109
76
  const box = (0, ftyp_1.parseFtyp)({ iterator, size: boxSize, offset: fileOffset });
110
77
  return {
111
- type: 'complete',
112
78
  box,
113
- size: boxSize,
114
79
  skipTo: null,
115
80
  };
116
81
  }
@@ -120,61 +85,46 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
120
85
  size: boxSize,
121
86
  });
122
87
  return {
123
- type: 'complete',
124
88
  box,
125
- size: boxSize,
126
89
  skipTo: null,
127
90
  };
128
91
  }
129
92
  if (boxType === 'mvhd') {
130
93
  const box = (0, mvhd_1.parseMvhd)({ iterator, offset: fileOffset, size: boxSize });
131
94
  return {
132
- type: 'complete',
133
95
  box,
134
- size: boxSize,
135
96
  skipTo: null,
136
97
  };
137
98
  }
138
99
  if (boxType === 'tkhd') {
139
100
  const box = (0, tkhd_1.parseTkhd)({ iterator, offset: fileOffset, size: boxSize });
140
101
  return {
141
- type: 'complete',
142
102
  box,
143
- size: boxSize,
144
103
  skipTo: null,
145
104
  };
146
105
  }
147
106
  if (boxType === 'trun') {
148
107
  const box = (0, trun_1.parseTrun)({ iterator, offset: fileOffset, size: boxSize });
149
108
  return {
150
- type: 'complete',
151
109
  box,
152
- size: boxSize,
153
110
  skipTo: null,
154
111
  };
155
112
  }
156
113
  if (boxType === 'tfdt') {
157
114
  const box = (0, tfdt_1.parseTfdt)({ iterator, size: boxSize, offset: fileOffset });
158
115
  return {
159
- type: 'complete',
160
116
  box,
161
- size: boxSize,
162
117
  skipTo: null,
163
118
  };
164
119
  }
165
120
  if (boxType === 'stsd') {
166
121
  const box = await (0, stsd_1.parseStsd)({
167
- iterator,
168
122
  offset: fileOffset,
169
123
  size: boxSize,
170
124
  state,
171
- signal,
172
- fields,
173
125
  });
174
126
  return {
175
- type: 'complete',
176
127
  box,
177
- size: boxSize,
178
128
  skipTo: null,
179
129
  };
180
130
  }
@@ -185,9 +135,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
185
135
  size: boxSize,
186
136
  });
187
137
  return {
188
- type: 'complete',
189
138
  box,
190
- size: boxSize,
191
139
  skipTo: null,
192
140
  };
193
141
  }
@@ -199,9 +147,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
199
147
  mode64Bit: boxType === 'co64',
200
148
  });
201
149
  return {
202
- type: 'complete',
203
150
  box,
204
- size: boxSize,
205
151
  skipTo: null,
206
152
  };
207
153
  }
@@ -212,9 +158,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
212
158
  size: boxSize,
213
159
  });
214
160
  return {
215
- type: 'complete',
216
161
  box,
217
- size: boxSize,
218
162
  skipTo: null,
219
163
  };
220
164
  }
@@ -225,9 +169,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
225
169
  boxSize,
226
170
  });
227
171
  return {
228
- type: 'complete',
229
172
  box,
230
- size: boxSize,
231
173
  skipTo: null,
232
174
  };
233
175
  }
@@ -238,9 +180,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
238
180
  size: boxSize,
239
181
  });
240
182
  return {
241
- type: 'complete',
242
183
  box,
243
- size: boxSize,
244
184
  skipTo: null,
245
185
  };
246
186
  }
@@ -251,43 +191,32 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
251
191
  size: boxSize,
252
192
  });
253
193
  return {
254
- type: 'complete',
255
194
  box,
256
- size: boxSize,
257
195
  skipTo: null,
258
196
  };
259
197
  }
260
198
  if (boxType === 'mebx') {
261
199
  const box = await (0, mebx_1.parseMebx)({
262
- iterator,
263
200
  offset: fileOffset,
264
201
  size: boxSize,
265
202
  state,
266
- signal,
267
- fields,
268
203
  });
269
204
  return {
270
- type: 'complete',
271
205
  box,
272
- size: boxSize,
273
206
  skipTo: null,
274
207
  };
275
208
  }
276
209
  if (boxType === 'hdlr') {
277
210
  const box = await (0, hdlr_1.parseHdlr)({ iterator, size: boxSize, offset: fileOffset });
278
211
  return {
279
- type: 'complete',
280
212
  box,
281
- size: boxSize,
282
213
  skipTo: null,
283
214
  };
284
215
  }
285
216
  if (boxType === 'keys') {
286
217
  const box = (0, keys_1.parseKeys)({ iterator, size: boxSize, offset: fileOffset });
287
218
  return {
288
- type: 'complete',
289
219
  box,
290
- size: boxSize,
291
220
  skipTo: null,
292
221
  };
293
222
  }
@@ -298,39 +227,34 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
298
227
  size: boxSize,
299
228
  });
300
229
  return {
301
- type: 'complete',
302
230
  box,
303
- size: boxSize,
304
231
  skipTo: null,
305
232
  };
306
233
  }
307
234
  if (boxType === 'moov') {
235
+ if (state.callbacks.tracks.hasAllTracks()) {
236
+ iterator.discard(boxSize - 8);
237
+ return {
238
+ box: null,
239
+ skipTo: null,
240
+ };
241
+ }
308
242
  const box = await (0, moov_1.parseMoov)({
309
- iterator,
310
243
  offset: fileOffset,
311
244
  size: boxSize,
312
245
  state,
313
- signal,
314
- logLevel,
315
- fields,
316
246
  });
317
247
  state.callbacks.tracks.setIsDone();
318
248
  return {
319
- type: 'complete',
320
249
  box,
321
- size: boxSize,
322
250
  skipTo: null,
323
251
  };
324
252
  }
325
253
  if (boxType === 'trak') {
326
254
  const box = await (0, trak_1.parseTrak)({
327
- data: iterator,
328
255
  size: boxSize,
329
256
  offsetAtStart: fileOffset,
330
257
  state,
331
- signal,
332
- logLevel,
333
- fields,
334
258
  });
335
259
  const transformedTrack = (0, make_track_1.makeBaseMediaTrack)(box);
336
260
  if (transformedTrack) {
@@ -341,9 +265,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
341
265
  });
342
266
  }
343
267
  return {
344
- type: 'complete',
345
268
  box,
346
- size: boxSize,
347
269
  skipTo: null,
348
270
  };
349
271
  }
@@ -354,9 +276,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
354
276
  fileOffset,
355
277
  });
356
278
  return {
357
- type: 'complete',
358
279
  box,
359
- size: boxSize,
360
280
  skipTo: null,
361
281
  };
362
282
  }
@@ -366,9 +286,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
366
286
  size: boxSize,
367
287
  });
368
288
  return {
369
- type: 'complete',
370
289
  box,
371
- size: boxSize,
372
290
  skipTo: null,
373
291
  };
374
292
  }
@@ -378,9 +296,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
378
296
  size: boxSize,
379
297
  });
380
298
  return {
381
- type: 'complete',
382
299
  box,
383
- size: boxSize,
384
300
  skipTo: null,
385
301
  };
386
302
  }
@@ -391,9 +307,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
391
307
  offset: fileOffset,
392
308
  });
393
309
  return {
394
- type: 'complete',
395
310
  box,
396
- size: boxSize,
397
311
  skipTo: null,
398
312
  };
399
313
  }
@@ -404,9 +318,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
404
318
  size: boxSize,
405
319
  });
406
320
  return {
407
- type: 'complete',
408
321
  box,
409
- size: boxSize,
410
322
  skipTo: null,
411
323
  };
412
324
  }
@@ -417,9 +329,7 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
417
329
  fileOffset,
418
330
  });
419
331
  return {
420
- type: 'complete',
421
332
  box,
422
- size: boxSize,
423
333
  skipTo: null,
424
334
  };
425
335
  }
@@ -430,52 +340,44 @@ const processBox = async ({ iterator, allowIncompleteBoxes, parsedBoxes, state,
430
340
  fileOffset,
431
341
  });
432
342
  return {
433
- type: 'complete',
434
343
  box,
435
- size: boxSize,
436
344
  skipTo: null,
437
345
  };
438
346
  }
439
- if (boxType === 'mdat') {
440
- const box = await (0, mdat_1.parseMdat)({
441
- data: iterator,
442
- size: boxSize,
443
- fileOffset,
444
- existingBoxes: parsedBoxes,
347
+ if (boxType === 'mdia' ||
348
+ boxType === 'minf' ||
349
+ boxType === 'stbl' ||
350
+ boxType === 'udta' ||
351
+ boxType === 'moof' ||
352
+ boxType === 'dims' ||
353
+ boxType === 'meta' ||
354
+ boxType === 'wave' ||
355
+ boxType === 'traf' ||
356
+ boxType === 'stsb') {
357
+ const children = await (0, get_children_1.getIsoBaseMediaChildren)({
445
358
  state,
446
- signal,
447
- maySkipSampleProcessing: state.supportsContentRange,
359
+ size: boxSize - 8,
448
360
  });
449
- if (box.type === 'partial-mdat-box') {
450
- return box;
451
- }
452
361
  return {
453
- type: 'complete',
454
- box,
455
- size: boxSize,
362
+ box: {
363
+ type: 'regular-box',
364
+ boxType,
365
+ boxSize,
366
+ children,
367
+ offset: fileOffset,
368
+ },
456
369
  skipTo: null,
457
370
  };
458
371
  }
459
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
460
- const children = await (0, get_children_1.getChildren)({
461
- boxType,
462
- iterator,
463
- bytesRemainingInBox,
464
- state,
465
- signal,
466
- logLevel,
467
- fields,
468
- });
372
+ iterator.discard(boxSize - 8);
469
373
  return {
470
- type: 'complete',
471
374
  box: {
472
375
  type: 'regular-box',
473
376
  boxType,
474
377
  boxSize,
475
- children,
378
+ children: [],
476
379
  offset: fileOffset,
477
380
  },
478
- size: boxSize,
479
381
  skipTo: null,
480
382
  };
481
383
  };
@@ -1,5 +1,3 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { Options, ParseMediaFields } from '../../../options';
3
1
  import type { AnySegment } from '../../../parse-result';
4
2
  import type { ParserState } from '../../../state/parser-state';
5
3
  import type { BaseBox } from '../base-type';
@@ -9,11 +7,8 @@ export interface MebxBox extends BaseBox {
9
7
  format: string;
10
8
  children: AnySegment[];
11
9
  }
12
- export declare const parseMebx: ({ iterator, offset, size, state, signal, fields, }: {
13
- iterator: BufferIterator;
10
+ export declare const parseMebx: ({ offset, size, state, }: {
14
11
  offset: number;
15
12
  size: number;
16
13
  state: ParserState;
17
- signal: AbortSignal | null;
18
- fields: Options<ParseMediaFields>;
19
14
  }) => Promise<MebxBox>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMebx = void 0;
4
+ const get_children_1 = require("../get-children");
5
+ const parseMebx = async ({ offset, size, state, }) => {
6
+ // reserved, 6 bit
7
+ state.iterator.discard(6);
8
+ const dataReferenceIndex = state.iterator.getUint16();
9
+ const children = await (0, get_children_1.getIsoBaseMediaChildren)({
10
+ state,
11
+ size: size - 8,
12
+ });
13
+ return {
14
+ type: 'mebx-box',
15
+ boxSize: size,
16
+ offset,
17
+ dataReferenceIndex,
18
+ format: 'mebx',
19
+ children,
20
+ };
21
+ };
22
+ exports.parseMebx = parseMebx;
@@ -1,8 +1,6 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { LogLevel } from '../../../log';
3
- import type { Options, ParseMediaFields } from '../../../options';
4
- import type { AnySegment, IsoBaseMediaBox } from '../../../parse-result';
1
+ import type { AnySegment } from '../../../parse-result';
5
2
  import type { ParserState } from '../../../state/parser-state';
3
+ import type { IsoBaseMediaBox } from '../base-media-box';
6
4
  type SampleBase = {
7
5
  format: string;
8
6
  offset: number;
@@ -47,22 +45,14 @@ type UnknownSample = SampleBase & {
47
45
  type: 'unknown';
48
46
  };
49
47
  export type Sample = AudioSample | VideoSample | UnknownSample;
50
- type SampleAndNext = {
48
+ type FormatBoxAndNext = {
51
49
  sample: Sample | null;
52
50
  };
53
- export declare const processSample: ({ iterator, state: options, signal, logLevel, fields, }: {
54
- iterator: BufferIterator;
51
+ export declare const processIsoFormatBox: ({ state, }: {
55
52
  state: ParserState;
56
- signal: AbortSignal | null;
57
- logLevel: LogLevel;
58
- fields: Options<ParseMediaFields>;
59
- }) => Promise<SampleAndNext>;
60
- export declare const parseSamples: ({ iterator, maxBytes, state, signal, logLevel, fields, }: {
61
- iterator: BufferIterator;
53
+ }) => Promise<FormatBoxAndNext>;
54
+ export declare const parseIsoFormatBoxes: ({ maxBytes, state, }: {
62
55
  maxBytes: number;
63
56
  state: ParserState;
64
- signal: AbortSignal | null;
65
- logLevel: LogLevel;
66
- fields: Options<ParseMediaFields>;
67
57
  }) => Promise<Sample[]>;
68
58
  export {};