@remotion/media-parser 4.0.256 → 4.0.258

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,320 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseSamples = exports.processSample = void 0;
4
- const process_box_1 = require("../process-box");
5
- // https://developer.apple.com/documentation/quicktime-file-format/video_sample_description
6
- const videoTags = [
7
- 'cvid',
8
- 'jpeg',
9
- 'smc ',
10
- 'rle ',
11
- 'rpza',
12
- 'kpcd',
13
- 'png ',
14
- 'mjpa',
15
- 'mjpb',
16
- 'SVQ1',
17
- 'SVQ3',
18
- 'mp4v',
19
- 'avc1',
20
- 'dvc ',
21
- 'dvcp',
22
- 'gif ',
23
- 'h263',
24
- 'tiff',
25
- 'raw ',
26
- '2vuY',
27
- 'yuv2',
28
- 'v308',
29
- 'v408',
30
- 'v216',
31
- 'v410',
32
- 'v210',
33
- 'hvc1',
34
- 'ap4h',
35
- 'av01',
36
- ];
37
- // https://developer.apple.com/documentation/quicktime-file-format/sound_sample_descriptions
38
- const audioTags = [
39
- 0x00000000,
40
- 'NONE',
41
- 'raw ',
42
- 'twos',
43
- 'sowt',
44
- 'MAC3 ',
45
- 'MAC6 ',
46
- 'ima4',
47
- 'fl32',
48
- 'lpcm',
49
- 'fl64',
50
- 'in24',
51
- 'in32',
52
- 'ulaw',
53
- 'alaw',
54
- 0x6d730002,
55
- 0x6d730011,
56
- 'dvca',
57
- 'QDMC',
58
- 'QDM2',
59
- 'Qclp',
60
- 0x6d730055,
61
- '.mp3',
62
- 'mp4a',
63
- 'ac-3',
64
- ];
65
- const processSample = async ({ iterator, options, signal, logLevel, fields, }) => {
66
- const fileOffset = iterator.counter.getOffset();
67
- const bytesRemaining = iterator.bytesRemaining();
68
- const boxSize = iterator.getUint32();
69
- if (bytesRemaining < boxSize) {
70
- throw new Error(`Expected box size of ${bytesRemaining}, got ${boxSize}`);
71
- }
72
- const boxFormat = iterator.getAtom();
73
- const isVideo = videoTags.includes(boxFormat);
74
- const isAudio = audioTags.includes(boxFormat) || audioTags.includes(Number(boxFormat));
75
- // 6 reserved bytes
76
- iterator.discard(6);
77
- const dataReferenceIndex = iterator.getUint16();
78
- if (!isVideo && !isAudio) {
79
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
80
- iterator.discard(bytesRemainingInBox);
81
- return {
82
- sample: {
83
- type: 'unknown',
84
- offset: fileOffset,
85
- dataReferenceIndex,
86
- size: boxSize,
87
- format: boxFormat,
88
- },
89
- };
90
- }
91
- if (isAudio) {
92
- const version = iterator.getUint16();
93
- const revisionLevel = iterator.getUint16();
94
- const vendor = iterator.getSlice(4);
95
- if (version === 0) {
96
- const numberOfChannels = iterator.getUint16();
97
- const sampleSize = iterator.getUint16();
98
- const compressionId = iterator.getUint16();
99
- const packetSize = iterator.getUint16();
100
- const sampleRate = iterator.getFixedPointUnsigned1616Number();
101
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
102
- const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
103
- iterator,
104
- allowIncompleteBoxes: false,
105
- maxBytes: bytesRemainingInBox,
106
- initialBoxes: [],
107
- options,
108
- continueMdat: false,
109
- signal,
110
- logLevel,
111
- fields,
112
- });
113
- if (children.status === 'incomplete') {
114
- throw new Error('Incomplete boxes are not allowed');
115
- }
116
- return {
117
- sample: {
118
- format: boxFormat,
119
- offset: fileOffset,
120
- dataReferenceIndex,
121
- version,
122
- revisionLevel,
123
- vendor: [...Array.from(new Uint8Array(vendor))],
124
- size: boxSize,
125
- type: 'audio',
126
- numberOfChannels,
127
- sampleSize,
128
- compressionId,
129
- packetSize,
130
- sampleRate,
131
- samplesPerPacket: null,
132
- bytesPerPacket: null,
133
- bytesPerFrame: null,
134
- bitsPerSample: null,
135
- children: children.segments.boxes,
136
- },
137
- };
138
- }
139
- if (version === 1) {
140
- const numberOfChannels = iterator.getUint16();
141
- const sampleSize = iterator.getUint16();
142
- const compressionId = iterator.getInt16();
143
- const packetSize = iterator.getUint16();
144
- const sampleRate = iterator.getFixedPointUnsigned1616Number();
145
- const samplesPerPacket = iterator.getUint32();
146
- const bytesPerPacket = iterator.getUint32();
147
- const bytesPerFrame = iterator.getUint32();
148
- const bytesPerSample = iterator.getUint32();
149
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
150
- const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
151
- iterator,
152
- allowIncompleteBoxes: false,
153
- maxBytes: bytesRemainingInBox,
154
- initialBoxes: [],
155
- options,
156
- continueMdat: false,
157
- signal,
158
- logLevel,
159
- fields,
160
- });
161
- if (children.status === 'incomplete') {
162
- throw new Error('Incomplete boxes are not allowed');
163
- }
164
- return {
165
- sample: {
166
- format: boxFormat,
167
- offset: fileOffset,
168
- dataReferenceIndex,
169
- version,
170
- revisionLevel,
171
- vendor: [...Array.from(new Uint8Array(vendor))],
172
- size: boxSize,
173
- type: 'audio',
174
- numberOfChannels,
175
- sampleSize,
176
- compressionId,
177
- packetSize,
178
- sampleRate,
179
- samplesPerPacket,
180
- bytesPerPacket,
181
- bytesPerFrame,
182
- bitsPerSample: bytesPerSample,
183
- children: children.segments.boxes,
184
- },
185
- };
186
- }
187
- if (version === 2) {
188
- iterator.getUint16(); // always 3
189
- const sampleSize = iterator.getUint16();
190
- const compressionId = iterator.getUint16();
191
- const packetSize = iterator.getUint16();
192
- iterator.getFixedPointUnsigned1616Number(); // LQ sample rate;
193
- iterator.getUint32(); // ignore
194
- const higherSampleRate = iterator.getFloat64();
195
- const numAudioChannel = iterator.getUint32(); // ignore;
196
- iterator.getUint32(); // ignore, always 0x7F000000?
197
- const bitsPerChannel = iterator.getUint32();
198
- iterator.getUint32(); // ignore;
199
- const bytesPerFrame = iterator.getUint32();
200
- const samplesPerPacket = iterator.getUint32();
201
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
202
- const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
203
- iterator,
204
- allowIncompleteBoxes: false,
205
- maxBytes: bytesRemainingInBox,
206
- initialBoxes: [],
207
- options,
208
- continueMdat: false,
209
- signal,
210
- logLevel,
211
- fields,
212
- });
213
- if (children.status === 'incomplete') {
214
- throw new Error('Incomplete boxes are not allowed');
215
- }
216
- return {
217
- sample: {
218
- format: boxFormat,
219
- offset: fileOffset,
220
- dataReferenceIndex,
221
- version,
222
- revisionLevel,
223
- vendor: [...Array.from(new Uint8Array(vendor))],
224
- size: boxSize,
225
- type: 'audio',
226
- numberOfChannels: numAudioChannel,
227
- sampleSize,
228
- compressionId,
229
- packetSize,
230
- sampleRate: higherSampleRate,
231
- samplesPerPacket,
232
- bytesPerPacket: null,
233
- bytesPerFrame,
234
- bitsPerSample: bitsPerChannel,
235
- children: children.segments.boxes,
236
- },
237
- };
238
- }
239
- throw new Error(`Unsupported version ${version}`);
240
- }
241
- if (isVideo) {
242
- const version = iterator.getUint16();
243
- const revisionLevel = iterator.getUint16();
244
- const vendor = iterator.getSlice(4);
245
- const temporalQuality = iterator.getUint32();
246
- const spacialQuality = iterator.getUint32();
247
- const width = iterator.getUint16();
248
- const height = iterator.getUint16();
249
- const horizontalResolution = iterator.getFixedPointUnsigned1616Number();
250
- const verticalResolution = iterator.getFixedPointUnsigned1616Number();
251
- const dataSize = iterator.getUint32();
252
- const frameCountPerSample = iterator.getUint16();
253
- const compressorName = iterator.getPascalString();
254
- const depth = iterator.getUint16();
255
- const colorTableId = iterator.getInt16();
256
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - fileOffset);
257
- const children = bytesRemainingInBox > 8
258
- ? await (0, process_box_1.parseIsoBaseMediaBoxes)({
259
- iterator,
260
- allowIncompleteBoxes: false,
261
- maxBytes: bytesRemainingInBox,
262
- initialBoxes: [],
263
- options,
264
- continueMdat: false,
265
- signal,
266
- logLevel,
267
- fields,
268
- })
269
- : (iterator.discard(bytesRemainingInBox),
270
- { status: 'done', segments: { boxes: [], type: 'iso-base-media' } });
271
- if (children.status === 'incomplete') {
272
- throw new Error('Incomplete boxes are not allowed');
273
- }
274
- return {
275
- sample: {
276
- format: boxFormat,
277
- offset: fileOffset,
278
- dataReferenceIndex,
279
- version,
280
- revisionLevel,
281
- vendor: [...Array.from(new Uint8Array(vendor))],
282
- size: boxSize,
283
- type: 'video',
284
- width,
285
- height,
286
- horizontalResolutionPpi: horizontalResolution,
287
- verticalResolutionPpi: verticalResolution,
288
- spacialQuality,
289
- temporalQuality,
290
- dataSize,
291
- frameCountPerSample,
292
- compressorName,
293
- depth,
294
- colorTableId,
295
- descriptors: children.segments.boxes,
296
- },
297
- };
298
- }
299
- throw new Error(`Unknown sample format ${boxFormat}`);
300
- };
301
- exports.processSample = processSample;
302
- const parseSamples = async ({ iterator, maxBytes, options, signal, logLevel, fields, }) => {
303
- const samples = [];
304
- const initialOffset = iterator.counter.getOffset();
305
- while (iterator.bytesRemaining() > 0 &&
306
- iterator.counter.getOffset() - initialOffset < maxBytes) {
307
- const { sample } = await (0, exports.processSample)({
308
- iterator,
309
- options,
310
- signal,
311
- logLevel,
312
- fields,
313
- });
314
- if (sample) {
315
- samples.push(sample);
316
- }
317
- }
318
- return samples;
319
- };
320
- exports.parseSamples = parseSamples;
@@ -1,15 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { BaseBox } from '../base-type';
3
- export interface StcoBox extends BaseBox {
4
- type: 'stco-box';
5
- version: number;
6
- flags: number[];
7
- entryCount: number;
8
- entries: (number | bigint)[];
9
- }
10
- export declare const parseStco: ({ iterator, offset, size, mode64Bit, }: {
11
- iterator: BufferIterator;
12
- offset: number;
13
- size: number;
14
- mode64Bit: boolean;
15
- }) => StcoBox;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStco = void 0;
4
- const parseStco = ({ iterator, offset, size, mode64Bit, }) => {
5
- const version = iterator.getUint8();
6
- if (version !== 0) {
7
- throw new Error(`Unsupported STSD version ${version}`);
8
- }
9
- const flags = iterator.getSlice(3);
10
- const entryCount = iterator.getUint32();
11
- const entries = [];
12
- for (let i = 0; i < entryCount; i++) {
13
- const bytesRemaining = size - (iterator.counter.getOffset() - offset);
14
- if (bytesRemaining < 4) {
15
- break;
16
- }
17
- entries.push(mode64Bit ? iterator.getUint64() : iterator.getUint32());
18
- }
19
- iterator.discard(size - (iterator.counter.getOffset() - offset));
20
- return {
21
- type: 'stco-box',
22
- boxSize: size,
23
- offset,
24
- version,
25
- flags: [...flags],
26
- entries,
27
- entryCount,
28
- };
29
- };
30
- exports.parseStco = parseStco;
@@ -1,19 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { BaseBox } from '../base-type';
3
- type StscEntry = {
4
- firstChunk: number;
5
- samplesPerChunk: number;
6
- };
7
- export interface StscBox extends BaseBox {
8
- type: 'stsc-box';
9
- version: number;
10
- flags: number[];
11
- entryCount: number;
12
- entries: StscEntry[];
13
- }
14
- export declare const parseStsc: ({ iterator, offset, size, }: {
15
- iterator: BufferIterator;
16
- offset: number;
17
- size: number;
18
- }) => StscBox;
19
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStsc = void 0;
4
- const parseStsc = ({ iterator, offset, size, }) => {
5
- const version = iterator.getUint8();
6
- if (version !== 0) {
7
- throw new Error(`Unsupported STSD version ${version}`);
8
- }
9
- const flags = iterator.getSlice(3);
10
- const entryCount = iterator.getUint32();
11
- const entries = [];
12
- for (let i = 0; i < entryCount; i++) {
13
- const firstChunk = iterator.getUint32();
14
- const samplesPerChunk = iterator.getUint32();
15
- const sampleDescriptionIndex = iterator.getUint32();
16
- if (sampleDescriptionIndex !== 1) {
17
- throw new Error(`Expected sampleDescriptionIndex to be 1, but got ${sampleDescriptionIndex}`);
18
- }
19
- entries.push({
20
- firstChunk,
21
- samplesPerChunk,
22
- });
23
- }
24
- return {
25
- type: 'stsc-box',
26
- boxSize: size,
27
- offset,
28
- version,
29
- flags: [...flags],
30
- entryCount,
31
- entries,
32
- };
33
- };
34
- exports.parseStsc = parseStsc;
@@ -1,18 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { Options, ParseMediaFields } from '../../../options';
3
- import type { ParserContext } from '../../../parser-context';
4
- import type { BaseBox } from '../base-type';
5
- import type { Sample } from './samples';
6
- export interface StsdBox extends BaseBox {
7
- type: 'stsd-box';
8
- numberOfEntries: number;
9
- samples: Sample[];
10
- }
11
- export declare const parseStsd: ({ iterator, offset, size, options, signal, fields, }: {
12
- iterator: BufferIterator;
13
- offset: number;
14
- size: number;
15
- options: ParserContext;
16
- signal: AbortSignal | null;
17
- fields: Options<ParseMediaFields>;
18
- }) => Promise<StsdBox>;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStsd = void 0;
4
- const samples_1 = require("./samples");
5
- const parseStsd = async ({ iterator, offset, size, options, signal, fields, }) => {
6
- const version = iterator.getUint8();
7
- if (version !== 0) {
8
- throw new Error(`Unsupported STSD version ${version}`);
9
- }
10
- // flags, we discard them
11
- iterator.discard(3);
12
- const numberOfEntries = iterator.getUint32();
13
- const bytesRemainingInBox = size - (iterator.counter.getOffset() - offset);
14
- const boxes = await (0, samples_1.parseSamples)({
15
- iterator,
16
- maxBytes: bytesRemainingInBox,
17
- options,
18
- signal,
19
- logLevel: 'info',
20
- fields,
21
- });
22
- if (boxes.length !== numberOfEntries) {
23
- throw new Error(`Expected ${numberOfEntries} sample descriptions, got ${boxes.length}`);
24
- }
25
- return {
26
- type: 'stsd-box',
27
- boxSize: size,
28
- offset,
29
- numberOfEntries,
30
- samples: boxes,
31
- };
32
- };
33
- exports.parseStsd = parseStsd;
@@ -1,13 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { BaseBox } from '../base-type';
3
- export interface StssBox extends BaseBox {
4
- type: 'stss-box';
5
- version: number;
6
- flags: number[];
7
- sampleNumber: number[];
8
- }
9
- export declare const parseStss: ({ iterator, offset, boxSize, }: {
10
- iterator: BufferIterator;
11
- offset: number;
12
- boxSize: number;
13
- }) => StssBox;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStss = void 0;
4
- const parseStss = ({ iterator, offset, boxSize, }) => {
5
- const version = iterator.getUint8();
6
- if (version !== 0) {
7
- throw new Error(`Unsupported STSS version ${version}`);
8
- }
9
- const flags = iterator.getSlice(3);
10
- const sampleCount = iterator.getUint32();
11
- const sampleNumber = [];
12
- for (let i = 0; i < sampleCount; i++) {
13
- sampleNumber.push(iterator.getUint32());
14
- }
15
- const bytesRemainingInBox = boxSize - (iterator.counter.getOffset() - offset);
16
- if (bytesRemainingInBox > 0) {
17
- throw new Error(`Unexpected bytes remaining in box stss`);
18
- }
19
- return {
20
- type: 'stss-box',
21
- version,
22
- flags: [...flags],
23
- sampleNumber,
24
- boxSize,
25
- offset,
26
- };
27
- };
28
- exports.parseStss = parseStss;
@@ -1,21 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- import type { BaseBox } from '../base-type';
3
- type Discriminated = {
4
- countType: 'fixed';
5
- sampleSize: number;
6
- } | {
7
- countType: 'variable';
8
- entries: number[];
9
- };
10
- export type StszBox = BaseBox & {
11
- type: 'stsz-box';
12
- version: number;
13
- flags: number[];
14
- sampleCount: number;
15
- } & Discriminated;
16
- export declare const parseStsz: ({ iterator, offset, size, }: {
17
- iterator: BufferIterator;
18
- offset: number;
19
- size: number;
20
- }) => StszBox;
21
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStsz = void 0;
4
- const parseStsz = ({ iterator, offset, size, }) => {
5
- const version = iterator.getUint8();
6
- if (version !== 0) {
7
- throw new Error(`Unsupported STSD version ${version}`);
8
- }
9
- const flags = iterator.getSlice(3);
10
- const sampleSize = iterator.getUint32();
11
- const sampleCount = iterator.getUint32();
12
- if (sampleSize !== 0) {
13
- return {
14
- type: 'stsz-box',
15
- boxSize: size,
16
- offset,
17
- version,
18
- flags: [...flags],
19
- sampleCount,
20
- countType: 'fixed',
21
- sampleSize,
22
- };
23
- }
24
- const samples = [];
25
- for (let i = 0; i < sampleCount; i++) {
26
- const bytesRemaining = size - (iterator.counter.getOffset() - offset);
27
- if (bytesRemaining < 4) {
28
- break;
29
- }
30
- samples.push(iterator.getUint32());
31
- }
32
- iterator.discard(size - (iterator.counter.getOffset() - offset));
33
- return {
34
- type: 'stsz-box',
35
- boxSize: size,
36
- offset,
37
- version,
38
- flags: [...flags],
39
- sampleCount,
40
- countType: 'variable',
41
- entries: samples,
42
- };
43
- };
44
- exports.parseStsz = parseStsz;
@@ -1,15 +0,0 @@
1
- import type { BufferIterator } from '../../../buffer-iterator';
2
- export interface SttsBox {
3
- type: 'stts-box';
4
- sampleDistribution: SampleDistribution[];
5
- }
6
- type SampleDistribution = {
7
- sampleCount: number;
8
- sampleDelta: number;
9
- };
10
- export declare const parseStts: ({ data, size, fileOffset, }: {
11
- data: BufferIterator;
12
- size: number;
13
- fileOffset: number;
14
- }) => SttsBox;
15
- export {};
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStts = void 0;
4
- const parseStts = ({ data, size, fileOffset, }) => {
5
- const initialOffset = data.counter.getOffset();
6
- const initialCounter = initialOffset - fileOffset;
7
- const version = data.getUint8();
8
- if (version !== 0) {
9
- throw new Error(`Unsupported STTS version ${version}`);
10
- }
11
- // flags, we discard them
12
- data.discard(3);
13
- // entry count
14
- const entryCount = data.getUint32();
15
- const sampleDistributions = [];
16
- // entries
17
- for (let i = 0; i < entryCount; i++) {
18
- const sampleCount = data.getUint32();
19
- const sampleDelta = data.getUint32();
20
- const sampleDistribution = {
21
- sampleCount,
22
- sampleDelta,
23
- };
24
- sampleDistributions.push(sampleDistribution);
25
- }
26
- const bytesUsed = data.counter.getOffset() - initialOffset + initialCounter;
27
- if (bytesUsed !== size) {
28
- throw new Error(`Expected stts box to be ${size} bytes, but was ${bytesUsed} bytes`);
29
- }
30
- return {
31
- type: 'stts-box',
32
- sampleDistribution: sampleDistributions,
33
- };
34
- };
35
- exports.parseStts = parseStts;
@@ -1,12 +0,0 @@
1
- import type { BufferIterator } from '../../buffer-iterator';
2
- export interface TfdtBox {
3
- type: 'tfdt-box';
4
- version: number;
5
- baseMediaDecodeTime: number;
6
- offset: number;
7
- }
8
- export declare const parseTfdt: ({ iterator, size, offset, }: {
9
- iterator: BufferIterator;
10
- size: number;
11
- offset: number;
12
- }) => TfdtBox;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseTfdt = void 0;
4
- const parseTfdt = ({ iterator, size, offset, }) => {
5
- const version = iterator.getUint8();
6
- iterator.discard(3);
7
- // Flags, discard them
8
- const num = version === 0 ? iterator.getUint32() : Number(iterator.getUint64());
9
- const bytesRemaining = size - (iterator.counter.getOffset() - offset);
10
- if (bytesRemaining !== 0) {
11
- throw new Error('expected 0 bytes ' + bytesRemaining);
12
- }
13
- return {
14
- type: 'tfdt-box',
15
- version,
16
- baseMediaDecodeTime: num,
17
- offset,
18
- };
19
- };
20
- exports.parseTfdt = parseTfdt;
@@ -1,16 +0,0 @@
1
- import type { BufferIterator } from '../../buffer-iterator';
2
- export interface TfhdBox {
3
- type: 'tfhd-box';
4
- version: number;
5
- trackId: number;
6
- baseDataOffset: number;
7
- baseSampleDescriptionIndex: number;
8
- defaultSampleDuration: number;
9
- defaultSampleSize: number;
10
- defaultSampleFlags: number;
11
- }
12
- export declare const getTfhd: ({ iterator, offset, size, }: {
13
- iterator: BufferIterator;
14
- size: number;
15
- offset: number;
16
- }) => TfhdBox;