@remotion/media-parser 4.0.256 → 4.0.257

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/abort.d.ts +1 -0
  2. package/dist/abort.js +7 -0
  3. package/dist/containers/flac/get-channel-count.d.ts +1 -1
  4. package/dist/controller.d.ts +17 -0
  5. package/dist/controller.js +31 -0
  6. package/dist/esm/index.mjs +1 -1
  7. package/dist/parse-and-download-media.d.ts +2 -0
  8. package/dist/parse-and-download-media.js +57 -0
  9. package/dist/version.d.ts +1 -1
  10. package/dist/version.js +1 -1
  11. package/package.json +3 -3
  12. package/dist/add-new-matroska-tracks.d.ts +0 -8
  13. package/dist/add-new-matroska-tracks.js +0 -14
  14. package/dist/boxes/avc/parse-avc.d.ts +0 -18
  15. package/dist/boxes/avc/parse-avc.js +0 -96
  16. package/dist/boxes/iso-base-media/base-type.d.ts +0 -4
  17. package/dist/boxes/iso-base-media/base-type.js +0 -2
  18. package/dist/boxes/iso-base-media/esds/decoder-specific-config.d.ts +0 -14
  19. package/dist/boxes/iso-base-media/esds/decoder-specific-config.js +0 -38
  20. package/dist/boxes/iso-base-media/esds/esds-descriptors.d.ts +0 -29
  21. package/dist/boxes/iso-base-media/esds/esds-descriptors.js +0 -82
  22. package/dist/boxes/iso-base-media/esds/esds.d.ts +0 -15
  23. package/dist/boxes/iso-base-media/esds/esds.js +0 -27
  24. package/dist/boxes/iso-base-media/ftyp.d.ts +0 -13
  25. package/dist/boxes/iso-base-media/ftyp.js +0 -22
  26. package/dist/boxes/iso-base-media/get-actual-number-of-channels.d.ts +0 -13
  27. package/dist/boxes/iso-base-media/get-actual-number-of-channels.js +0 -22
  28. package/dist/boxes/iso-base-media/get-sample-positions-from-track.d.ts +0 -4
  29. package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +0 -54
  30. package/dist/boxes/iso-base-media/make-track.d.ts +0 -3
  31. package/dist/boxes/iso-base-media/make-track.js +0 -107
  32. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +0 -25
  33. package/dist/boxes/iso-base-media/mdat/mdat.js +0 -122
  34. package/dist/boxes/iso-base-media/mdhd.d.ts +0 -16
  35. package/dist/boxes/iso-base-media/mdhd.js +0 -32
  36. package/dist/boxes/iso-base-media/meta/hdlr.d.ts +0 -12
  37. package/dist/boxes/iso-base-media/meta/hdlr.js +0 -33
  38. package/dist/boxes/iso-base-media/meta/ilst.d.ts +0 -28
  39. package/dist/boxes/iso-base-media/meta/ilst.js +0 -86
  40. package/dist/boxes/iso-base-media/moov/moov.d.ts +0 -19
  41. package/dist/boxes/iso-base-media/moov/moov.js +0 -27
  42. package/dist/boxes/iso-base-media/mvhd.d.ts +0 -30
  43. package/dist/boxes/iso-base-media/mvhd.js +0 -65
  44. package/dist/boxes/iso-base-media/parse-icc-profile.d.ts +0 -36
  45. package/dist/boxes/iso-base-media/parse-icc-profile.js +0 -115
  46. package/dist/boxes/iso-base-media/process-box.d.ts +0 -34
  47. package/dist/boxes/iso-base-media/process-box.js +0 -710
  48. package/dist/boxes/iso-base-media/stsd/av1c.d.ts +0 -9
  49. package/dist/boxes/iso-base-media/stsd/av1c.js +0 -10
  50. package/dist/boxes/iso-base-media/stsd/avcc.d.ts +0 -10
  51. package/dist/boxes/iso-base-media/stsd/avcc.js +0 -21
  52. package/dist/boxes/iso-base-media/stsd/colr.d.ts +0 -21
  53. package/dist/boxes/iso-base-media/stsd/colr.js +0 -47
  54. package/dist/boxes/iso-base-media/stsd/ctts.d.ts +0 -19
  55. package/dist/boxes/iso-base-media/stsd/ctts.js +0 -34
  56. package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +0 -11
  57. package/dist/boxes/iso-base-media/stsd/hvcc.js +0 -17
  58. package/dist/boxes/iso-base-media/stsd/keys.d.ts +0 -19
  59. package/dist/boxes/iso-base-media/stsd/keys.js +0 -35
  60. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +0 -19
  61. package/dist/boxes/iso-base-media/stsd/mebx.js +0 -32
  62. package/dist/boxes/iso-base-media/stsd/pasp.d.ts +0 -12
  63. package/dist/boxes/iso-base-media/stsd/pasp.js +0 -17
  64. package/dist/boxes/iso-base-media/stsd/samples.d.ts +0 -68
  65. package/dist/boxes/iso-base-media/stsd/samples.js +0 -320
  66. package/dist/boxes/iso-base-media/stsd/stco.d.ts +0 -15
  67. package/dist/boxes/iso-base-media/stsd/stco.js +0 -30
  68. package/dist/boxes/iso-base-media/stsd/stsc.d.ts +0 -19
  69. package/dist/boxes/iso-base-media/stsd/stsc.js +0 -34
  70. package/dist/boxes/iso-base-media/stsd/stsd.d.ts +0 -18
  71. package/dist/boxes/iso-base-media/stsd/stsd.js +0 -33
  72. package/dist/boxes/iso-base-media/stsd/stss.d.ts +0 -13
  73. package/dist/boxes/iso-base-media/stsd/stss.js +0 -28
  74. package/dist/boxes/iso-base-media/stsd/stsz.d.ts +0 -21
  75. package/dist/boxes/iso-base-media/stsd/stsz.js +0 -44
  76. package/dist/boxes/iso-base-media/stsd/stts.d.ts +0 -15
  77. package/dist/boxes/iso-base-media/stsd/stts.js +0 -35
  78. package/dist/boxes/iso-base-media/tfdt.d.ts +0 -12
  79. package/dist/boxes/iso-base-media/tfdt.js +0 -20
  80. package/dist/boxes/iso-base-media/tfhd.d.ts +0 -16
  81. package/dist/boxes/iso-base-media/tfhd.js +0 -41
  82. package/dist/boxes/iso-base-media/tkhd.d.ts +0 -25
  83. package/dist/boxes/iso-base-media/tkhd.js +0 -87
  84. package/dist/boxes/iso-base-media/to-date.d.ts +0 -2
  85. package/dist/boxes/iso-base-media/to-date.js +0 -19
  86. package/dist/boxes/iso-base-media/trak/trak.d.ts +0 -19
  87. package/dist/boxes/iso-base-media/trak/trak.js +0 -27
  88. package/dist/boxes/iso-base-media/traversal.d.ts +0 -39
  89. package/dist/boxes/iso-base-media/traversal.js +0 -201
  90. package/dist/boxes/iso-base-media/trun.d.ts +0 -21
  91. package/dist/boxes/iso-base-media/trun.js +0 -44
  92. package/dist/boxes/iso-base-media/void-box.d.ts +0 -4
  93. package/dist/boxes/iso-base-media/void-box.js +0 -2
  94. package/dist/boxes/riff/expect-riff-box.d.ts +0 -17
  95. package/dist/boxes/riff/expect-riff-box.js +0 -49
  96. package/dist/boxes/riff/get-tracks-from-avi.d.ts +0 -22
  97. package/dist/boxes/riff/get-tracks-from-avi.js +0 -114
  98. package/dist/boxes/riff/is-movi.d.ts +0 -2
  99. package/dist/boxes/riff/is-movi.js +0 -12
  100. package/dist/boxes/riff/parse-avih.d.ts +0 -6
  101. package/dist/boxes/riff/parse-avih.js +0 -32
  102. package/dist/boxes/riff/parse-box.d.ts +0 -15
  103. package/dist/boxes/riff/parse-box.js +0 -146
  104. package/dist/boxes/riff/parse-fmt-box.d.ts +0 -7
  105. package/dist/boxes/riff/parse-fmt-box.js +0 -33
  106. package/dist/boxes/riff/parse-isft.d.ts +0 -6
  107. package/dist/boxes/riff/parse-isft.js +0 -17
  108. package/dist/boxes/riff/parse-list-box.d.ts +0 -8
  109. package/dist/boxes/riff/parse-list-box.js +0 -30
  110. package/dist/boxes/riff/parse-movi.d.ts +0 -17
  111. package/dist/boxes/riff/parse-movi.js +0 -133
  112. package/dist/boxes/riff/parse-riff-box.d.ts +0 -10
  113. package/dist/boxes/riff/parse-riff-box.js +0 -37
  114. package/dist/boxes/riff/parse-strf.d.ts +0 -7
  115. package/dist/boxes/riff/parse-strf.js +0 -67
  116. package/dist/boxes/riff/parse-strh.d.ts +0 -6
  117. package/dist/boxes/riff/parse-strh.js +0 -46
  118. package/dist/boxes/riff/riff-box.d.ts +0 -85
  119. package/dist/boxes/riff/riff-box.js +0 -2
  120. package/dist/boxes/riff/timescale.d.ts +0 -1
  121. package/dist/boxes/riff/timescale.js +0 -4
  122. package/dist/boxes/riff/traversal.d.ts +0 -8
  123. package/dist/boxes/riff/traversal.js +0 -36
  124. package/dist/boxes/webm/allowed-partial-segments.d.ts +0 -1
  125. package/dist/boxes/webm/allowed-partial-segments.js +0 -4
  126. package/dist/boxes/webm/av1-codec-private.d.ts +0 -2
  127. package/dist/boxes/webm/av1-codec-private.js +0 -95
  128. package/dist/boxes/webm/color.d.ts +0 -4
  129. package/dist/boxes/webm/color.js +0 -127
  130. package/dist/boxes/webm/description.d.ts +0 -2
  131. package/dist/boxes/webm/description.js +0 -83
  132. package/dist/boxes/webm/ebml.d.ts +0 -2
  133. package/dist/boxes/webm/ebml.js +0 -94
  134. package/dist/boxes/webm/get-ready-tracks.d.ts +0 -3
  135. package/dist/boxes/webm/get-ready-tracks.js +0 -29
  136. package/dist/boxes/webm/get-sample-from-block.d.ts +0 -17
  137. package/dist/boxes/webm/get-sample-from-block.js +0 -81
  138. package/dist/boxes/webm/make-header.d.ts +0 -8
  139. package/dist/boxes/webm/make-header.js +0 -187
  140. package/dist/boxes/webm/make-track.d.ts +0 -9
  141. package/dist/boxes/webm/make-track.js +0 -261
  142. package/dist/boxes/webm/parse-ebml.d.ts +0 -12
  143. package/dist/boxes/webm/parse-ebml.js +0 -185
  144. package/dist/boxes/webm/parse-webm-header.d.ts +0 -9
  145. package/dist/boxes/webm/parse-webm-header.js +0 -36
  146. package/dist/boxes/webm/segments/all-segments.d.ts +0 -976
  147. package/dist/boxes/webm/segments/all-segments.js +0 -724
  148. package/dist/boxes/webm/segments/block-simple-block-flags.d.ts +0 -9
  149. package/dist/boxes/webm/segments/block-simple-block-flags.js +0 -38
  150. package/dist/boxes/webm/segments/parse-children.d.ts +0 -23
  151. package/dist/boxes/webm/segments/parse-children.js +0 -145
  152. package/dist/boxes/webm/segments/track-entry.d.ts +0 -9
  153. package/dist/boxes/webm/segments/track-entry.js +0 -24
  154. package/dist/boxes/webm/segments.d.ts +0 -15
  155. package/dist/boxes/webm/segments.js +0 -161
  156. package/dist/boxes/webm/traversal.d.ts +0 -33
  157. package/dist/boxes/webm/traversal.js +0 -265
  158. package/dist/create/cluster-segment.d.ts +0 -10
  159. package/dist/create/cluster-segment.js +0 -39
  160. package/dist/create/cluster.d.ts +0 -19
  161. package/dist/create/cluster.js +0 -55
  162. package/dist/create/create-media.d.ts +0 -15
  163. package/dist/create/create-media.js +0 -165
  164. package/dist/create/event-emitter.d.ts +0 -31
  165. package/dist/create/event-emitter.js +0 -25
  166. package/dist/create/iso-base-media/codec-specific/avc1.d.ts +0 -2
  167. package/dist/create/iso-base-media/codec-specific/avc1.js +0 -48
  168. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.d.ts +0 -22
  169. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.js +0 -36
  170. package/dist/create/iso-base-media/codec-specific/mp4a.d.ts +0 -2
  171. package/dist/create/iso-base-media/codec-specific/mp4a.js +0 -74
  172. package/dist/create/iso-base-media/create-colr.d.ts +0 -6
  173. package/dist/create/iso-base-media/create-colr.js +0 -26
  174. package/dist/create/iso-base-media/create-ftyp.d.ts +0 -10
  175. package/dist/create/iso-base-media/create-ftyp.js +0 -22
  176. package/dist/create/iso-base-media/create-ilst.d.ts +0 -1
  177. package/dist/create/iso-base-media/create-ilst.js +0 -14
  178. package/dist/create/iso-base-media/create-iso-base-media.d.ts +0 -2
  179. package/dist/create/iso-base-media/create-iso-base-media.js +0 -165
  180. package/dist/create/iso-base-media/create-mdia.d.ts +0 -5
  181. package/dist/create/iso-base-media/create-mdia.js +0 -18
  182. package/dist/create/iso-base-media/create-moov.d.ts +0 -5
  183. package/dist/create/iso-base-media/create-moov.js +0 -18
  184. package/dist/create/iso-base-media/create-mvhd.d.ts +0 -10
  185. package/dist/create/iso-base-media/create-mvhd.js +0 -48
  186. package/dist/create/iso-base-media/create-trak.d.ts +0 -4
  187. package/dist/create/iso-base-media/create-trak.js +0 -17
  188. package/dist/create/iso-base-media/create-udta.d.ts +0 -1
  189. package/dist/create/iso-base-media/create-udta.js +0 -14
  190. package/dist/create/iso-base-media/create-url.d.ts +0 -1
  191. package/dist/create/iso-base-media/create-url.js +0 -16
  192. package/dist/create/iso-base-media/example-stts.d.ts +0 -3
  193. package/dist/create/iso-base-media/example-stts.js +0 -2797
  194. package/dist/create/iso-base-media/ilst/create-cmt.d.ts +0 -1
  195. package/dist/create/iso-base-media/ilst/create-cmt.js +0 -26
  196. package/dist/create/iso-base-media/ilst/create-too.d.ts +0 -1
  197. package/dist/create/iso-base-media/ilst/create-too.js +0 -27
  198. package/dist/create/iso-base-media/mdia/create-mdhd.d.ts +0 -6
  199. package/dist/create/iso-base-media/mdia/create-mdhd.js +0 -33
  200. package/dist/create/iso-base-media/mp4-header.d.ts +0 -6
  201. package/dist/create/iso-base-media/mp4-header.js +0 -48
  202. package/dist/create/iso-base-media/primitives.d.ts +0 -15
  203. package/dist/create/iso-base-media/primitives.js +0 -133
  204. package/dist/create/iso-base-media/serialize-track.d.ts +0 -9
  205. package/dist/create/iso-base-media/serialize-track.js +0 -63
  206. package/dist/create/iso-base-media/trak/create-tkhd.d.ts +0 -27
  207. package/dist/create/iso-base-media/trak/create-tkhd.js +0 -97
  208. package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +0 -4
  209. package/dist/create/iso-base-media/trak/mdia/create-minf.js +0 -19
  210. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.d.ts +0 -1
  211. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.js +0 -22
  212. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.d.ts +0 -1
  213. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.js +0 -20
  214. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +0 -6
  215. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.js +0 -35
  216. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.d.ts +0 -1
  217. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.js +0 -20
  218. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +0 -2
  219. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.js +0 -45
  220. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +0 -2
  221. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.js +0 -28
  222. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +0 -2
  223. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.js +0 -56
  224. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +0 -2
  225. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.js +0 -23
  226. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +0 -2
  227. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.js +0 -25
  228. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +0 -2
  229. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.js +0 -48
  230. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +0 -1
  231. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.js +0 -20
  232. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +0 -1
  233. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.js +0 -16
  234. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.d.ts +0 -1
  235. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.js +0 -13
  236. package/dist/create/iso-base-media/udta/create-meta.d.ts +0 -4
  237. package/dist/create/iso-base-media/udta/create-meta.js +0 -20
  238. package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +0 -1
  239. package/dist/create/iso-base-media/udta/meta/create-hdlr.js +0 -32
  240. package/dist/create/make-duration-with-padding.d.ts +0 -1
  241. package/dist/create/make-duration-with-padding.js +0 -15
  242. package/dist/create/make-track-info.d.ts +0 -20
  243. package/dist/create/make-track-info.js +0 -2
  244. package/dist/create/matroska/cluster-segment.d.ts +0 -10
  245. package/dist/create/matroska/cluster-segment.js +0 -39
  246. package/dist/create/matroska/cluster.d.ts +0 -25
  247. package/dist/create/matroska/cluster.js +0 -77
  248. package/dist/create/matroska/create-matroska-media.d.ts +0 -2
  249. package/dist/create/matroska/create-matroska-media.js +0 -187
  250. package/dist/create/matroska/make-duration-with-padding.d.ts +0 -1
  251. package/dist/create/matroska/make-duration-with-padding.js +0 -15
  252. package/dist/create/matroska/matroska-cues.d.ts +0 -6
  253. package/dist/create/matroska/matroska-cues.js +0 -49
  254. package/dist/create/matroska/matroska-header.d.ts +0 -1
  255. package/dist/create/matroska/matroska-header.js +0 -66
  256. package/dist/create/matroska/matroska-info.d.ts +0 -3
  257. package/dist/create/matroska/matroska-info.js +0 -33
  258. package/dist/create/matroska/matroska-seek.d.ts +0 -6
  259. package/dist/create/matroska/matroska-seek.js +0 -32
  260. package/dist/create/matroska/matroska-segment.d.ts +0 -3
  261. package/dist/create/matroska/matroska-segment.js +0 -13
  262. package/dist/create/matroska/matroska-trackentry.d.ts +0 -10
  263. package/dist/create/matroska/matroska-trackentry.js +0 -249
  264. package/dist/create/matroska-cues.d.ts +0 -6
  265. package/dist/create/matroska-cues.js +0 -49
  266. package/dist/create/matroska-header.d.ts +0 -1
  267. package/dist/create/matroska-header.js +0 -66
  268. package/dist/create/matroska-info.d.ts +0 -3
  269. package/dist/create/matroska-info.js +0 -33
  270. package/dist/create/matroska-seek.d.ts +0 -6
  271. package/dist/create/matroska-seek.js +0 -32
  272. package/dist/create/matroska-segment.d.ts +0 -3
  273. package/dist/create/matroska-segment.js +0 -13
  274. package/dist/create/matroska-trackentry.d.ts +0 -27
  275. package/dist/create/matroska-trackentry.js +0 -243
  276. package/dist/create/media-fn.d.ts +0 -33
  277. package/dist/create/media-fn.js +0 -2
  278. package/dist/create/progress-tracker.d.ts +0 -7
  279. package/dist/create/progress-tracker.js +0 -43
  280. package/dist/create/timescale.d.ts +0 -1
  281. package/dist/create/timescale.js +0 -4
  282. package/dist/create/wav/create-wav.d.ts +0 -2
  283. package/dist/create/wav/create-wav.js +0 -110
  284. package/dist/create/with-resolvers.d.ts +0 -10
  285. package/dist/create/with-resolvers.js +0 -28
  286. package/dist/esm/buffer.mjs +0 -56
  287. package/dist/esm/web-fs.mjs +0 -73
  288. package/dist/parse-video.d.ts +0 -25
  289. package/dist/parse-video.js +0 -39
  290. package/dist/parser-context.d.ts +0 -10
  291. package/dist/parser-context.js +0 -2
  292. package/dist/parser-state.d.ts +0 -22
  293. package/dist/parser-state.js +0 -132
  294. package/dist/writers/buffer-implementation/writer.d.ts +0 -2
  295. package/dist/writers/buffer-implementation/writer.js +0 -54
  296. package/dist/writers/buffer.d.ts +0 -2
  297. package/dist/writers/buffer.js +0 -7
  298. package/dist/writers/web-fs.d.ts +0 -3
  299. package/dist/writers/web-fs.js +0 -74
@@ -1,187 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMatroskaMedia = void 0;
4
- const ebml_1 = require("../../boxes/webm/ebml");
5
- const make_header_1 = require("../../boxes/webm/make-header");
6
- const all_segments_1 = require("../../boxes/webm/segments/all-segments");
7
- const cluster_1 = require("./cluster");
8
- const make_duration_with_padding_1 = require("./make-duration-with-padding");
9
- const matroska_cues_1 = require("./matroska-cues");
10
- const matroska_header_1 = require("./matroska-header");
11
- const matroska_info_1 = require("./matroska-info");
12
- const matroska_seek_1 = require("./matroska-seek");
13
- const matroska_segment_1 = require("./matroska-segment");
14
- const matroska_trackentry_1 = require("./matroska-trackentry");
15
- const timescale = 1000000;
16
- const createMatroskaMedia = async ({ writer, onBytesProgress, onMillisecondsProgress, filename, logLevel, progressTracker, }) => {
17
- var _a, _b, _c, _d, _e, _f, _g;
18
- const header = (0, matroska_header_1.makeMatroskaHeader)();
19
- const w = await writer.createContent({ filename, mimeType: 'video/webm' });
20
- await w.write(header.bytes);
21
- const matroskaInfo = (0, matroska_info_1.makeMatroskaInfo)({
22
- timescale,
23
- });
24
- const currentTracks = [];
25
- const seeks = [];
26
- const cues = [];
27
- const trackNumbers = [];
28
- const matroskaSegment = (0, matroska_segment_1.createMatroskaSegment)([
29
- ...(0, matroska_seek_1.createMatroskaSeekHead)(seeks),
30
- matroskaInfo,
31
- ...(0, matroska_trackentry_1.makeMatroskaTracks)(currentTracks),
32
- ]);
33
- const infoSegment = matroskaSegment.offsets.children.find((o) => o.field === 'Info');
34
- const durationOffset = ((_b = (_a = infoSegment === null || infoSegment === void 0 ? void 0 : infoSegment.children.find((c) => c.field === 'Duration')) === null || _a === void 0 ? void 0 : _a.offset) !== null && _b !== void 0 ? _b : 0) +
35
- w.getWrittenByteCount();
36
- const tracksOffset = ((_d = (_c = matroskaSegment.offsets.children.find((o) => o.field === 'Tracks')) === null || _c === void 0 ? void 0 : _c.offset) !== null && _d !== void 0 ? _d : 0) + w.getWrittenByteCount();
37
- const seekHeadOffset = ((_f = (_e = matroskaSegment.offsets.children.find((o) => o.field === 'SeekHead')) === null || _e === void 0 ? void 0 : _e.offset) !== null && _f !== void 0 ? _f : 0) + w.getWrittenByteCount();
38
- const infoOffset = ((_g = infoSegment === null || infoSegment === void 0 ? void 0 : infoSegment.offset) !== null && _g !== void 0 ? _g : 0) + w.getWrittenByteCount();
39
- if (!seekHeadOffset) {
40
- throw new Error('could not get seek offset');
41
- }
42
- if (!durationOffset) {
43
- throw new Error('could not get duration offset');
44
- }
45
- if (!tracksOffset) {
46
- throw new Error('could not get tracks offset');
47
- }
48
- if (!infoOffset) {
49
- throw new Error('could not get tracks offset');
50
- }
51
- seeks.push({
52
- hexString: all_segments_1.matroskaElements.Info,
53
- byte: infoOffset - seekHeadOffset,
54
- });
55
- seeks.push({
56
- hexString: all_segments_1.matroskaElements.Tracks,
57
- byte: tracksOffset - seekHeadOffset,
58
- });
59
- const updateSeekWrite = async () => {
60
- const updatedSeek = (0, matroska_seek_1.createMatroskaSeekHead)(seeks);
61
- await w.updateDataAt(seekHeadOffset, (0, make_header_1.combineUint8Arrays)(updatedSeek.map((b) => b.bytes)));
62
- onBytesProgress(w.getWrittenByteCount());
63
- };
64
- const segmentOffset = w.getWrittenByteCount();
65
- const updateSegmentSize = async (size) => {
66
- const data = (0, ebml_1.getVariableInt)(size, matroska_segment_1.MATROSKA_SEGMENT_MIN_VINT_WIDTH);
67
- await w.updateDataAt(segmentOffset + (0, make_header_1.matroskaToHex)(all_segments_1.matroskaElements.Segment).byteLength, data);
68
- onBytesProgress(w.getWrittenByteCount());
69
- };
70
- await w.write(matroskaSegment.bytes);
71
- const clusterOffset = w.getWrittenByteCount();
72
- let currentCluster = await (0, cluster_1.makeCluster)({
73
- writer: w,
74
- clusterStartTimestamp: 0,
75
- timescale,
76
- logLevel,
77
- });
78
- seeks.push({
79
- hexString: all_segments_1.matroskaElements.Cluster,
80
- byte: clusterOffset - seekHeadOffset,
81
- });
82
- const getClusterOrMakeNew = async ({ chunk, isVideo, }) => {
83
- // In Safari, samples can arrive out of order, e.g public/bigbuckbunny.mp4
84
- // Therefore, only updating track number progress if it is a keyframe
85
- // to allow for timestamps to be lower than the previous one
86
- const smallestProgress = progressTracker.getSmallestProgress();
87
- if (!currentCluster.shouldMakeNewCluster({
88
- newT: smallestProgress,
89
- isVideo,
90
- chunk,
91
- })) {
92
- return { cluster: currentCluster, isNew: false, smallestProgress };
93
- }
94
- currentCluster = await (0, cluster_1.makeCluster)({
95
- writer: w,
96
- clusterStartTimestamp: smallestProgress,
97
- timescale,
98
- logLevel,
99
- });
100
- return { cluster: currentCluster, isNew: true, smallestProgress };
101
- };
102
- const updateDuration = async (newDuration) => {
103
- const blocks = (0, make_duration_with_padding_1.makeDurationWithPadding)(newDuration);
104
- await w.updateDataAt(durationOffset, blocks.bytes);
105
- onBytesProgress(w.getWrittenByteCount());
106
- };
107
- const addSample = async ({ chunk, trackNumber, isVideo, }) => {
108
- var _a;
109
- const { cluster, isNew, smallestProgress } = await getClusterOrMakeNew({
110
- chunk,
111
- isVideo,
112
- });
113
- const newDuration = Math.round((chunk.timestamp + ((_a = chunk.duration) !== null && _a !== void 0 ? _a : 0)) / 1000);
114
- await updateDuration(newDuration);
115
- const { timecodeRelativeToCluster } = await cluster.addSample(chunk, trackNumber);
116
- if (isNew) {
117
- const newCluster = w.getWrittenByteCount();
118
- cues.push({
119
- time: (0, cluster_1.timestampToClusterTimestamp)(smallestProgress, timescale) +
120
- timecodeRelativeToCluster,
121
- clusterPosition: newCluster - seekHeadOffset,
122
- trackNumber,
123
- });
124
- }
125
- if (chunk.type === 'key') {
126
- progressTracker.updateTrackProgress(trackNumber, chunk.timestamp);
127
- }
128
- onBytesProgress(w.getWrittenByteCount());
129
- onMillisecondsProgress(newDuration);
130
- };
131
- const addTrack = async (track) => {
132
- currentTracks.push(track);
133
- const newTracks = (0, matroska_trackentry_1.makeMatroskaTracks)(currentTracks);
134
- progressTracker.registerTrack(track.trackNumber);
135
- await w.updateDataAt(tracksOffset, (0, make_header_1.combineUint8Arrays)(newTracks.map((b) => b.bytes)));
136
- };
137
- const operationProm = { current: Promise.resolve() };
138
- const waitForFinishPromises = [];
139
- return {
140
- updateTrackSampleRate: ({ sampleRate, trackNumber }) => {
141
- currentTracks.forEach((track) => {
142
- if (track.trackNumber === trackNumber) {
143
- if (track.type !== 'audio') {
144
- throw new Error('track is not audio');
145
- }
146
- track.sampleRate = sampleRate;
147
- }
148
- });
149
- },
150
- save: () => {
151
- return w.save();
152
- },
153
- remove: async () => {
154
- await w.remove();
155
- },
156
- addSample: ({ chunk, trackNumber, isVideo }) => {
157
- operationProm.current = operationProm.current.then(() => addSample({ chunk, trackNumber, isVideo }));
158
- return operationProm.current;
159
- },
160
- addTrack: (track) => {
161
- const trackNumber = currentTracks.length + 1;
162
- operationProm.current = operationProm.current.then(() => addTrack({ ...track, trackNumber }));
163
- trackNumbers.push(trackNumber);
164
- return operationProm.current.then(() => ({ trackNumber }));
165
- },
166
- addWaitForFinishPromise: (promise) => {
167
- waitForFinishPromises.push(promise);
168
- },
169
- async waitForFinish() {
170
- await Promise.all(waitForFinishPromises.map((p) => p()));
171
- await operationProm.current;
172
- seeks.push({
173
- hexString: all_segments_1.matroskaElements.Cues,
174
- byte: w.getWrittenByteCount() - seekHeadOffset,
175
- });
176
- await updateSeekWrite();
177
- await w.write((0, matroska_cues_1.createMatroskaCues)(cues).bytes);
178
- await w.waitForFinish();
179
- const segmentSize = w.getWrittenByteCount() -
180
- segmentOffset -
181
- (0, make_header_1.matroskaToHex)(all_segments_1.matroskaElements.Segment).byteLength -
182
- matroska_segment_1.MATROSKA_SEGMENT_MIN_VINT_WIDTH;
183
- await updateSegmentSize(segmentSize);
184
- },
185
- };
186
- };
187
- exports.createMatroskaMedia = createMatroskaMedia;
@@ -1 +0,0 @@
1
- export declare const makeDurationWithPadding: (newDuration: number) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeDurationWithPadding = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- const makeDurationWithPadding = (newDuration) => {
6
- return (0, make_header_1.makeMatroskaBytes)({
7
- type: 'Duration',
8
- value: {
9
- value: newDuration,
10
- size: '64',
11
- },
12
- minVintWidth: 8,
13
- });
14
- };
15
- exports.makeDurationWithPadding = makeDurationWithPadding;
@@ -1,6 +0,0 @@
1
- export type Cue = {
2
- time: number;
3
- clusterPosition: number;
4
- trackNumber: number;
5
- };
6
- export declare const createMatroskaCues: (cues: Cue[]) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMatroskaCues = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- const createMatroskaCues = (cues) => {
6
- return (0, make_header_1.makeMatroskaBytes)({
7
- type: 'Cues',
8
- minVintWidth: null,
9
- value: cues.map((cue) => {
10
- return {
11
- type: 'CuePoint',
12
- value: [
13
- {
14
- type: 'CueTime',
15
- minVintWidth: null,
16
- value: {
17
- value: cue.time,
18
- byteLength: null,
19
- },
20
- },
21
- {
22
- type: 'CueTrackPositions',
23
- value: [
24
- {
25
- type: 'CueTrack',
26
- minVintWidth: null,
27
- value: {
28
- value: cue.trackNumber,
29
- byteLength: null,
30
- },
31
- },
32
- {
33
- type: 'CueClusterPosition',
34
- minVintWidth: null,
35
- value: {
36
- value: cue.clusterPosition,
37
- byteLength: null,
38
- },
39
- },
40
- ],
41
- minVintWidth: null,
42
- },
43
- ],
44
- minVintWidth: null,
45
- };
46
- }),
47
- });
48
- };
49
- exports.createMatroskaCues = createMatroskaCues;
@@ -1 +0,0 @@
1
- export declare const makeMatroskaHeader: () => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeMatroskaHeader = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- const makeMatroskaHeader = () => {
6
- return (0, make_header_1.makeMatroskaBytes)({
7
- type: 'Header',
8
- value: [
9
- {
10
- minVintWidth: null,
11
- type: 'EBMLVersion',
12
- value: {
13
- value: 1,
14
- byteLength: null,
15
- },
16
- },
17
- {
18
- minVintWidth: null,
19
- type: 'EBMLReadVersion',
20
- value: {
21
- value: 1,
22
- byteLength: null,
23
- },
24
- },
25
- {
26
- type: 'EBMLMaxIDLength',
27
- value: {
28
- byteLength: null,
29
- value: 4,
30
- },
31
- minVintWidth: null,
32
- },
33
- {
34
- type: 'EBMLMaxSizeLength',
35
- value: {
36
- byteLength: null,
37
- value: 8,
38
- },
39
- minVintWidth: null,
40
- },
41
- {
42
- type: 'DocType',
43
- value: 'webm',
44
- minVintWidth: null,
45
- },
46
- {
47
- type: 'DocTypeVersion',
48
- value: {
49
- byteLength: null,
50
- value: 4,
51
- },
52
- minVintWidth: null,
53
- },
54
- {
55
- type: 'DocTypeReadVersion',
56
- value: {
57
- byteLength: null,
58
- value: 2,
59
- },
60
- minVintWidth: null,
61
- },
62
- ],
63
- minVintWidth: null,
64
- });
65
- };
66
- exports.makeMatroskaHeader = makeMatroskaHeader;
@@ -1,3 +0,0 @@
1
- export declare const makeMatroskaInfo: ({ timescale }: {
2
- timescale: number;
3
- }) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeMatroskaInfo = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- const make_duration_with_padding_1 = require("./make-duration-with-padding");
6
- const makeMatroskaInfo = ({ timescale }) => {
7
- return (0, make_header_1.makeMatroskaBytes)({
8
- type: 'Info',
9
- value: [
10
- {
11
- type: 'TimestampScale',
12
- value: {
13
- value: timescale,
14
- byteLength: null,
15
- },
16
- minVintWidth: null,
17
- },
18
- {
19
- type: 'MuxingApp',
20
- value: '@remotion/media-parser',
21
- minVintWidth: null,
22
- },
23
- {
24
- type: 'WritingApp',
25
- value: '@remotion/media-parser',
26
- minVintWidth: null,
27
- },
28
- (0, make_duration_with_padding_1.makeDurationWithPadding)(0),
29
- ],
30
- minVintWidth: null,
31
- });
32
- };
33
- exports.makeMatroskaInfo = makeMatroskaInfo;
@@ -1,6 +0,0 @@
1
- import type { MatroskaElement } from '../../boxes/webm/segments/all-segments';
2
- export type Seek = {
3
- hexString: MatroskaElement;
4
- byte: number;
5
- };
6
- export declare const createMatroskaSeekHead: (seeks: Seek[]) => import("../../boxes/webm/segments/all-segments").BytesAndOffset[];
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMatroskaSeekHead = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- const createMatroskaSeekHead = (seeks) => {
6
- return (0, make_header_1.padMatroskaBytes)((0, make_header_1.makeMatroskaBytes)({
7
- type: 'SeekHead',
8
- minVintWidth: null,
9
- value: seeks.map((seek) => {
10
- return {
11
- type: 'Seek',
12
- minVintWidth: null,
13
- value: [
14
- {
15
- type: 'SeekID',
16
- minVintWidth: null,
17
- value: seek.hexString,
18
- },
19
- {
20
- type: 'SeekPosition',
21
- minVintWidth: null,
22
- value: {
23
- value: seek.byte,
24
- byteLength: null,
25
- },
26
- },
27
- ],
28
- };
29
- }),
30
- }), 200);
31
- };
32
- exports.createMatroskaSeekHead = createMatroskaSeekHead;
@@ -1,3 +0,0 @@
1
- import type { BytesAndOffset } from '../../boxes/webm/segments/all-segments';
2
- export declare const MATROSKA_SEGMENT_MIN_VINT_WIDTH = 8;
3
- export declare const createMatroskaSegment: (children: BytesAndOffset[]) => BytesAndOffset;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMatroskaSegment = exports.MATROSKA_SEGMENT_MIN_VINT_WIDTH = void 0;
4
- const make_header_1 = require("../../boxes/webm/make-header");
5
- exports.MATROSKA_SEGMENT_MIN_VINT_WIDTH = 8;
6
- const createMatroskaSegment = (children) => {
7
- return (0, make_header_1.makeMatroskaBytes)({
8
- type: 'Segment',
9
- value: children,
10
- minVintWidth: exports.MATROSKA_SEGMENT_MIN_VINT_WIDTH,
11
- });
12
- };
13
- exports.createMatroskaSegment = createMatroskaSegment;
@@ -1,10 +0,0 @@
1
- import type { VideoTrackColorParams } from '../../get-tracks';
2
- import type { MakeTrackAudio, MakeTrackVideo } from '../make-track-info';
3
- export declare const makeMatroskaVideoBytes: ({ color, width, height, }: {
4
- color: VideoTrackColorParams;
5
- width: number;
6
- height: number;
7
- }) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
8
- export declare const makeMatroskaAudioTrackEntryBytes: ({ trackNumber, codec, numberOfChannels, sampleRate, codecPrivate, }: MakeTrackAudio) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
9
- export declare const makeMatroskaVideoTrackEntryBytes: ({ color, width, height, trackNumber, codec, codecPrivate, }: MakeTrackVideo) => import("../../boxes/webm/segments/all-segments").BytesAndOffset;
10
- export declare const makeMatroskaTracks: (tracks: (MakeTrackAudio | MakeTrackVideo)[]) => import("../../boxes/webm/segments/all-segments").BytesAndOffset[];