@remotion/media-parser 4.0.277 → 4.0.279

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 (365) hide show
  1. package/dist/aac-codecprivate.js +13 -6
  2. package/dist/add-avc-profile-to-track.js +9 -5
  3. package/dist/check-if-done.d.ts +2 -0
  4. package/dist/check-if-done.js +34 -0
  5. package/dist/combine-uint8-arrays.js +5 -1
  6. package/dist/containers/aac/parse-aac.js +27 -18
  7. package/dist/containers/aac/types.js +2 -1
  8. package/dist/containers/avc/codec-string.js +5 -1
  9. package/dist/containers/avc/color.js +9 -3
  10. package/dist/containers/avc/create-sps-pps-data.js +9 -5
  11. package/dist/containers/avc/interpret-sps.js +13 -7
  12. package/dist/containers/avc/key.js +5 -1
  13. package/dist/containers/avc/parse-avc.js +7 -3
  14. package/dist/containers/avc/sps-and-pps.js +5 -1
  15. package/dist/containers/flac/get-block-size.d.ts +1 -1
  16. package/dist/containers/flac/get-block-size.js +5 -1
  17. package/dist/containers/flac/get-channel-count.d.ts +2 -2
  18. package/dist/containers/flac/get-channel-count.js +5 -1
  19. package/dist/containers/flac/get-duration-from-flac.js +5 -1
  20. package/dist/containers/flac/get-metadata-from-flac.js +5 -1
  21. package/dist/containers/flac/get-sample-rate.d.ts +1 -1
  22. package/dist/containers/flac/get-sample-rate.js +5 -1
  23. package/dist/containers/flac/parse-flac-frame.d.ts +1 -1
  24. package/dist/containers/flac/parse-flac-frame.js +33 -23
  25. package/dist/containers/flac/parse-flac.d.ts +1 -1
  26. package/dist/containers/flac/parse-flac.js +19 -15
  27. package/dist/containers/flac/parse-header.d.ts +1 -1
  28. package/dist/containers/flac/parse-header.js +5 -1
  29. package/dist/containers/flac/parse-metadata.d.ts +1 -1
  30. package/dist/containers/flac/parse-metadata.js +5 -1
  31. package/dist/containers/flac/parse-streaminfo.d.ts +1 -1
  32. package/dist/containers/flac/parse-streaminfo.js +7 -3
  33. package/dist/containers/flac/parse-unknown-block.d.ts +1 -1
  34. package/dist/containers/flac/parse-unknown-block.js +5 -1
  35. package/dist/containers/flac/types.js +2 -1
  36. package/dist/containers/iso-base-media/base-media-box.js +2 -1
  37. package/dist/containers/iso-base-media/base-type.js +2 -1
  38. package/dist/containers/iso-base-media/esds/decoder-specific-config.d.ts +1 -1
  39. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +5 -1
  40. package/dist/containers/iso-base-media/esds/esds-descriptors.d.ts +1 -1
  41. package/dist/containers/iso-base-media/esds/esds-descriptors.js +10 -5
  42. package/dist/containers/iso-base-media/esds/esds.d.ts +1 -1
  43. package/dist/containers/iso-base-media/esds/esds.js +7 -3
  44. package/dist/containers/iso-base-media/ftyp.d.ts +1 -1
  45. package/dist/containers/iso-base-media/ftyp.js +5 -1
  46. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +8 -4
  47. package/dist/containers/iso-base-media/get-children.js +7 -3
  48. package/dist/containers/iso-base-media/get-keyframes.js +11 -7
  49. package/dist/containers/iso-base-media/get-moov-atom.js +26 -16
  50. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +24 -20
  51. package/dist/containers/iso-base-media/get-seeking-from-mp4.d.ts +5 -0
  52. package/dist/containers/iso-base-media/get-seeking-from-mp4.js +56 -0
  53. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +7 -3
  54. package/dist/containers/iso-base-media/make-track.js +34 -30
  55. package/dist/containers/iso-base-media/mdat/mdat.js +47 -34
  56. package/dist/containers/iso-base-media/mdhd.d.ts +1 -1
  57. package/dist/containers/iso-base-media/mdhd.js +5 -1
  58. package/dist/containers/iso-base-media/meta/hdlr.d.ts +1 -1
  59. package/dist/containers/iso-base-media/meta/hdlr.js +5 -1
  60. package/dist/containers/iso-base-media/meta/ilst.d.ts +1 -1
  61. package/dist/containers/iso-base-media/meta/ilst.js +5 -1
  62. package/dist/containers/iso-base-media/moov/moov.js +7 -3
  63. package/dist/containers/iso-base-media/mvhd.d.ts +1 -1
  64. package/dist/containers/iso-base-media/mvhd.js +11 -7
  65. package/dist/containers/iso-base-media/parse-boxes.js +9 -5
  66. package/dist/containers/iso-base-media/parse-icc-profile.js +8 -4
  67. package/dist/containers/iso-base-media/process-box.js +67 -63
  68. package/dist/containers/iso-base-media/stsd/av1c.d.ts +1 -1
  69. package/dist/containers/iso-base-media/stsd/av1c.js +5 -1
  70. package/dist/containers/iso-base-media/stsd/avcc.d.ts +1 -1
  71. package/dist/containers/iso-base-media/stsd/avcc.js +5 -1
  72. package/dist/containers/iso-base-media/stsd/colr.d.ts +1 -1
  73. package/dist/containers/iso-base-media/stsd/colr.js +7 -3
  74. package/dist/containers/iso-base-media/stsd/ctts.d.ts +1 -1
  75. package/dist/containers/iso-base-media/stsd/ctts.js +5 -1
  76. package/dist/containers/iso-base-media/stsd/hvcc.d.ts +1 -1
  77. package/dist/containers/iso-base-media/stsd/hvcc.js +7 -3
  78. package/dist/containers/iso-base-media/stsd/keys.d.ts +1 -1
  79. package/dist/containers/iso-base-media/stsd/keys.js +5 -1
  80. package/dist/containers/iso-base-media/stsd/mebx.js +7 -3
  81. package/dist/containers/iso-base-media/stsd/pasp.d.ts +1 -1
  82. package/dist/containers/iso-base-media/stsd/pasp.js +5 -1
  83. package/dist/containers/iso-base-media/stsd/samples.js +13 -8
  84. package/dist/containers/iso-base-media/stsd/stco.d.ts +1 -1
  85. package/dist/containers/iso-base-media/stsd/stco.js +5 -1
  86. package/dist/containers/iso-base-media/stsd/stsc.d.ts +1 -1
  87. package/dist/containers/iso-base-media/stsd/stsc.js +5 -1
  88. package/dist/containers/iso-base-media/stsd/stsd.js +7 -3
  89. package/dist/containers/iso-base-media/stsd/stss.d.ts +1 -1
  90. package/dist/containers/iso-base-media/stsd/stss.js +5 -1
  91. package/dist/containers/iso-base-media/stsd/stsz.d.ts +1 -1
  92. package/dist/containers/iso-base-media/stsd/stsz.js +5 -1
  93. package/dist/containers/iso-base-media/stsd/stts.d.ts +1 -1
  94. package/dist/containers/iso-base-media/stsd/stts.js +5 -1
  95. package/dist/containers/iso-base-media/tfdt.d.ts +1 -1
  96. package/dist/containers/iso-base-media/tfdt.js +5 -1
  97. package/dist/containers/iso-base-media/tfhd.d.ts +1 -1
  98. package/dist/containers/iso-base-media/tfhd.js +5 -1
  99. package/dist/containers/iso-base-media/tkhd.d.ts +1 -1
  100. package/dist/containers/iso-base-media/tkhd.js +8 -4
  101. package/dist/containers/iso-base-media/to-date.js +5 -1
  102. package/dist/containers/iso-base-media/trak/trak.js +7 -3
  103. package/dist/containers/iso-base-media/traversal.js +57 -33
  104. package/dist/containers/iso-base-media/trun.d.ts +1 -1
  105. package/dist/containers/iso-base-media/trun.js +5 -1
  106. package/dist/containers/iso-base-media/void-box.js +2 -1
  107. package/dist/containers/m3u/after-manifest-fetch.js +15 -11
  108. package/dist/containers/m3u/fetch-m3u8-stream.js +7 -3
  109. package/dist/containers/m3u/get-chunks.js +5 -1
  110. package/dist/containers/m3u/get-duration-from-m3u.js +8 -4
  111. package/dist/containers/m3u/get-playlist.js +12 -6
  112. package/dist/containers/m3u/get-streams.js +9 -3
  113. package/dist/containers/m3u/iterate-over-segment-files.js +15 -11
  114. package/dist/containers/m3u/parse-directive.js +10 -6
  115. package/dist/containers/m3u/parse-m3u-manifest.d.ts +1 -1
  116. package/dist/containers/m3u/parse-m3u-manifest.js +7 -3
  117. package/dist/containers/m3u/parse-m3u-media-directive.js +10 -5
  118. package/dist/containers/m3u/parse-m3u.js +11 -7
  119. package/dist/containers/m3u/parse-m3u8-text.js +7 -3
  120. package/dist/containers/m3u/parse-stream-inf.js +7 -2
  121. package/dist/containers/m3u/run-over-m3u.js +13 -9
  122. package/dist/containers/m3u/sample-sorter.js +8 -4
  123. package/dist/containers/m3u/select-stream.js +11 -4
  124. package/dist/containers/m3u/types.js +2 -1
  125. package/dist/containers/mp3/get-duration.js +9 -5
  126. package/dist/containers/mp3/get-frame-length.js +7 -2
  127. package/dist/containers/mp3/get-metadata-from-mp3.js +5 -1
  128. package/dist/containers/mp3/id3-v1.d.ts +1 -1
  129. package/dist/containers/mp3/id3-v1.js +5 -1
  130. package/dist/containers/mp3/id3.js +5 -1
  131. package/dist/containers/mp3/parse-mp3.js +11 -7
  132. package/dist/containers/mp3/parse-mpeg-header.js +28 -19
  133. package/dist/containers/mp3/samples-per-mpeg-file.js +5 -1
  134. package/dist/containers/riff/expect-riff-box.js +15 -11
  135. package/dist/containers/riff/get-duration.js +12 -7
  136. package/dist/containers/riff/get-tracks-from-avi.js +28 -20
  137. package/dist/containers/riff/is-movi.d.ts +1 -1
  138. package/dist/containers/riff/is-movi.js +5 -1
  139. package/dist/containers/riff/parse-avih.d.ts +1 -1
  140. package/dist/containers/riff/parse-avih.js +5 -1
  141. package/dist/containers/riff/parse-isft.d.ts +1 -1
  142. package/dist/containers/riff/parse-isft.js +5 -1
  143. package/dist/containers/riff/parse-list-box.js +7 -3
  144. package/dist/containers/riff/parse-movi.js +45 -31
  145. package/dist/containers/riff/parse-riff-body.js +13 -9
  146. package/dist/containers/riff/parse-riff-box.js +13 -9
  147. package/dist/containers/riff/parse-riff-header.js +5 -1
  148. package/dist/containers/riff/parse-riff.js +9 -5
  149. package/dist/containers/riff/parse-strf.d.ts +1 -1
  150. package/dist/containers/riff/parse-strf.js +5 -1
  151. package/dist/containers/riff/parse-strh.d.ts +1 -1
  152. package/dist/containers/riff/parse-strh.js +7 -3
  153. package/dist/containers/riff/parse-video-section.js +11 -7
  154. package/dist/containers/riff/riff-box.js +2 -1
  155. package/dist/containers/riff/timescale.js +4 -1
  156. package/dist/containers/riff/traversal.js +15 -7
  157. package/dist/containers/transport-stream/adts-header.js +10 -6
  158. package/dist/containers/transport-stream/boxes.js +2 -1
  159. package/dist/containers/transport-stream/discard-rest-of-packet.d.ts +1 -1
  160. package/dist/containers/transport-stream/discard-rest-of-packet.js +7 -2
  161. package/dist/containers/transport-stream/find-separator.js +4 -1
  162. package/dist/containers/transport-stream/get-tracks.js +16 -10
  163. package/dist/containers/transport-stream/handle-aac-packet.js +21 -12
  164. package/dist/containers/transport-stream/handle-avc-packet.js +31 -22
  165. package/dist/containers/transport-stream/next-pes-header-store.js +5 -1
  166. package/dist/containers/transport-stream/parse-packet.js +17 -13
  167. package/dist/containers/transport-stream/parse-pat.d.ts +1 -1
  168. package/dist/containers/transport-stream/parse-pat.js +10 -5
  169. package/dist/containers/transport-stream/parse-pes.d.ts +1 -1
  170. package/dist/containers/transport-stream/parse-pes.js +5 -1
  171. package/dist/containers/transport-stream/parse-pmt.d.ts +1 -1
  172. package/dist/containers/transport-stream/parse-pmt.js +7 -3
  173. package/dist/containers/transport-stream/parse-stream-packet.js +17 -13
  174. package/dist/containers/transport-stream/parse-transport-stream.js +9 -5
  175. package/dist/containers/transport-stream/process-stream-buffers.js +17 -12
  176. package/dist/containers/transport-stream/traversal.js +10 -4
  177. package/dist/containers/wav/get-duration-from-wav.js +8 -3
  178. package/dist/containers/wav/get-metadata-from-wav.js +5 -1
  179. package/dist/containers/wav/parse-data.js +9 -5
  180. package/dist/containers/wav/parse-fmt.js +7 -3
  181. package/dist/containers/wav/parse-header.js +5 -1
  182. package/dist/containers/wav/parse-id3.js +5 -1
  183. package/dist/containers/wav/parse-list.js +5 -1
  184. package/dist/containers/wav/parse-video-section.js +21 -12
  185. package/dist/containers/wav/parse-wav.js +19 -15
  186. package/dist/containers/wav/types.js +2 -1
  187. package/dist/containers/webm/allowed-partial-segments.js +4 -1
  188. package/dist/containers/webm/av1-codec-private.js +7 -3
  189. package/dist/containers/webm/color.js +10 -6
  190. package/dist/containers/webm/description.js +10 -6
  191. package/dist/containers/webm/get-ready-tracks.js +18 -13
  192. package/dist/containers/webm/get-sample-from-block.js +16 -12
  193. package/dist/containers/webm/make-track.js +48 -43
  194. package/dist/containers/webm/parse-ebml.js +35 -17
  195. package/dist/containers/webm/parse-webm-header.js +7 -3
  196. package/dist/containers/webm/segments/all-segments.js +173 -168
  197. package/dist/containers/webm/segments/block-simple-block-flags.d.ts +1 -1
  198. package/dist/containers/webm/segments/block-simple-block-flags.js +8 -4
  199. package/dist/containers/webm/segments/track-entry.js +5 -1
  200. package/dist/containers/webm/segments.js +13 -9
  201. package/dist/containers/webm/traversal.js +67 -37
  202. package/dist/convert-audio-or-video-sample.js +5 -1
  203. package/dist/download-and-parse-media.js +14 -10
  204. package/dist/emit-all-info.d.ts +3 -0
  205. package/dist/emit-all-info.js +30 -0
  206. package/dist/emit-audio-sample.d.ts +12 -0
  207. package/dist/emit-audio-sample.js +14 -0
  208. package/dist/emit-available-info.d.ts +2 -7
  209. package/dist/emit-available-info.js +70 -63
  210. package/dist/emitter.js +5 -1
  211. package/dist/errors.js +15 -6
  212. package/dist/esm/index.mjs +1921 -1618
  213. package/dist/esm/worker-server-entry.mjs +840 -537
  214. package/dist/esm/worker-web-entry.mjs +840 -537
  215. package/dist/esm/worker.mjs +4 -5
  216. package/dist/fetch.js +17 -1
  217. package/dist/fields.d.ts +61 -0
  218. package/dist/fields.js +2 -0
  219. package/dist/file-types/bmp.js +7 -3
  220. package/dist/file-types/detect-file-type.js +38 -24
  221. package/dist/file-types/index.js +26 -22
  222. package/dist/file-types/jpeg.js +9 -4
  223. package/dist/file-types/pdf.js +7 -3
  224. package/dist/file-types/png.js +9 -4
  225. package/dist/file-types/webp.js +7 -3
  226. package/dist/forward-controller.js +5 -1
  227. package/dist/get-audio-codec.js +38 -25
  228. package/dist/get-container.js +10 -5
  229. package/dist/get-dimensions.js +13 -8
  230. package/dist/get-duration.js +34 -27
  231. package/dist/get-fields-from-callbacks.d.ts +2 -1
  232. package/dist/get-fields-from-callbacks.js +5 -1
  233. package/dist/get-fps.js +34 -24
  234. package/dist/get-is-hdr.js +10 -5
  235. package/dist/get-keyframes.js +11 -6
  236. package/dist/get-location.js +9 -4
  237. package/dist/get-number-of-audio-channels.js +7 -2
  238. package/dist/get-sample-aspect-ratio.js +30 -17
  239. package/dist/get-sample-positions-from-lpcm.js +9 -5
  240. package/dist/get-sample-positions.js +5 -1
  241. package/dist/get-sample-rate.js +7 -2
  242. package/dist/get-seeking-info.d.ts +4 -0
  243. package/dist/get-seeking-info.js +22 -0
  244. package/dist/get-tracks.js +40 -29
  245. package/dist/get-video-codec.js +34 -26
  246. package/dist/has-all-info.d.ts +3 -5
  247. package/dist/has-all-info.js +39 -35
  248. package/dist/index.d.ts +53 -14
  249. package/dist/index.js +47 -32
  250. package/dist/init-video.d.ts +1 -4
  251. package/dist/init-video.js +29 -24
  252. package/dist/internal-parse-media.js +40 -199
  253. package/dist/is-audio-structure.js +5 -1
  254. package/dist/{buffer-iterator.d.ts → iterator/buffer-iterator.d.ts} +12 -15
  255. package/dist/{buffer-iterator.js → iterator/buffer-iterator.js} +16 -119
  256. package/dist/iterator/buffer-manager.d.ts +18 -0
  257. package/dist/iterator/buffer-manager.js +87 -0
  258. package/dist/iterator/offset-counter.d.ts +10 -0
  259. package/dist/iterator/offset-counter.js +31 -0
  260. package/dist/log.js +12 -8
  261. package/dist/make-hvc1-codec-strings.d.ts +1 -1
  262. package/dist/make-hvc1-codec-strings.js +5 -1
  263. package/dist/make-progress-object.d.ts +6 -0
  264. package/dist/make-progress-object.js +13 -0
  265. package/dist/media-parser-controller.d.ts +3 -0
  266. package/dist/media-parser-controller.js +15 -7
  267. package/dist/metadata/get-metadata.js +22 -17
  268. package/dist/metadata/metadata-from-iso.js +17 -12
  269. package/dist/metadata/metadata-from-matroska.js +7 -3
  270. package/dist/metadata/metadata-from-riff.js +7 -3
  271. package/dist/node-writer.js +17 -1
  272. package/dist/node.js +17 -1
  273. package/dist/options.d.ts +1 -61
  274. package/dist/options.js +2 -1
  275. package/dist/parse-loop.d.ts +8 -0
  276. package/dist/parse-loop.js +93 -0
  277. package/dist/parse-media-on-worker-entry.d.ts +2 -1
  278. package/dist/parse-media-on-worker-entry.js +7 -3
  279. package/dist/parse-media.js +12 -8
  280. package/dist/parse-result.js +2 -1
  281. package/dist/pause-signal.js +5 -1
  282. package/dist/perform-seek.d.ts +2 -7
  283. package/dist/perform-seek.js +29 -26
  284. package/dist/print-timings.d.ts +2 -0
  285. package/dist/print-timings.js +12 -0
  286. package/dist/readers/fetch/get-body-and-reader.js +5 -1
  287. package/dist/readers/fetch/resolve-url.js +5 -1
  288. package/dist/readers/from-fetch.js +21 -14
  289. package/dist/readers/from-node.js +23 -17
  290. package/dist/readers/from-web-file.js +13 -7
  291. package/dist/readers/reader.js +2 -1
  292. package/dist/readers/universal.js +16 -13
  293. package/dist/readers/web.js +12 -9
  294. package/dist/register-track.js +18 -9
  295. package/dist/remotion-license-acknowledge.js +8 -4
  296. package/dist/run-parse-iteration.d.ts +1 -4
  297. package/dist/run-parse-iteration.js +25 -24
  298. package/dist/samples-from-moof.js +10 -6
  299. package/dist/seek-backwards.d.ts +2 -0
  300. package/dist/seek-backwards.js +26 -0
  301. package/dist/seek-forwards.d.ts +2 -0
  302. package/dist/seek-forwards.js +28 -0
  303. package/dist/seek-signal.d.ts +22 -0
  304. package/dist/seek-signal.js +26 -0
  305. package/dist/seeking-info.d.ts +8 -0
  306. package/dist/seeking-info.js +2 -0
  307. package/dist/skip.js +5 -1
  308. package/dist/state/aac-state.js +5 -1
  309. package/dist/state/can-skip-tracks.d.ts +2 -2
  310. package/dist/state/can-skip-tracks.js +12 -4
  311. package/dist/state/emitted-fields.d.ts +1 -1
  312. package/dist/state/emitted-fields.js +5 -1
  313. package/dist/state/flac-state.js +5 -1
  314. package/dist/state/has-tracks-section.d.ts +2 -1
  315. package/dist/state/has-tracks-section.js +7 -3
  316. package/dist/state/images.js +5 -1
  317. package/dist/state/iso-base-media/cached-sample-positions.js +13 -8
  318. package/dist/state/iso-base-media/iso-state.js +9 -5
  319. package/dist/state/iso-base-media/moov-box.js +5 -1
  320. package/dist/state/keyframes.js +5 -1
  321. package/dist/state/m3u-state.js +9 -5
  322. package/dist/state/may-skip-video-data.js +7 -3
  323. package/dist/state/mp3.js +5 -1
  324. package/dist/state/need-samples-for-fields.d.ts +1 -1
  325. package/dist/state/need-samples-for-fields.js +5 -1
  326. package/dist/state/parser-state.d.ts +38 -8
  327. package/dist/state/parser-state.js +59 -35
  328. package/dist/state/riff.js +5 -1
  329. package/dist/state/sample-callbacks.d.ts +8 -3
  330. package/dist/state/sample-callbacks.js +27 -10
  331. package/dist/state/slow-duration-fps.js +5 -1
  332. package/dist/state/structure.js +5 -1
  333. package/dist/state/timings.d.ts +8 -0
  334. package/dist/state/timings.js +13 -0
  335. package/dist/state/transport-stream.js +7 -3
  336. package/dist/state/video-section.d.ts +1 -1
  337. package/dist/state/video-section.js +5 -1
  338. package/dist/state/webm.d.ts +1 -1
  339. package/dist/state/webm.js +9 -5
  340. package/dist/throttled-progress.d.ts +2 -3
  341. package/dist/throttled-progress.js +5 -1
  342. package/dist/truthy.js +4 -1
  343. package/dist/universal.js +5 -1
  344. package/dist/version.d.ts +1 -1
  345. package/dist/version.js +4 -1
  346. package/dist/web.js +5 -1
  347. package/dist/webcodec-sample-types.js +2 -1
  348. package/dist/work-on-seek-request.d.ts +2 -0
  349. package/dist/work-on-seek-request.js +43 -0
  350. package/dist/worker/forward-controller.js +7 -3
  351. package/dist/worker/serialize-error.js +19 -14
  352. package/dist/worker/worker-types.d.ts +2 -1
  353. package/dist/worker/worker-types.js +2 -1
  354. package/dist/worker-server-entry.js +5 -3
  355. package/dist/worker-server.js +16 -12
  356. package/dist/worker-web-entry.js +5 -3
  357. package/dist/worker.d.ts +3 -2
  358. package/dist/worker.js +11 -2
  359. package/dist/writers/node.js +23 -16
  360. package/dist/writers/writer.js +2 -1
  361. package/package.json +10 -10
  362. package/dist/parse-media-on-server-worker.d.ts +0 -2
  363. package/dist/parse-media-on-server-worker.js +0 -4
  364. package/dist/parse-media-on-web-worker.d.ts +0 -2
  365. package/dist/parse-media-on-web-worker.js +0 -4
@@ -1,18 +1,21 @@
1
- import { getArrayBufferIterator } from '../../buffer-iterator';
2
- import { getHvc1CodecString } from '../../make-hvc1-codec-strings';
3
- import { parseAv1PrivateData } from './av1-codec-private';
4
- import { parseColorSegment } from './color';
5
- import { getAudioDescription } from './description';
6
- import { trackTypeToString } from './segments/track-entry';
7
- import { getBitDepth, getCodecSegment, getColourSegment, getDisplayHeightSegment, getDisplayWidthSegment, getHeightSegment, getNumberOfChannels, getPrivateData, getSampleRate, getTrackId, getTrackTypeSegment, getWidthSegment, } from './traversal';
8
- export const NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS = 'no-codec-private-should-be-derived-from-sps';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrack = exports.getMatroskaAudioCodecWithoutConfigString = exports.NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS = void 0;
4
+ const buffer_iterator_1 = require("../../iterator/buffer-iterator");
5
+ const make_hvc1_codec_strings_1 = require("../../make-hvc1-codec-strings");
6
+ const av1_codec_private_1 = require("./av1-codec-private");
7
+ const color_1 = require("./color");
8
+ const description_1 = require("./description");
9
+ const track_entry_1 = require("./segments/track-entry");
10
+ const traversal_1 = require("./traversal");
11
+ exports.NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS = 'no-codec-private-should-be-derived-from-sps';
9
12
  const getDescription = (track) => {
10
- const codec = getCodecSegment(track);
13
+ const codec = (0, traversal_1.getCodecSegment)(track);
11
14
  if (!codec) {
12
15
  return undefined;
13
16
  }
14
17
  if (codec.value === 'V_MPEG4/ISO/AVC' || codec.value === 'V_MPEGH/ISO/HEVC') {
15
- const priv = getPrivateData(track);
18
+ const priv = (0, traversal_1.getPrivateData)(track);
16
19
  if (priv) {
17
20
  return priv;
18
21
  }
@@ -42,35 +45,35 @@ const getMatroskaVideoCodecString = ({ track, codecSegment: codec, }) => {
42
45
  return 'vp8';
43
46
  }
44
47
  if (codec.value === 'V_VP9') {
45
- const priv = getPrivateData(track);
48
+ const priv = (0, traversal_1.getPrivateData)(track);
46
49
  if (priv) {
47
50
  throw new Error('@remotion/media-parser cannot handle the private data for VP9. Do you have an example file you could send so we can implement it? https://remotion.dev/report');
48
51
  }
49
52
  return 'vp09.00.10.08';
50
53
  }
51
54
  if (codec.value === 'V_MPEG4/ISO/AVC') {
52
- const priv = getPrivateData(track);
55
+ const priv = (0, traversal_1.getPrivateData)(track);
53
56
  if (priv) {
54
57
  return `avc1.${priv[1].toString(16).padStart(2, '0')}${priv[2].toString(16).padStart(2, '0')}${priv[3].toString(16).padStart(2, '0')}`;
55
58
  }
56
- return NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS;
59
+ return exports.NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS;
57
60
  }
58
61
  if (codec.value === 'V_MPEGH/ISO/HEVC') {
59
- const priv = getPrivateData(track);
60
- const iterator = getArrayBufferIterator(priv, priv.length);
61
- return 'hvc1.' + getHvc1CodecString(iterator);
62
+ const priv = (0, traversal_1.getPrivateData)(track);
63
+ const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(priv, priv.length);
64
+ return 'hvc1.' + (0, make_hvc1_codec_strings_1.getHvc1CodecString)(iterator);
62
65
  }
63
66
  if (codec.value === 'V_AV1') {
64
- const priv = getPrivateData(track);
67
+ const priv = (0, traversal_1.getPrivateData)(track);
65
68
  if (!priv) {
66
69
  throw new Error('Expected private data in AV1 track');
67
70
  }
68
- return parseAv1PrivateData(priv, null);
71
+ return (0, av1_codec_private_1.parseAv1PrivateData)(priv, null);
69
72
  }
70
73
  throw new Error(`Unknown codec: ${codec.value}`);
71
74
  };
72
- export const getMatroskaAudioCodecWithoutConfigString = ({ track, }) => {
73
- const codec = getCodecSegment(track);
75
+ const getMatroskaAudioCodecWithoutConfigString = ({ track, }) => {
76
+ const codec = (0, traversal_1.getCodecSegment)(track);
74
77
  if (!codec) {
75
78
  throw new Error('Expected codec segment');
76
79
  }
@@ -83,7 +86,7 @@ export const getMatroskaAudioCodecWithoutConfigString = ({ track, }) => {
83
86
  if (codec.value === 'A_PCM/INT/LIT') {
84
87
  // https://github.com/ietf-wg-cellar/matroska-specification/issues/142#issuecomment-330004950
85
88
  // Audio samples MUST be considered as signed values, except if the audio bit depth is 8 which MUST be interpreted as unsigned values.
86
- const bitDepth = getBitDepth(track);
89
+ const bitDepth = (0, traversal_1.getBitDepth)(track);
87
90
  if (bitDepth === null) {
88
91
  throw new Error('Expected bit depth');
89
92
  }
@@ -106,8 +109,9 @@ export const getMatroskaAudioCodecWithoutConfigString = ({ track, }) => {
106
109
  }
107
110
  throw new Error(`Unknown codec: ${codec.value}`);
108
111
  };
112
+ exports.getMatroskaAudioCodecWithoutConfigString = getMatroskaAudioCodecWithoutConfigString;
109
113
  const getMatroskaAudioCodecString = (track) => {
110
- const codec = getCodecSegment(track);
114
+ const codec = (0, traversal_1.getCodecSegment)(track);
111
115
  if (!codec) {
112
116
  throw new Error('Expected codec segment');
113
117
  }
@@ -120,7 +124,7 @@ const getMatroskaAudioCodecString = (track) => {
120
124
  if (codec.value === 'A_PCM/INT/LIT') {
121
125
  // https://github.com/ietf-wg-cellar/matroska-specification/issues/142#issuecomment-330004950
122
126
  // Audio samples MUST be considered as signed values, except if the audio bit depth is 8 which MUST be interpreted as unsigned values.
123
- const bitDepth = getBitDepth(track);
127
+ const bitDepth = (0, traversal_1.getBitDepth)(track);
124
128
  if (bitDepth === null) {
125
129
  throw new Error('Expected bit depth');
126
130
  }
@@ -130,8 +134,8 @@ const getMatroskaAudioCodecString = (track) => {
130
134
  return 'pcm-s' + bitDepth;
131
135
  }
132
136
  if (codec.value === 'A_AAC') {
133
- const priv = getPrivateData(track);
134
- const iterator = getArrayBufferIterator(priv, priv.length);
137
+ const priv = (0, traversal_1.getPrivateData)(track);
138
+ const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(priv, priv.length);
135
139
  iterator.startReadingBits();
136
140
  /**
137
141
  * ChatGPT
@@ -164,33 +168,33 @@ const getMatroskaAudioCodecString = (track) => {
164
168
  }
165
169
  throw new Error(`Unknown codec: ${codec.value}`);
166
170
  };
167
- export const getTrack = ({ timescale, track, }) => {
168
- const trackType = getTrackTypeSegment(track);
171
+ const getTrack = ({ timescale, track, }) => {
172
+ const trackType = (0, traversal_1.getTrackTypeSegment)(track);
169
173
  if (!trackType) {
170
174
  throw new Error('Expected track type segment');
171
175
  }
172
- const trackId = getTrackId(track);
173
- if (trackTypeToString(trackType.value.value) === 'video') {
174
- const width = getWidthSegment(track);
176
+ const trackId = (0, traversal_1.getTrackId)(track);
177
+ if ((0, track_entry_1.trackTypeToString)(trackType.value.value) === 'video') {
178
+ const width = (0, traversal_1.getWidthSegment)(track);
175
179
  if (width === null) {
176
180
  throw new Error('Expected width segment');
177
181
  }
178
- const height = getHeightSegment(track);
182
+ const height = (0, traversal_1.getHeightSegment)(track);
179
183
  if (height === null) {
180
184
  throw new Error('Expected height segment');
181
185
  }
182
- const displayHeight = getDisplayHeightSegment(track);
183
- const displayWidth = getDisplayWidthSegment(track);
184
- const codec = getCodecSegment(track);
186
+ const displayHeight = (0, traversal_1.getDisplayHeightSegment)(track);
187
+ const displayWidth = (0, traversal_1.getDisplayWidthSegment)(track);
188
+ const codec = (0, traversal_1.getCodecSegment)(track);
185
189
  if (!codec) {
186
190
  return null;
187
191
  }
188
- const codecPrivate = getPrivateData(track);
192
+ const codecPrivate = (0, traversal_1.getPrivateData)(track);
189
193
  const codecString = getMatroskaVideoCodecString({
190
194
  track,
191
195
  codecSegment: codec,
192
196
  });
193
- const colour = getColourSegment(track);
197
+ const colour = (0, traversal_1.getColourSegment)(track);
194
198
  if (!codecString) {
195
199
  return null;
196
200
  }
@@ -219,7 +223,7 @@ export const getTrack = ({ timescale, track, }) => {
219
223
  trakBox: null,
220
224
  codecPrivate,
221
225
  color: colour
222
- ? parseColorSegment(colour)
226
+ ? (0, color_1.parseColorSegment)(colour)
223
227
  : {
224
228
  fullRange: null,
225
229
  matrixCoefficients: null,
@@ -232,10 +236,10 @@ export const getTrack = ({ timescale, track, }) => {
232
236
  fps: null,
233
237
  };
234
238
  }
235
- if (trackTypeToString(trackType.value.value) === 'audio') {
236
- const sampleRate = getSampleRate(track);
237
- const numberOfChannels = getNumberOfChannels(track);
238
- const codecPrivate = getPrivateData(track);
239
+ if ((0, track_entry_1.trackTypeToString)(trackType.value.value) === 'audio') {
240
+ const sampleRate = (0, traversal_1.getSampleRate)(track);
241
+ const numberOfChannels = (0, traversal_1.getNumberOfChannels)(track);
242
+ const codecPrivate = (0, traversal_1.getPrivateData)(track);
239
243
  if (sampleRate === null) {
240
244
  throw new Error('Could not find sample rate or number of channels');
241
245
  }
@@ -246,13 +250,14 @@ export const getTrack = ({ timescale, track, }) => {
246
250
  timescale,
247
251
  numberOfChannels,
248
252
  sampleRate,
249
- description: getAudioDescription(track),
253
+ description: (0, description_1.getAudioDescription)(track),
250
254
  trakBox: null,
251
255
  codecPrivate,
252
- codecWithoutConfig: getMatroskaAudioCodecWithoutConfigString({
256
+ codecWithoutConfig: (0, exports.getMatroskaAudioCodecWithoutConfigString)({
253
257
  track,
254
258
  }),
255
259
  };
256
260
  }
257
261
  return null;
258
262
  };
263
+ exports.getTrack = getTrack;
@@ -1,14 +1,18 @@
1
- import { registerAudioTrack, registerVideoTrack } from '../../register-track';
2
- import { getSampleFromBlock } from './get-sample-from-block';
3
- import { getTrack } from './make-track';
4
- import { ebmlMap } from './segments/all-segments';
5
- export const parseEbml = async (state) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postprocessEbml = exports.parseEbml = void 0;
4
+ const emit_audio_sample_1 = require("../../emit-audio-sample");
5
+ const register_track_1 = require("../../register-track");
6
+ const get_sample_from_block_1 = require("./get-sample-from-block");
7
+ const make_track_1 = require("./make-track");
8
+ const all_segments_1 = require("./segments/all-segments");
9
+ const parseEbml = async (state) => {
6
10
  const { iterator } = state;
7
11
  const hex = iterator.getMatroskaSegmentId();
8
12
  if (hex === null) {
9
13
  throw new Error('Not enough bytes left to parse EBML - this should not happen');
10
14
  }
11
- const hasInMap = ebmlMap[hex];
15
+ const hasInMap = all_segments_1.ebmlMap[hex];
12
16
  if (!hasInMap) {
13
17
  throw new Error(`Don't know how to parse EBML hex ID ${JSON.stringify(hex)}`);
14
18
  }
@@ -81,9 +85,9 @@ export const parseEbml = async (state) => {
81
85
  break;
82
86
  }
83
87
  const offset = iterator.counter.getOffset();
84
- const value = await parseEbml(state);
88
+ const value = await (0, exports.parseEbml)(state);
85
89
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
86
- const remapped = await postprocessEbml({
90
+ const remapped = await (0, exports.postprocessEbml)({
87
91
  offset,
88
92
  ebml: value,
89
93
  state,
@@ -102,7 +106,8 @@ export const parseEbml = async (state) => {
102
106
  // @ts-expect-error
103
107
  throw new Error(`Unknown segment type ${hasInMap.type}`);
104
108
  };
105
- export const postprocessEbml = async ({ offset, ebml, state, }) => {
109
+ exports.parseEbml = parseEbml;
110
+ const postprocessEbml = async ({ offset, ebml, state, }) => {
106
111
  if (ebml.type === 'TimestampScale') {
107
112
  state.webm.setTimescale(ebml.value.value);
108
113
  }
@@ -111,19 +116,19 @@ export const postprocessEbml = async ({ offset, ebml, state, }) => {
111
116
  }
112
117
  if (ebml.type === 'TrackEntry') {
113
118
  state.webm.onTrackEntrySegment(ebml);
114
- const track = getTrack({
119
+ const track = (0, make_track_1.getTrack)({
115
120
  track: ebml,
116
121
  timescale: state.webm.getTimescale(),
117
122
  });
118
123
  if (track && track.type === 'audio') {
119
- await registerAudioTrack({
124
+ await (0, register_track_1.registerAudioTrack)({
120
125
  state,
121
126
  track,
122
127
  container: 'webm',
123
128
  });
124
129
  }
125
130
  if (track && track.type === 'video') {
126
- await registerVideoTrack({
131
+ await (0, register_track_1.registerVideoTrack)({
127
132
  state,
128
133
  track,
129
134
  container: 'webm',
@@ -134,9 +139,13 @@ export const postprocessEbml = async ({ offset, ebml, state, }) => {
134
139
  state.webm.setTimestampOffset(offset, ebml.value.value);
135
140
  }
136
141
  if (ebml.type === 'Block' || ebml.type === 'SimpleBlock') {
137
- const sample = getSampleFromBlock(ebml, state, offset);
142
+ const sample = (0, get_sample_from_block_1.getSampleFromBlock)(ebml, state, offset);
138
143
  if (sample.type === 'video-sample') {
139
- await state.callbacks.onVideoSample(sample.videoSample.trackId, sample.videoSample);
144
+ await (0, emit_audio_sample_1.emitVideoSample)({
145
+ trackId: sample.videoSample.trackId,
146
+ videoSample: sample.videoSample,
147
+ state,
148
+ });
140
149
  return {
141
150
  type: 'Block',
142
151
  value: new Uint8Array([]),
@@ -144,7 +153,11 @@ export const postprocessEbml = async ({ offset, ebml, state, }) => {
144
153
  };
145
154
  }
146
155
  if (sample.type === 'audio-sample') {
147
- await state.callbacks.onAudioSample(sample.audioSample.trackId, sample.audioSample);
156
+ await (0, emit_audio_sample_1.emitAudioSample)({
157
+ trackId: sample.audioSample.trackId,
158
+ audioSample: sample.audioSample,
159
+ state,
160
+ });
148
161
  return {
149
162
  type: 'Block',
150
163
  value: new Uint8Array([]),
@@ -171,13 +184,17 @@ export const postprocessEbml = async ({ offset, ebml, state, }) => {
171
184
  const hasReferenceBlock = ebml.value.find((c) => c.type === 'ReferenceBlock');
172
185
  const sample = block.value.length === 0
173
186
  ? null
174
- : getSampleFromBlock(block, state, offset);
187
+ : (0, get_sample_from_block_1.getSampleFromBlock)(block, state, offset);
175
188
  if (sample && sample.type === 'partial-video-sample') {
176
189
  const completeFrame = {
177
190
  ...sample.partialVideoSample,
178
191
  type: hasReferenceBlock ? 'delta' : 'key',
179
192
  };
180
- await state.callbacks.onVideoSample(sample.partialVideoSample.trackId, completeFrame);
193
+ await (0, emit_audio_sample_1.emitVideoSample)({
194
+ trackId: sample.partialVideoSample.trackId,
195
+ videoSample: completeFrame,
196
+ state,
197
+ });
181
198
  }
182
199
  return {
183
200
  type: 'BlockGroup',
@@ -187,3 +204,4 @@ export const postprocessEbml = async ({ offset, ebml, state, }) => {
187
204
  }
188
205
  return ebml;
189
206
  };
207
+ exports.postprocessEbml = postprocessEbml;
@@ -1,11 +1,14 @@
1
- import { expectSegment } from './segments';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseWebm = void 0;
4
+ const segments_1 = require("./segments");
2
5
  // Parsing according to https://darkcoding.net/software/reading-mediarecorders-webm-opus-output/
3
- export const parseWebm = async (state) => {
6
+ const parseWebm = async (state) => {
4
7
  const structure = state.getMatroskaStructure();
5
8
  const { iterator } = state;
6
9
  const isInsideSegment = state.webm.isInsideSegment(iterator);
7
10
  const isInsideCluster = state.webm.isInsideCluster(iterator);
8
- const results = await expectSegment({
11
+ const results = await (0, segments_1.expectSegment)({
9
12
  state,
10
13
  isInsideSegment,
11
14
  });
@@ -40,3 +43,4 @@ export const parseWebm = async (state) => {
40
43
  }
41
44
  return null;
42
45
  };
46
+ exports.parseWebm = parseWebm;