@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
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTracks = exports.getTracksFromIsoBaseMedia = exports.getHasTracks = exports.isoBaseMediaHasTracks = exports.getNumberOfTracks = void 0;
4
- const make_track_1 = require("./boxes/iso-base-media/make-track");
5
- const traversal_1 = require("./boxes/iso-base-media/traversal");
6
- const get_tracks_from_mp3_1 = require("./boxes/mp3/get-tracks-from-mp3");
7
- const get_tracks_from_avi_1 = require("./boxes/riff/get-tracks-from-avi");
8
- const get_tracks_1 = require("./boxes/transport-stream/get-tracks");
9
- const get_ready_tracks_1 = require("./boxes/webm/get-ready-tracks");
10
- const traversal_2 = require("./boxes/webm/traversal");
4
+ const make_track_1 = require("./containers/iso-base-media/make-track");
5
+ const traversal_1 = require("./containers/iso-base-media/traversal");
6
+ const get_tracks_from_mp3_1 = require("./containers/mp3/get-tracks-from-mp3");
7
+ const get_tracks_from_avi_1 = require("./containers/riff/get-tracks-from-avi");
8
+ const get_tracks_1 = require("./containers/transport-stream/get-tracks");
9
+ const get_ready_tracks_1 = require("./containers/webm/get-ready-tracks");
10
+ const traversal_2 = require("./containers/webm/traversal");
11
11
  const getNumberOfTracks = (moovBox) => {
12
12
  const mvHdBox = (0, traversal_1.getMvhdBox)(moovBox);
13
13
  if (!mvHdBox) {
@@ -26,7 +26,8 @@ const isoBaseMediaHasTracks = (structure) => {
26
26
  return tracks.length === numberOfTracks;
27
27
  };
28
28
  exports.isoBaseMediaHasTracks = isoBaseMediaHasTracks;
29
- const getHasTracks = (structure, state) => {
29
+ const getHasTracks = (state) => {
30
+ const structure = state.structure.getStructure();
30
31
  if (structure.type === 'matroska') {
31
32
  const mainSegment = (0, traversal_2.getMainSegment)(structure.boxes);
32
33
  if (!mainSegment) {
@@ -38,14 +39,23 @@ const getHasTracks = (structure, state) => {
38
39
  return (0, exports.isoBaseMediaHasTracks)(structure);
39
40
  }
40
41
  if (structure.type === 'riff') {
41
- return (0, get_tracks_from_avi_1.hasAllTracksFromAvi)(structure, state);
42
+ return (0, get_tracks_from_avi_1.hasAllTracksFromAvi)(state);
42
43
  }
43
44
  if (structure.type === 'transport-stream') {
44
- return (0, get_tracks_1.hasAllTracksFromTransportStream)(structure, state);
45
+ return (0, get_tracks_1.hasAllTracksFromTransportStream)(state);
45
46
  }
46
47
  if (structure.type === 'mp3') {
47
48
  return state.callbacks.tracks.getTracks().length > 0;
48
49
  }
50
+ if (structure.type === 'wav') {
51
+ return state.callbacks.tracks.hasAllTracks();
52
+ }
53
+ if (structure.type === 'aac') {
54
+ return state.callbacks.tracks.hasAllTracks();
55
+ }
56
+ if (structure.type === 'flac') {
57
+ return state.callbacks.tracks.hasAllTracks();
58
+ }
49
59
  throw new Error('Unknown container ' + structure);
50
60
  };
51
61
  exports.getHasTracks = getHasTracks;
@@ -110,22 +120,26 @@ const getTracksFromIsoBaseMedia = (segments) => {
110
120
  };
111
121
  };
112
122
  exports.getTracksFromIsoBaseMedia = getTracksFromIsoBaseMedia;
113
- const getTracks = (segments, state) => {
114
- if (segments.type === 'matroska') {
115
- return getTracksFromMa(segments.boxes, state);
123
+ const getTracks = (state) => {
124
+ const structure = state.structure.getStructure();
125
+ if (structure.type === 'matroska') {
126
+ return getTracksFromMa(structure.boxes, state);
116
127
  }
117
- if (segments.type === 'iso-base-media') {
118
- return (0, exports.getTracksFromIsoBaseMedia)(segments.boxes);
128
+ if (structure.type === 'iso-base-media') {
129
+ return (0, exports.getTracksFromIsoBaseMedia)(structure.boxes);
119
130
  }
120
- if (segments.type === 'riff') {
121
- return (0, get_tracks_from_avi_1.getTracksFromAvi)(segments, state);
131
+ if (structure.type === 'riff') {
132
+ return (0, get_tracks_from_avi_1.getTracksFromAvi)(structure, state);
122
133
  }
123
- if (segments.type === 'transport-stream') {
124
- return (0, get_tracks_1.getTracksFromTransportStream)(segments, state);
134
+ if (structure.type === 'transport-stream') {
135
+ return (0, get_tracks_1.getTracksFromTransportStream)(state);
125
136
  }
126
- if (segments.type === 'mp3') {
127
- return (0, get_tracks_from_mp3_1.getTracksFromMp3)(state);
137
+ if (structure.type === 'mp3' ||
138
+ structure.type === 'wav' ||
139
+ structure.type === 'flac' ||
140
+ structure.type === 'aac') {
141
+ return (0, get_tracks_from_mp3_1.getTracksFromMp3OrWavOrAac)(state);
128
142
  }
129
- throw new Error(`Unknown container${segments}`);
143
+ throw new Error(`Unknown container${structure}`);
130
144
  };
131
145
  exports.getTracks = getTracks;
@@ -1,9 +1,8 @@
1
- import type { TrakBox } from './boxes/iso-base-media/trak/trak';
1
+ import type { TrakBox } from './containers/iso-base-media/trak/trak';
2
2
  import { type MediaParserVideoCodec, type VideoTrackColorParams } from './get-tracks';
3
- import type { Structure } from './parse-result';
4
3
  import type { ParserState } from './state/parser-state';
5
- export declare const getVideoCodec: (boxes: Structure, state: ParserState) => MediaParserVideoCodec | null;
6
- export declare const hasVideoCodec: (boxes: Structure, state: ParserState) => boolean;
4
+ export declare const getVideoCodec: (state: ParserState) => MediaParserVideoCodec | null;
5
+ export declare const hasVideoCodec: (state: ParserState) => boolean;
7
6
  export declare const getVideoPrivateData: (trakBox: TrakBox) => Uint8Array | null;
8
7
  export declare const getIsoBmColrConfig: (trakBox: TrakBox) => VideoTrackColorParams | null;
9
8
  export declare const getVideoCodecString: (trakBox: TrakBox) => string | null;
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getVideoCodecString = exports.getIsoBmColrConfig = exports.getVideoPrivateData = exports.hasVideoCodec = exports.getVideoCodec = void 0;
4
- const color_1 = require("./boxes/avc/color");
5
- const av1_codec_private_1 = require("./boxes/webm/av1-codec-private");
4
+ const color_1 = require("./containers/avc/color");
5
+ const av1_codec_private_1 = require("./containers/webm/av1-codec-private");
6
6
  const get_sample_aspect_ratio_1 = require("./get-sample-aspect-ratio");
7
7
  const get_tracks_1 = require("./get-tracks");
8
- const getVideoCodec = (boxes, state) => {
8
+ const getVideoCodec = (state) => {
9
9
  var _a, _b;
10
- const track = (0, get_tracks_1.getTracks)(boxes, state);
10
+ const track = (0, get_tracks_1.getTracks)(state);
11
11
  return (_b = (_a = track.videoTracks[0]) === null || _a === void 0 ? void 0 : _a.codecWithoutConfig) !== null && _b !== void 0 ? _b : null;
12
12
  };
13
13
  exports.getVideoCodec = getVideoCodec;
14
- const hasVideoCodec = (boxes, state) => {
15
- return (0, get_tracks_1.getHasTracks)(boxes, state);
14
+ const hasVideoCodec = (state) => {
15
+ return (0, get_tracks_1.getHasTracks)(state);
16
16
  };
17
17
  exports.hasVideoCodec = hasVideoCodec;
18
18
  const getVideoPrivateData = (trakBox) => {
@@ -8,10 +8,12 @@ const get_duration_1 = require("./get-duration");
8
8
  const get_fps_1 = require("./get-fps");
9
9
  const get_is_hdr_1 = require("./get-is-hdr");
10
10
  const get_keyframes_1 = require("./get-keyframes");
11
+ const get_number_of_audio_channels_1 = require("./get-number-of-audio-channels");
12
+ const get_sample_rate_1 = require("./get-sample-rate");
11
13
  const get_tracks_1 = require("./get-tracks");
12
14
  const get_video_codec_1 = require("./get-video-codec");
13
- const may_skip_video_data_1 = require("./may-skip-video-data/may-skip-video-data");
14
15
  const get_metadata_1 = require("./metadata/get-metadata");
16
+ const may_skip_video_data_1 = require("./state/may-skip-video-data");
15
17
  const getAvailableInfo = ({ fieldsToFetch, state, }) => {
16
18
  const keys = Object.entries(fieldsToFetch).filter(([, value]) => value);
17
19
  const structure = state.structure.getStructureOrNull();
@@ -21,15 +23,15 @@ const getAvailableInfo = ({ fieldsToFetch, state, }) => {
21
23
  return false;
22
24
  }
23
25
  if (key === 'durationInSeconds') {
24
- return Boolean(structure && (0, get_duration_1.hasDuration)(structure, state));
26
+ return Boolean(structure && (0, get_duration_1.hasDuration)(state));
25
27
  }
26
28
  if (key === 'slowDurationInSeconds') {
27
- return Boolean(structure && (0, get_duration_1.hasSlowDuration)(structure, state));
29
+ return Boolean(structure && (0, get_duration_1.hasSlowDuration)(state));
28
30
  }
29
31
  if (key === 'dimensions' ||
30
32
  key === 'rotation' ||
31
33
  key === 'unrotatedDimensions') {
32
- return Boolean(structure && (0, get_dimensions_1.hasDimensions)(structure, state));
34
+ return Boolean(structure && (0, get_dimensions_1.hasDimensions)(state));
33
35
  }
34
36
  if (key === 'fps') {
35
37
  return Boolean(structure && (0, get_fps_1.hasFps)(structure));
@@ -39,19 +41,19 @@ const getAvailableInfo = ({ fieldsToFetch, state, }) => {
39
41
  return Boolean(structure && (0, get_fps_1.hasFpsSuitedForSlowFps)(structure));
40
42
  }
41
43
  if (key === 'isHdr') {
42
- return Boolean(structure && (0, get_is_hdr_1.hasHdr)(structure, state));
44
+ return Boolean(structure && (0, get_is_hdr_1.hasHdr)(state));
43
45
  }
44
46
  if (key === 'videoCodec') {
45
- return Boolean(structure && (0, get_video_codec_1.hasVideoCodec)(structure, state));
47
+ return Boolean(structure && (0, get_video_codec_1.hasVideoCodec)(state));
46
48
  }
47
49
  if (key === 'audioCodec') {
48
- return Boolean(structure && (0, get_audio_codec_1.hasAudioCodec)(structure, state));
50
+ return Boolean(structure && (0, get_audio_codec_1.hasAudioCodec)(state));
49
51
  }
50
52
  if (key === 'tracks') {
51
- return Boolean(structure && (0, get_tracks_1.getHasTracks)(structure, state));
53
+ return Boolean(structure && (0, get_tracks_1.getHasTracks)(state));
52
54
  }
53
55
  if (key === 'keyframes') {
54
- return Boolean(structure && (0, get_keyframes_1.hasKeyframes)(structure, state));
56
+ return Boolean(structure && (0, get_keyframes_1.hasKeyframes)(state));
55
57
  }
56
58
  if (key === 'internalStats') {
57
59
  return true;
@@ -71,11 +73,17 @@ const getAvailableInfo = ({ fieldsToFetch, state, }) => {
71
73
  if (key === 'metadata' || key === 'location' || key === 'images') {
72
74
  return Boolean(structure && (0, get_metadata_1.hasMetadata)(structure));
73
75
  }
74
- if (key === 'slowKeyframes') {
76
+ if (key === 'slowKeyframes' ||
77
+ key === 'slowVideoBitrate' ||
78
+ key === 'slowAudioBitrate' ||
79
+ key === 'slowNumberOfFrames') {
75
80
  return false;
76
81
  }
77
- if (key === 'slowNumberOfFrames') {
78
- return false;
82
+ if (key === 'numberOfAudioChannels') {
83
+ return (0, get_number_of_audio_channels_1.hasNumberOfAudioChannels)(state);
84
+ }
85
+ if (key === 'sampleRate') {
86
+ return (0, get_sample_rate_1.hasSampleRate)(state);
79
87
  }
80
88
  throw new Error(`Unknown key: ${key}`);
81
89
  });
@@ -92,8 +100,11 @@ const hasAllInfo = ({ fields, state, }) => {
92
100
  fieldsToFetch: fields !== null && fields !== void 0 ? fields : {},
93
101
  state,
94
102
  });
95
- return (Object.values(availableInfo).every(Boolean) &&
96
- ((0, may_skip_video_data_1.maySkipVideoData)({ state }) ||
97
- state.callbacks.canSkipTracksState.canSkipTracks()));
103
+ if (!Object.values(availableInfo).every(Boolean)) {
104
+ return false;
105
+ }
106
+ const canSkipSamples = (0, may_skip_video_data_1.maySkipVideoData)({ state }) ||
107
+ state.callbacks.canSkipTracksState.canSkipTracks();
108
+ return canSkipSamples;
98
109
  };
99
110
  exports.hasAllInfo = hasAllInfo;
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { LogLevel } from './log';
2
- export { MatroskaSegment } from './boxes/webm/segments';
3
- export { MatroskaElement } from './boxes/webm/segments/all-segments';
2
+ export { MatroskaSegment } from './containers/webm/segments';
3
+ export { MatroskaElement } from './containers/webm/segments/all-segments';
4
4
  export { IsAGifError, IsAnImageError, IsAnUnsupportedAudioTypeError, IsAnUnsupportedFileTypeError, IsAPdfError, } from './errors';
5
5
  export type { SamplePosition } from './get-sample-positions';
6
6
  export { MetadataEntry } from './metadata/get-metadata';
7
7
  export { MediaParserKeyframe } from './options';
8
8
  export type { MediaParserEmbeddedImage } from './state/images';
9
9
  export { AudioTrack, MediaParserAudioCodec, MediaParserVideoCodec, OtherTrack, Track, VideoTrack, VideoTrackColorParams, } from './get-tracks';
10
- export type { Options, ParseMediaContainer, ParseMediaDynamicOptions, ParseMediaFields, ParseMediaOnProgress, ParseMediaOptions, ParseMediaProgress, ParseMediaResult, TracksField, } from './options';
10
+ export type { MediaParserContainer, Options, ParseMediaCallbacks, ParseMediaFields, ParseMediaOnProgress, ParseMediaOptions, ParseMediaProgress, ParseMediaResult, TracksField, } from './options';
11
11
  export { parseMedia } from './parse-media';
12
12
  export { AudioOrVideoSample, OnAudioSample, OnAudioTrack, OnVideoSample, OnVideoTrack, } from './webcodec-sample-types';
13
13
  export { Dimensions } from './get-dimensions';
@@ -655,20 +655,19 @@ export declare const MediaParserInternals: {
655
655
  iterator: import("./buffer-iterator").BufferIterator;
656
656
  offset: number;
657
657
  size: number;
658
- }) => import("./boxes/iso-base-media/tkhd").TkhdBox;
658
+ }) => import("./containers/iso-base-media/tkhd").TkhdBox;
659
659
  getArrayBufferIterator: (initialData: Uint8Array, maxBytes: number | null) => {
660
660
  startReadingBits: () => void;
661
661
  stopReadingBits: () => void;
662
- skipTo: (offset: number, reset: boolean) => void;
662
+ skipTo: (offset: number) => void;
663
663
  addData: (newData: Uint8Array) => void;
664
664
  counter: import("./buffer-iterator").OffsetCounter;
665
665
  peekB: (length: number) => void;
666
666
  peekD: (length: number) => void;
667
667
  getBits: (bits: number) => number;
668
- byteLength: () => number;
669
668
  bytesRemaining: () => number;
670
669
  leb128: () => number;
671
- removeBytesRead: () => void;
670
+ removeBytesRead: (force: boolean) => number | undefined;
672
671
  discard: (length: number) => void;
673
672
  getEightByteNumber: (littleEndian?: boolean) => number;
674
673
  getFourByteNumber: () => number;
@@ -705,8 +704,6 @@ export declare const MediaParserInternals: {
705
704
  getInt32Le: () => number;
706
705
  getInt32: () => number;
707
706
  destroy: () => void;
708
- disallowDiscard: () => void;
709
- allowDiscard: () => void;
710
707
  startBox: (size: number) => {
711
708
  discardRest: () => void;
712
709
  expectNoMoreBytes: () => void;
@@ -715,25 +712,24 @@ export declare const MediaParserInternals: {
715
712
  startCheckpoint: () => {
716
713
  returnToCheckpoint: () => void;
717
714
  };
715
+ getFlacCodecNumber: () => number;
718
716
  };
719
- parseStsd: ({ iterator, offset, size, state, signal, fields, }: {
720
- iterator: import("./buffer-iterator").BufferIterator;
717
+ parseStsd: ({ offset, size, state, }: {
721
718
  offset: number;
722
719
  size: number;
723
720
  state: import("./state/parser-state").ParserState;
724
- signal: AbortSignal | null;
725
- fields: import("./options").Options<import("./options").ParseMediaFields>;
726
- }) => Promise<import("./boxes/iso-base-media/stsd/stsd").StsdBox>;
727
- makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, signal, getIterator, fields, onAudioTrack, onVideoTrack, supportsContentRange, contentLength, }: {
721
+ }) => Promise<import("./containers/iso-base-media/stsd/stsd").StsdBox>;
722
+ makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHandlers, signal, iterator, fields, onAudioTrack, onVideoTrack, supportsContentRange, contentLength, logLevel, }: {
728
723
  hasAudioTrackHandlers: boolean;
729
724
  hasVideoTrackHandlers: boolean;
730
725
  signal: AbortSignal | undefined;
731
- getIterator: () => import("./buffer-iterator").BufferIterator | null;
726
+ iterator: import("./buffer-iterator").BufferIterator;
732
727
  fields: import("./options").Options<import("./options").ParseMediaFields>;
733
728
  supportsContentRange: boolean;
734
729
  onAudioTrack: import("./webcodec-sample-types").OnAudioTrack | null;
735
730
  onVideoTrack: import("./webcodec-sample-types").OnVideoTrack | null;
736
731
  contentLength: number | null;
732
+ logLevel: LogLevel;
737
733
  }) => {
738
734
  riff: {
739
735
  getAvcProfile: () => import("./state/parser-state").SpsAndPps | null;
@@ -742,6 +738,57 @@ export declare const MediaParserInternals: {
742
738
  getNextTrackIndex: () => number;
743
739
  incrementNextTrackIndex: () => void;
744
740
  };
741
+ transportStream: {
742
+ nextPesHeaderStore: {
743
+ setNextPesHeader: (pesHeader: import("./containers/transport-stream/parse-pes").PacketPes) => void;
744
+ getNextPesHeader: () => import("./containers/transport-stream/parse-pes").PacketPes;
745
+ };
746
+ streamBuffers: Map<number, import("./containers/transport-stream/process-stream-buffers").TransportStreamPacketBuffer>;
747
+ };
748
+ webm: {
749
+ onTrackEntrySegment: import("./containers/webm/segments").OnTrackEntrySegment;
750
+ getTrackInfoByNumber: (id: number) => import("./containers/webm/segments/track-entry").TrackInfo;
751
+ setTimestampOffset: (byteOffset: number, timestamp: number) => void;
752
+ getTimestampOffsetForByteOffset: (byteOffset: number) => number | undefined;
753
+ timescale: null;
754
+ getTimescale: () => number;
755
+ setTimescale: (newTimescale: number) => void;
756
+ addSegment: (seg: Omit<import("./state/webm").SegmentSection, "index">) => void;
757
+ addCluster: (cluster: import("./state/webm").ClusterSection) => void;
758
+ isInsideSegment: (iterator: import("./buffer-iterator").BufferIterator) => import("./state/webm").SegmentSection | null;
759
+ isInsideCluster: (iterator: import("./buffer-iterator").BufferIterator) => import("./state/webm").ClusterSection | null;
760
+ };
761
+ iso: {
762
+ getShouldReturnToVideoSectionAfterEnd: () => boolean;
763
+ setShouldReturnToVideoSectionAfterEnd: (value: boolean) => void;
764
+ flatSamples: {
765
+ getSamples: () => import("./state/iso-base-media/cached-sample-positions").FlatSample[] | null;
766
+ setSamples: (samples: import("./state/iso-base-media/cached-sample-positions").FlatSample[]) => void;
767
+ };
768
+ };
769
+ mp3Info: {
770
+ getMp3Info: () => import("./state/mp3").Mp3Info | null;
771
+ setMp3Info: (info: import("./state/mp3").Mp3Info) => void;
772
+ };
773
+ aac: {
774
+ addSample: ({ offset, size }: {
775
+ offset: number;
776
+ size: number;
777
+ }) => {
778
+ offset: number;
779
+ index: number;
780
+ size: number;
781
+ };
782
+ getSamples: () => {
783
+ offset: number;
784
+ index: number;
785
+ size: number;
786
+ }[];
787
+ };
788
+ flac: {
789
+ setBlockingBitStrategy: (strategy: number) => void;
790
+ getBlockingBitStrategy: () => number | undefined;
791
+ };
745
792
  callbacks: {
746
793
  registerVideoSampleCallback: (id: number, callback: import("./webcodec-sample-types").OnVideoSample | null) => Promise<void>;
747
794
  onAudioSample: (trackId: number, audioSample: import("./webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
@@ -756,10 +803,12 @@ export declare const MediaParserInternals: {
756
803
  setIsDone: () => void;
757
804
  addTrack: (track: import("./get-tracks").Track) => void;
758
805
  getTracks: () => import("./get-tracks").Track[];
759
- ensureHasTracksAtEnd: () => void;
806
+ ensureHasTracksAtEnd: (fields: import("./options").Options<import("./options").ParseMediaFields>) => void;
760
807
  };
761
808
  audioSampleCallbacks: Record<number, import("./webcodec-sample-types").OnAudioSample>;
762
809
  videoSampleCallbacks: Record<number, import("./webcodec-sample-types").OnVideoSample>;
810
+ hasAudioTrackHandlers: boolean;
811
+ hasVideoTrackHandlers: boolean;
763
812
  };
764
813
  getInternalStats: () => import("./state/parser-state").InternalStats;
765
814
  getSkipBytes: () => number;
@@ -776,15 +825,6 @@ export declare const MediaParserInternals: {
776
825
  onAudioTrack: import("./webcodec-sample-types").OnAudioTrack | null;
777
826
  onVideoTrack: import("./webcodec-sample-types").OnVideoTrack | null;
778
827
  supportsContentRange: boolean;
779
- webm: {
780
- onTrackEntrySegment: import("./boxes/webm/segments").OnTrackEntrySegment;
781
- getTrackInfoByNumber: (id: number) => import("./boxes/webm/segments/track-entry").TrackInfo;
782
- setTimestampOffset: (byteOffset: number, timestamp: number) => void;
783
- getTimestampOffsetForByteOffset: (byteOffset: number) => number | undefined;
784
- timescale: null;
785
- getTimescale: () => number;
786
- setTimescale: (newTimescale: number) => void;
787
- };
788
828
  emittedFields: import("./options").AllOptions<import("./options").ParseMediaFields>;
789
829
  fields: Partial<import("./options").AllOptions<import("./options").ParseMediaFields>>;
790
830
  slowDurationAndFps: {
@@ -793,39 +833,103 @@ export declare const MediaParserInternals: {
793
833
  getSlowDurationInSeconds: () => number;
794
834
  getFps: () => number;
795
835
  getSlowNumberOfFrames: () => number;
796
- };
797
- mp3Info: {
798
- getMp3Info: () => import("./state/mp3").Mp3Info | null;
799
- setMp3Info: (info: import("./state/mp3").Mp3Info) => void;
836
+ getAudioBitrate: () => number | null;
837
+ getVideoBitrate: () => number | null;
800
838
  };
801
839
  contentLength: number | null;
802
840
  images: {
803
841
  images: import("./state/images").MediaParserEmbeddedImage[];
804
842
  addImage: (image: import("./state/images").MediaParserEmbeddedImage) => void;
805
843
  };
844
+ videoSection: {
845
+ setVideoSection: (section: {
846
+ start: number;
847
+ size: number;
848
+ }) => void;
849
+ getVideoSection: () => {
850
+ start: number;
851
+ size: number;
852
+ };
853
+ isInVideoSectionState: (iterator: import("./buffer-iterator").BufferIterator) => "no-section-defined" | "in-section" | "outside-section";
854
+ };
855
+ logLevel: "trace" | "verbose" | "info" | "warn" | "error";
856
+ iterator: {
857
+ startReadingBits: () => void;
858
+ stopReadingBits: () => void;
859
+ skipTo: (offset: number) => void;
860
+ addData: (newData: Uint8Array) => void;
861
+ counter: import("./buffer-iterator").OffsetCounter;
862
+ peekB: (length: number) => void;
863
+ peekD: (length: number) => void;
864
+ getBits: (bits: number) => number;
865
+ bytesRemaining: () => number;
866
+ leb128: () => number;
867
+ removeBytesRead: (force: boolean) => number | undefined;
868
+ discard: (length: number) => void;
869
+ getEightByteNumber: (littleEndian?: boolean) => number;
870
+ getFourByteNumber: () => number;
871
+ getSlice: (amount: number) => Uint8Array;
872
+ getAtom: () => string;
873
+ detectFileType: () => import("./file-types/detect-file-type").FileType;
874
+ getPaddedFourByteNumber: () => number;
875
+ getMatroskaSegmentId: () => string | null;
876
+ getVint: () => number | null;
877
+ getUint8: () => number;
878
+ getEBML: () => number;
879
+ getInt8: () => number;
880
+ getUint16: () => number;
881
+ getUint16Le: () => number;
882
+ getUint24: () => number;
883
+ getInt24: () => number;
884
+ getInt16: () => number;
885
+ getUint32: () => number;
886
+ getUint64: (littleEndian?: boolean) => bigint;
887
+ getInt64: (littleEndian?: boolean) => bigint;
888
+ getFixedPointUnsigned1616Number: () => number;
889
+ getFixedPointSigned1616Number: () => number;
890
+ getFixedPointSigned230Number: () => number;
891
+ getPascalString: () => number[];
892
+ getUint(length: number): number;
893
+ getByteString(length: number, trimTrailingZeroes: boolean): string;
894
+ planBytes: (size: number) => {
895
+ discardRest: () => Uint8Array;
896
+ };
897
+ getFloat64: () => number;
898
+ readUntilNullTerminator: () => string;
899
+ getFloat32: () => number;
900
+ getUint32Le: () => number;
901
+ getInt32Le: () => number;
902
+ getInt32: () => number;
903
+ destroy: () => void;
904
+ startBox: (size: number) => {
905
+ discardRest: () => void;
906
+ expectNoMoreBytes: () => void;
907
+ };
908
+ readExpGolomb: () => number;
909
+ startCheckpoint: () => {
910
+ returnToCheckpoint: () => void;
911
+ };
912
+ getFlacCodecNumber: () => number;
913
+ };
806
914
  };
807
- processSample: ({ iterator, state: options, signal, logLevel, fields, }: {
808
- iterator: import("./buffer-iterator").BufferIterator;
915
+ processSample: ({ state, }: {
809
916
  state: import("./state/parser-state").ParserState;
810
- signal: AbortSignal | null;
811
- logLevel: LogLevel;
812
- fields: import("./options").Options<import("./options").ParseMediaFields>;
813
917
  }) => Promise<{
814
- sample: import("./boxes/iso-base-media/stsd/samples").Sample | null;
918
+ sample: import("./containers/iso-base-media/stsd/samples").Sample | null;
815
919
  }>;
816
920
  parseFtyp: ({ iterator, size, offset, }: {
817
921
  iterator: import("./buffer-iterator").BufferIterator;
818
922
  size: number;
819
923
  offset: number;
820
- }) => import("./boxes/iso-base-media/ftyp").FtypBox;
821
- parseEbml: (iterator: import("./buffer-iterator").BufferIterator, state: import("./state/parser-state").ParserState) => Promise<import("./boxes/webm/parse-ebml").Prettify<import("./boxes/webm/segments/all-segments").PossibleEbml>>;
924
+ }) => import("./containers/iso-base-media/ftyp").FtypBox;
925
+ parseEbml: (state: import("./state/parser-state").ParserState) => Promise<import("./containers/webm/parse-ebml").Prettify<import("./containers/webm/segments/all-segments").PossibleEbml>>;
822
926
  parseMvhd: ({ iterator, offset, size, }: {
823
927
  iterator: import("./buffer-iterator").BufferIterator;
824
928
  offset: number;
825
929
  size: number;
826
- }) => import("./boxes/iso-base-media/mvhd").MvhdBox;
930
+ }) => import("./containers/iso-base-media/mvhd").MvhdBox;
827
931
  };
828
- export type { Prettify } from './boxes/webm/parse-ebml';
829
- export type { Ebml, EbmlValue, FloatWithSize, MainSegment, PossibleEbml, TrackEntry, UintWithSize, } from './boxes/webm/segments/all-segments';
932
+ export type { Prettify } from './containers/webm/parse-ebml';
933
+ export type { Ebml, EbmlValue, FloatWithSize, MainSegment, PossibleEbml, TrackEntry, UintWithSize, } from './containers/webm/segments/all-segments';
830
934
  export type { LogLevel };
831
935
  export { VERSION } from './version';
package/dist/index.js CHANGED
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = exports.MediaParserInternals = exports.parseMedia = exports.IsAPdfError = exports.IsAnUnsupportedFileTypeError = exports.IsAnUnsupportedAudioTypeError = exports.IsAnImageError = exports.IsAGifError = void 0;
4
4
  const aac_codecprivate_1 = require("./aac-codecprivate");
5
- const ftyp_1 = require("./boxes/iso-base-media/ftyp");
6
- const mvhd_1 = require("./boxes/iso-base-media/mvhd");
7
- const samples_1 = require("./boxes/iso-base-media/stsd/samples");
8
- const stsd_1 = require("./boxes/iso-base-media/stsd/stsd");
9
- const tkhd_1 = require("./boxes/iso-base-media/tkhd");
10
- const parse_ebml_1 = require("./boxes/webm/parse-ebml");
11
- const all_segments_1 = require("./boxes/webm/segments/all-segments");
12
5
  const buffer_iterator_1 = require("./buffer-iterator");
6
+ const ftyp_1 = require("./containers/iso-base-media/ftyp");
7
+ const mvhd_1 = require("./containers/iso-base-media/mvhd");
8
+ const samples_1 = require("./containers/iso-base-media/stsd/samples");
9
+ const stsd_1 = require("./containers/iso-base-media/stsd/stsd");
10
+ const tkhd_1 = require("./containers/iso-base-media/tkhd");
11
+ const parse_ebml_1 = require("./containers/webm/parse-ebml");
12
+ const all_segments_1 = require("./containers/webm/segments/all-segments");
13
13
  const log_1 = require("./log");
14
14
  const parser_state_1 = require("./state/parser-state");
15
15
  var errors_1 = require("./errors");
@@ -29,7 +29,7 @@ exports.MediaParserInternals = {
29
29
  getArrayBufferIterator: buffer_iterator_1.getArrayBufferIterator,
30
30
  parseStsd: stsd_1.parseStsd,
31
31
  makeParserState: parser_state_1.makeParserState,
32
- processSample: samples_1.processSample,
32
+ processSample: samples_1.processIsoFormatBox,
33
33
  parseFtyp: ftyp_1.parseFtyp,
34
34
  parseEbml: parse_ebml_1.parseEbml,
35
35
  parseMvhd: mvhd_1.parseMvhd,
@@ -0,0 +1,7 @@
1
+ import type { ParserState } from './state/parser-state';
2
+ export declare const initVideo: ({ state, mimeType, name, contentLength, }: {
3
+ state: ParserState;
4
+ mimeType: string | null;
5
+ name: string | null;
6
+ contentLength: number | null;
7
+ }) => Promise<never> | undefined;