@remotion/media-parser 4.0.254 → 4.0.256

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/add-new-matroska-tracks.d.ts +8 -0
  2. package/dist/add-new-matroska-tracks.js +14 -0
  3. package/dist/boxes/avc/parse-avc.d.ts +18 -0
  4. package/dist/boxes/avc/parse-avc.js +96 -0
  5. package/dist/boxes/iso-base-media/base-type.d.ts +4 -0
  6. package/dist/boxes/iso-base-media/base-type.js +2 -0
  7. package/dist/boxes/iso-base-media/esds/decoder-specific-config.d.ts +14 -0
  8. package/dist/boxes/iso-base-media/esds/decoder-specific-config.js +38 -0
  9. package/dist/boxes/iso-base-media/esds/esds-descriptors.d.ts +29 -0
  10. package/dist/boxes/iso-base-media/esds/esds-descriptors.js +82 -0
  11. package/dist/boxes/iso-base-media/esds/esds.d.ts +15 -0
  12. package/dist/boxes/iso-base-media/esds/esds.js +27 -0
  13. package/dist/boxes/iso-base-media/ftyp.d.ts +13 -0
  14. package/dist/boxes/iso-base-media/ftyp.js +22 -0
  15. package/dist/boxes/iso-base-media/get-actual-number-of-channels.d.ts +13 -0
  16. package/dist/boxes/iso-base-media/get-actual-number-of-channels.js +22 -0
  17. package/dist/boxes/iso-base-media/get-sample-positions-from-track.d.ts +4 -0
  18. package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +54 -0
  19. package/dist/boxes/iso-base-media/make-track.d.ts +3 -0
  20. package/dist/boxes/iso-base-media/make-track.js +107 -0
  21. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +25 -0
  22. package/dist/boxes/iso-base-media/mdat/mdat.js +122 -0
  23. package/dist/boxes/iso-base-media/mdhd.d.ts +16 -0
  24. package/dist/boxes/iso-base-media/mdhd.js +32 -0
  25. package/dist/boxes/iso-base-media/meta/hdlr.d.ts +12 -0
  26. package/dist/boxes/iso-base-media/meta/hdlr.js +33 -0
  27. package/dist/boxes/iso-base-media/meta/ilst.d.ts +28 -0
  28. package/dist/boxes/iso-base-media/meta/ilst.js +86 -0
  29. package/dist/boxes/iso-base-media/moov/moov.d.ts +19 -0
  30. package/dist/boxes/iso-base-media/moov/moov.js +27 -0
  31. package/dist/boxes/iso-base-media/mvhd.d.ts +30 -0
  32. package/dist/boxes/iso-base-media/mvhd.js +65 -0
  33. package/dist/boxes/iso-base-media/parse-icc-profile.d.ts +36 -0
  34. package/dist/boxes/iso-base-media/parse-icc-profile.js +115 -0
  35. package/dist/boxes/iso-base-media/process-box.d.ts +34 -0
  36. package/dist/boxes/iso-base-media/process-box.js +710 -0
  37. package/dist/boxes/iso-base-media/stsd/av1c.d.ts +9 -0
  38. package/dist/boxes/iso-base-media/stsd/av1c.js +10 -0
  39. package/dist/boxes/iso-base-media/stsd/avcc.d.ts +10 -0
  40. package/dist/boxes/iso-base-media/stsd/avcc.js +21 -0
  41. package/dist/boxes/iso-base-media/stsd/colr.d.ts +21 -0
  42. package/dist/boxes/iso-base-media/stsd/colr.js +47 -0
  43. package/dist/boxes/iso-base-media/stsd/ctts.d.ts +19 -0
  44. package/dist/boxes/iso-base-media/stsd/ctts.js +34 -0
  45. package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +11 -0
  46. package/dist/boxes/iso-base-media/stsd/hvcc.js +17 -0
  47. package/dist/boxes/iso-base-media/stsd/keys.d.ts +19 -0
  48. package/dist/boxes/iso-base-media/stsd/keys.js +35 -0
  49. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +19 -0
  50. package/dist/boxes/iso-base-media/stsd/mebx.js +32 -0
  51. package/dist/boxes/iso-base-media/stsd/pasp.d.ts +12 -0
  52. package/dist/boxes/iso-base-media/stsd/pasp.js +17 -0
  53. package/dist/boxes/iso-base-media/stsd/samples.d.ts +68 -0
  54. package/dist/boxes/iso-base-media/stsd/samples.js +320 -0
  55. package/dist/boxes/iso-base-media/stsd/stco.d.ts +15 -0
  56. package/dist/boxes/iso-base-media/stsd/stco.js +30 -0
  57. package/dist/boxes/iso-base-media/stsd/stsc.d.ts +19 -0
  58. package/dist/boxes/iso-base-media/stsd/stsc.js +34 -0
  59. package/dist/boxes/iso-base-media/stsd/stsd.d.ts +18 -0
  60. package/dist/boxes/iso-base-media/stsd/stsd.js +33 -0
  61. package/dist/boxes/iso-base-media/stsd/stss.d.ts +13 -0
  62. package/dist/boxes/iso-base-media/stsd/stss.js +28 -0
  63. package/dist/boxes/iso-base-media/stsd/stsz.d.ts +21 -0
  64. package/dist/boxes/iso-base-media/stsd/stsz.js +44 -0
  65. package/dist/boxes/iso-base-media/stsd/stts.d.ts +15 -0
  66. package/dist/boxes/iso-base-media/stsd/stts.js +35 -0
  67. package/dist/boxes/iso-base-media/tfdt.d.ts +12 -0
  68. package/dist/boxes/iso-base-media/tfdt.js +20 -0
  69. package/dist/boxes/iso-base-media/tfhd.d.ts +16 -0
  70. package/dist/boxes/iso-base-media/tfhd.js +41 -0
  71. package/dist/boxes/iso-base-media/tkhd.d.ts +25 -0
  72. package/dist/boxes/iso-base-media/tkhd.js +87 -0
  73. package/dist/boxes/iso-base-media/to-date.d.ts +2 -0
  74. package/dist/boxes/iso-base-media/to-date.js +19 -0
  75. package/dist/boxes/iso-base-media/trak/trak.d.ts +19 -0
  76. package/dist/boxes/iso-base-media/trak/trak.js +27 -0
  77. package/dist/boxes/iso-base-media/traversal.d.ts +39 -0
  78. package/dist/boxes/iso-base-media/traversal.js +201 -0
  79. package/dist/boxes/iso-base-media/trun.d.ts +21 -0
  80. package/dist/boxes/iso-base-media/trun.js +44 -0
  81. package/dist/boxes/iso-base-media/void-box.d.ts +4 -0
  82. package/dist/boxes/iso-base-media/void-box.js +2 -0
  83. package/dist/boxes/riff/expect-riff-box.d.ts +17 -0
  84. package/dist/boxes/riff/expect-riff-box.js +49 -0
  85. package/dist/boxes/riff/get-tracks-from-avi.d.ts +22 -0
  86. package/dist/boxes/riff/get-tracks-from-avi.js +114 -0
  87. package/dist/boxes/riff/is-movi.d.ts +2 -0
  88. package/dist/boxes/riff/is-movi.js +12 -0
  89. package/dist/boxes/riff/parse-avih.d.ts +6 -0
  90. package/dist/boxes/riff/parse-avih.js +32 -0
  91. package/dist/boxes/riff/parse-box.d.ts +15 -0
  92. package/dist/boxes/riff/parse-box.js +146 -0
  93. package/dist/boxes/riff/parse-fmt-box.d.ts +7 -0
  94. package/dist/boxes/riff/parse-fmt-box.js +33 -0
  95. package/dist/boxes/riff/parse-isft.d.ts +6 -0
  96. package/dist/boxes/riff/parse-isft.js +17 -0
  97. package/dist/boxes/riff/parse-list-box.d.ts +8 -0
  98. package/dist/boxes/riff/parse-list-box.js +30 -0
  99. package/dist/boxes/riff/parse-movi.d.ts +17 -0
  100. package/dist/boxes/riff/parse-movi.js +133 -0
  101. package/dist/boxes/riff/parse-riff-box.d.ts +10 -0
  102. package/dist/boxes/riff/parse-riff-box.js +37 -0
  103. package/dist/boxes/riff/parse-strf.d.ts +7 -0
  104. package/dist/boxes/riff/parse-strf.js +67 -0
  105. package/dist/boxes/riff/parse-strh.d.ts +6 -0
  106. package/dist/boxes/riff/parse-strh.js +46 -0
  107. package/dist/boxes/riff/riff-box.d.ts +85 -0
  108. package/dist/boxes/riff/riff-box.js +2 -0
  109. package/dist/boxes/riff/timescale.d.ts +1 -0
  110. package/dist/boxes/riff/timescale.js +4 -0
  111. package/dist/boxes/riff/traversal.d.ts +8 -0
  112. package/dist/boxes/riff/traversal.js +36 -0
  113. package/dist/boxes/webm/allowed-partial-segments.d.ts +1 -0
  114. package/dist/boxes/webm/allowed-partial-segments.js +4 -0
  115. package/dist/boxes/webm/av1-codec-private.d.ts +2 -0
  116. package/dist/boxes/webm/av1-codec-private.js +95 -0
  117. package/dist/boxes/webm/color.d.ts +4 -0
  118. package/dist/boxes/webm/color.js +127 -0
  119. package/dist/boxes/webm/description.d.ts +2 -0
  120. package/dist/boxes/webm/description.js +83 -0
  121. package/dist/boxes/webm/ebml.d.ts +2 -0
  122. package/dist/boxes/webm/ebml.js +94 -0
  123. package/dist/boxes/webm/get-ready-tracks.d.ts +3 -0
  124. package/dist/boxes/webm/get-ready-tracks.js +29 -0
  125. package/dist/boxes/webm/get-sample-from-block.d.ts +17 -0
  126. package/dist/boxes/webm/get-sample-from-block.js +81 -0
  127. package/dist/boxes/webm/make-header.d.ts +8 -0
  128. package/dist/boxes/webm/make-header.js +187 -0
  129. package/dist/boxes/webm/make-track.d.ts +9 -0
  130. package/dist/boxes/webm/make-track.js +261 -0
  131. package/dist/boxes/webm/parse-ebml.d.ts +12 -0
  132. package/dist/boxes/webm/parse-ebml.js +185 -0
  133. package/dist/boxes/webm/parse-webm-header.d.ts +9 -0
  134. package/dist/boxes/webm/parse-webm-header.js +36 -0
  135. package/dist/boxes/webm/segments/all-segments.d.ts +976 -0
  136. package/dist/boxes/webm/segments/all-segments.js +724 -0
  137. package/dist/boxes/webm/segments/block-simple-block-flags.d.ts +9 -0
  138. package/dist/boxes/webm/segments/block-simple-block-flags.js +38 -0
  139. package/dist/boxes/webm/segments/parse-children.d.ts +23 -0
  140. package/dist/boxes/webm/segments/parse-children.js +145 -0
  141. package/dist/boxes/webm/segments/track-entry.d.ts +9 -0
  142. package/dist/boxes/webm/segments/track-entry.js +24 -0
  143. package/dist/boxes/webm/segments.d.ts +15 -0
  144. package/dist/boxes/webm/segments.js +161 -0
  145. package/dist/boxes/webm/traversal.d.ts +33 -0
  146. package/dist/boxes/webm/traversal.js +265 -0
  147. package/dist/containers/flac/get-channel-count.d.ts +1 -1
  148. package/dist/create/cluster-segment.d.ts +10 -0
  149. package/dist/create/cluster-segment.js +39 -0
  150. package/dist/create/cluster.d.ts +19 -0
  151. package/dist/create/cluster.js +55 -0
  152. package/dist/create/create-media.d.ts +15 -0
  153. package/dist/create/create-media.js +165 -0
  154. package/dist/create/event-emitter.d.ts +31 -0
  155. package/dist/create/event-emitter.js +25 -0
  156. package/dist/create/iso-base-media/codec-specific/avc1.d.ts +2 -0
  157. package/dist/create/iso-base-media/codec-specific/avc1.js +48 -0
  158. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.d.ts +22 -0
  159. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.js +36 -0
  160. package/dist/create/iso-base-media/codec-specific/mp4a.d.ts +2 -0
  161. package/dist/create/iso-base-media/codec-specific/mp4a.js +74 -0
  162. package/dist/create/iso-base-media/create-colr.d.ts +6 -0
  163. package/dist/create/iso-base-media/create-colr.js +26 -0
  164. package/dist/create/iso-base-media/create-ftyp.d.ts +10 -0
  165. package/dist/create/iso-base-media/create-ftyp.js +22 -0
  166. package/dist/create/iso-base-media/create-ilst.d.ts +1 -0
  167. package/dist/create/iso-base-media/create-ilst.js +14 -0
  168. package/dist/create/iso-base-media/create-iso-base-media.d.ts +2 -0
  169. package/dist/create/iso-base-media/create-iso-base-media.js +165 -0
  170. package/dist/create/iso-base-media/create-mdia.d.ts +5 -0
  171. package/dist/create/iso-base-media/create-mdia.js +18 -0
  172. package/dist/create/iso-base-media/create-moov.d.ts +5 -0
  173. package/dist/create/iso-base-media/create-moov.js +18 -0
  174. package/dist/create/iso-base-media/create-mvhd.d.ts +10 -0
  175. package/dist/create/iso-base-media/create-mvhd.js +48 -0
  176. package/dist/create/iso-base-media/create-trak.d.ts +4 -0
  177. package/dist/create/iso-base-media/create-trak.js +17 -0
  178. package/dist/create/iso-base-media/create-udta.d.ts +1 -0
  179. package/dist/create/iso-base-media/create-udta.js +14 -0
  180. package/dist/create/iso-base-media/create-url.d.ts +1 -0
  181. package/dist/create/iso-base-media/create-url.js +16 -0
  182. package/dist/create/iso-base-media/example-stts.d.ts +3 -0
  183. package/dist/create/iso-base-media/example-stts.js +2797 -0
  184. package/dist/create/iso-base-media/ilst/create-cmt.d.ts +1 -0
  185. package/dist/create/iso-base-media/ilst/create-cmt.js +26 -0
  186. package/dist/create/iso-base-media/ilst/create-too.d.ts +1 -0
  187. package/dist/create/iso-base-media/ilst/create-too.js +27 -0
  188. package/dist/create/iso-base-media/mdia/create-mdhd.d.ts +6 -0
  189. package/dist/create/iso-base-media/mdia/create-mdhd.js +33 -0
  190. package/dist/create/iso-base-media/mp4-header.d.ts +6 -0
  191. package/dist/create/iso-base-media/mp4-header.js +48 -0
  192. package/dist/create/iso-base-media/primitives.d.ts +15 -0
  193. package/dist/create/iso-base-media/primitives.js +133 -0
  194. package/dist/create/iso-base-media/serialize-track.d.ts +9 -0
  195. package/dist/create/iso-base-media/serialize-track.js +63 -0
  196. package/dist/create/iso-base-media/trak/create-tkhd.d.ts +27 -0
  197. package/dist/create/iso-base-media/trak/create-tkhd.js +97 -0
  198. package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +4 -0
  199. package/dist/create/iso-base-media/trak/mdia/create-minf.js +19 -0
  200. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.d.ts +1 -0
  201. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.js +22 -0
  202. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.d.ts +1 -0
  203. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.js +20 -0
  204. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +6 -0
  205. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.js +35 -0
  206. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.d.ts +1 -0
  207. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.js +20 -0
  208. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +2 -0
  209. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.js +45 -0
  210. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +2 -0
  211. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.js +28 -0
  212. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +2 -0
  213. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.js +56 -0
  214. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +2 -0
  215. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.js +23 -0
  216. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +2 -0
  217. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.js +25 -0
  218. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +2 -0
  219. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.js +48 -0
  220. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +1 -0
  221. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.js +20 -0
  222. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +1 -0
  223. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.js +16 -0
  224. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.d.ts +1 -0
  225. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.js +13 -0
  226. package/dist/create/iso-base-media/udta/create-meta.d.ts +4 -0
  227. package/dist/create/iso-base-media/udta/create-meta.js +20 -0
  228. package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +1 -0
  229. package/dist/create/iso-base-media/udta/meta/create-hdlr.js +32 -0
  230. package/dist/create/make-duration-with-padding.d.ts +1 -0
  231. package/dist/create/make-duration-with-padding.js +15 -0
  232. package/dist/create/make-track-info.d.ts +20 -0
  233. package/dist/create/make-track-info.js +2 -0
  234. package/dist/create/matroska/cluster-segment.d.ts +10 -0
  235. package/dist/create/matroska/cluster-segment.js +39 -0
  236. package/dist/create/matroska/cluster.d.ts +25 -0
  237. package/dist/create/matroska/cluster.js +77 -0
  238. package/dist/create/matroska/create-matroska-media.d.ts +2 -0
  239. package/dist/create/matroska/create-matroska-media.js +187 -0
  240. package/dist/create/matroska/make-duration-with-padding.d.ts +1 -0
  241. package/dist/create/matroska/make-duration-with-padding.js +15 -0
  242. package/dist/create/matroska/matroska-cues.d.ts +6 -0
  243. package/dist/create/matroska/matroska-cues.js +49 -0
  244. package/dist/create/matroska/matroska-header.d.ts +1 -0
  245. package/dist/create/matroska/matroska-header.js +66 -0
  246. package/dist/create/matroska/matroska-info.d.ts +3 -0
  247. package/dist/create/matroska/matroska-info.js +33 -0
  248. package/dist/create/matroska/matroska-seek.d.ts +6 -0
  249. package/dist/create/matroska/matroska-seek.js +32 -0
  250. package/dist/create/matroska/matroska-segment.d.ts +3 -0
  251. package/dist/create/matroska/matroska-segment.js +13 -0
  252. package/dist/create/matroska/matroska-trackentry.d.ts +10 -0
  253. package/dist/create/matroska/matroska-trackentry.js +249 -0
  254. package/dist/create/matroska-cues.d.ts +6 -0
  255. package/dist/create/matroska-cues.js +49 -0
  256. package/dist/create/matroska-header.d.ts +1 -0
  257. package/dist/create/matroska-header.js +66 -0
  258. package/dist/create/matroska-info.d.ts +3 -0
  259. package/dist/create/matroska-info.js +33 -0
  260. package/dist/create/matroska-seek.d.ts +6 -0
  261. package/dist/create/matroska-seek.js +32 -0
  262. package/dist/create/matroska-segment.d.ts +3 -0
  263. package/dist/create/matroska-segment.js +13 -0
  264. package/dist/create/matroska-trackentry.d.ts +27 -0
  265. package/dist/create/matroska-trackentry.js +243 -0
  266. package/dist/create/media-fn.d.ts +33 -0
  267. package/dist/create/media-fn.js +2 -0
  268. package/dist/create/progress-tracker.d.ts +7 -0
  269. package/dist/create/progress-tracker.js +43 -0
  270. package/dist/create/timescale.d.ts +1 -0
  271. package/dist/create/timescale.js +4 -0
  272. package/dist/create/wav/create-wav.d.ts +2 -0
  273. package/dist/create/wav/create-wav.js +110 -0
  274. package/dist/create/with-resolvers.d.ts +10 -0
  275. package/dist/create/with-resolvers.js +28 -0
  276. package/dist/esm/buffer.mjs +56 -0
  277. package/dist/esm/index.mjs +1 -1
  278. package/dist/esm/web-fs.mjs +73 -0
  279. package/dist/parse-video.d.ts +25 -0
  280. package/dist/parse-video.js +39 -0
  281. package/dist/parser-context.d.ts +10 -0
  282. package/dist/parser-context.js +2 -0
  283. package/dist/parser-state.d.ts +22 -0
  284. package/dist/parser-state.js +132 -0
  285. package/dist/version.d.ts +1 -1
  286. package/dist/version.js +1 -1
  287. package/dist/writers/buffer-implementation/writer.d.ts +2 -0
  288. package/dist/writers/buffer-implementation/writer.js +54 -0
  289. package/dist/writers/buffer.d.ts +2 -0
  290. package/dist/writers/buffer.js +7 -0
  291. package/dist/writers/web-fs.d.ts +3 -0
  292. package/dist/writers/web-fs.js +74 -0
  293. package/package.json +3 -3
  294. package/dist/abort.d.ts +0 -1
  295. package/dist/abort.js +0 -7
  296. package/dist/controller.d.ts +0 -17
  297. package/dist/controller.js +0 -31
  298. package/dist/parse-and-download-media.d.ts +0 -2
  299. package/dist/parse-and-download-media.js +0 -57
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAv1C = void 0;
4
+ const parseAv1C = ({ data, size, }) => {
5
+ return {
6
+ type: 'av1C-box',
7
+ privateData: data.getSlice(size - 8),
8
+ };
9
+ };
10
+ exports.parseAv1C = parseAv1C;
@@ -0,0 +1,10 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ export interface AvccBox {
3
+ type: 'avcc-box';
4
+ privateData: Uint8Array;
5
+ configurationString: string;
6
+ }
7
+ export declare const parseAvcc: ({ data, size, }: {
8
+ data: BufferIterator;
9
+ size: number;
10
+ }) => AvccBox;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAvcc = void 0;
4
+ const parseAvcc = ({ data, size, }) => {
5
+ const confVersion = data.getUint8();
6
+ if (confVersion !== 1) {
7
+ throw new Error(`Unsupported AVCC version ${confVersion}`);
8
+ }
9
+ const profile = data.getUint8();
10
+ const profileCompatibility = data.getUint8();
11
+ const level = data.getUint8();
12
+ const str = `${profile.toString(16).padStart(2, '0')}${profileCompatibility.toString(16).padStart(2, '0')}${level.toString(16).padStart(2, '0')}`;
13
+ data.counter.decrement(4);
14
+ const privateData = data.getSlice(size - 8);
15
+ return {
16
+ type: 'avcc-box',
17
+ privateData,
18
+ configurationString: str,
19
+ };
20
+ };
21
+ exports.parseAvcc = parseAvcc;
@@ -0,0 +1,21 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { IccProfile } from '../parse-icc-profile';
3
+ type ExtraData = {
4
+ colorType: 'transfer-characteristics';
5
+ primaries: number;
6
+ transfer: number;
7
+ matrixIndex: number;
8
+ fullRangeFlag: boolean;
9
+ } | {
10
+ colorType: 'icc-profile';
11
+ profile: Uint8Array;
12
+ parsed: IccProfile;
13
+ };
14
+ export type ColorParameterBox = {
15
+ type: 'colr-box';
16
+ } & ExtraData;
17
+ export declare const parseColorParameterBox: ({ iterator, size, }: {
18
+ iterator: BufferIterator;
19
+ size: number;
20
+ }) => ColorParameterBox;
21
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseColorParameterBox = void 0;
4
+ const parse_icc_profile_1 = require("../parse-icc-profile");
5
+ const parseColorParameterBox = ({ iterator, size, }) => {
6
+ const byteString = iterator.getByteString(4);
7
+ if (byteString === 'nclx') {
8
+ const primaries = iterator.getUint16();
9
+ const transfer = iterator.getUint16();
10
+ const matrixIndex = iterator.getUint16();
11
+ iterator.startReadingBits();
12
+ const fullRangeFlag = Boolean(iterator.getBits(1));
13
+ iterator.stopReadingBits();
14
+ return {
15
+ type: 'colr-box',
16
+ colorType: 'transfer-characteristics',
17
+ fullRangeFlag,
18
+ matrixIndex,
19
+ primaries,
20
+ transfer,
21
+ };
22
+ }
23
+ if (byteString === 'nclc') {
24
+ const primaries = iterator.getUint16();
25
+ const transfer = iterator.getUint16();
26
+ const matrixIndex = iterator.getUint16();
27
+ return {
28
+ type: 'colr-box',
29
+ colorType: 'transfer-characteristics',
30
+ fullRangeFlag: false,
31
+ matrixIndex,
32
+ primaries,
33
+ transfer,
34
+ };
35
+ }
36
+ if (byteString === 'prof') {
37
+ const profile = iterator.getSlice(size - 12);
38
+ return {
39
+ type: 'colr-box',
40
+ colorType: 'icc-profile',
41
+ profile,
42
+ parsed: (0, parse_icc_profile_1.parseIccProfile)(profile),
43
+ };
44
+ }
45
+ throw new Error('Unexpected box type ' + byteString);
46
+ };
47
+ exports.parseColorParameterBox = parseColorParameterBox;
@@ -0,0 +1,19 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { BaseBox } from '../base-type';
3
+ type CttsEntry = {
4
+ sampleCount: number;
5
+ sampleOffset: number;
6
+ };
7
+ export interface CttsBox extends BaseBox {
8
+ type: 'ctts-box';
9
+ version: number;
10
+ flags: number[];
11
+ entryCount: number;
12
+ entries: CttsEntry[];
13
+ }
14
+ export declare const parseCtts: ({ iterator, offset, size, }: {
15
+ iterator: BufferIterator;
16
+ offset: number;
17
+ size: number;
18
+ }) => CttsBox;
19
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCtts = void 0;
4
+ const parseCtts = ({ iterator, offset, size, }) => {
5
+ const version = iterator.getUint8();
6
+ if (version !== 0 && version !== 1) {
7
+ throw new Error(`Unsupported CTTS 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 sampleCount = iterator.getUint32();
14
+ // V1 = signed, V0 = unsigned
15
+ // however some files are buggy
16
+ // Let's do the same thing as mp4box
17
+ // https://github.com/gpac/mp4box.js/blob/c6cc468145bc5b031b866446111f29c8b620dbe6/src/parsing/ctts.js#L2
18
+ const sampleOffset = iterator.getInt32();
19
+ entries.push({
20
+ sampleCount,
21
+ sampleOffset,
22
+ });
23
+ }
24
+ return {
25
+ type: 'ctts-box',
26
+ boxSize: size,
27
+ offset,
28
+ version,
29
+ flags: [...flags],
30
+ entryCount,
31
+ entries,
32
+ };
33
+ };
34
+ exports.parseCtts = parseCtts;
@@ -0,0 +1,11 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ export interface HvccBox {
3
+ type: 'hvcc-box';
4
+ privateData: Uint8Array;
5
+ configurationString: string;
6
+ }
7
+ export declare const parseHvcc: ({ data, size, offset, }: {
8
+ data: BufferIterator;
9
+ size: number;
10
+ offset: number;
11
+ }) => HvccBox;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseHvcc = void 0;
4
+ const make_hvc1_codec_strings_1 = require("../../../make-hvc1-codec-strings");
5
+ const parseHvcc = ({ data, size, offset, }) => {
6
+ const privateData = data.getSlice(size - 8);
7
+ data.counter.decrement(size - 8);
8
+ const constraintString = (0, make_hvc1_codec_strings_1.getHvc1CodecString)(data);
9
+ const remaining = size - (data.counter.getOffset() - offset);
10
+ data.discard(remaining);
11
+ return {
12
+ type: 'hvcc-box',
13
+ privateData,
14
+ configurationString: constraintString,
15
+ };
16
+ };
17
+ exports.parseHvcc = parseHvcc;
@@ -0,0 +1,19 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { BaseBox } from '../base-type';
3
+ type KeysEntry = {
4
+ keySize: number;
5
+ namespace: string;
6
+ value: string;
7
+ };
8
+ export interface KeysBox extends BaseBox {
9
+ type: 'keys-box';
10
+ version: number;
11
+ entryCount: number;
12
+ entries: KeysEntry[];
13
+ }
14
+ export declare const parseKeys: ({ iterator, offset, size, }: {
15
+ iterator: BufferIterator;
16
+ offset: number;
17
+ size: number;
18
+ }) => KeysBox;
19
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseKeys = void 0;
4
+ const parseKeys = ({ iterator, offset, size, }) => {
5
+ const box = iterator.startBox(size - 8);
6
+ const version = iterator.getUint8();
7
+ // flags
8
+ iterator.discard(3);
9
+ // entry_count
10
+ const entryCount = iterator.getUint32();
11
+ const entries = [];
12
+ for (let i = 0; i < entryCount; i++) {
13
+ // key_size
14
+ const keySize = iterator.getUint32();
15
+ const namespace = iterator.getAtom();
16
+ const value = iterator.getByteString(keySize - 8);
17
+ // data
18
+ const entry = {
19
+ keySize,
20
+ namespace,
21
+ value,
22
+ };
23
+ entries.push(entry);
24
+ }
25
+ box.discardRest();
26
+ return {
27
+ type: 'keys-box',
28
+ boxSize: size,
29
+ offset,
30
+ version,
31
+ entryCount,
32
+ entries,
33
+ };
34
+ };
35
+ exports.parseKeys = parseKeys;
@@ -0,0 +1,19 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { Options, ParseMediaFields } from '../../../options';
3
+ import type { AnySegment } from '../../../parse-result';
4
+ import type { ParserContext } from '../../../parser-context';
5
+ import type { BaseBox } from '../base-type';
6
+ export interface MebxBox extends BaseBox {
7
+ type: 'mebx-box';
8
+ dataReferenceIndex: number;
9
+ format: string;
10
+ children: AnySegment[];
11
+ }
12
+ export declare const parseMebx: ({ iterator, offset, size, options, signal, fields, }: {
13
+ iterator: BufferIterator;
14
+ offset: number;
15
+ size: number;
16
+ options: ParserContext;
17
+ signal: AbortSignal | null;
18
+ fields: Options<ParseMediaFields>;
19
+ }) => Promise<MebxBox>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMebx = void 0;
4
+ const process_box_1 = require("../process-box");
5
+ const parseMebx = async ({ iterator, offset, size, options, signal, fields, }) => {
6
+ // reserved, 6 bit
7
+ iterator.discard(6);
8
+ const dataReferenceIndex = iterator.getUint16();
9
+ const children = await (0, process_box_1.parseIsoBaseMediaBoxes)({
10
+ iterator,
11
+ maxBytes: iterator.counter.getOffset() - offset,
12
+ allowIncompleteBoxes: false,
13
+ initialBoxes: [],
14
+ options,
15
+ continueMdat: false,
16
+ signal,
17
+ logLevel: 'info',
18
+ fields,
19
+ });
20
+ if (children.status === 'incomplete') {
21
+ throw new Error('Incomplete boxes are not allowed');
22
+ }
23
+ return {
24
+ type: 'mebx-box',
25
+ boxSize: size,
26
+ offset,
27
+ dataReferenceIndex,
28
+ format: 'mebx',
29
+ children: children.segments.boxes,
30
+ };
31
+ };
32
+ exports.parseMebx = parseMebx;
@@ -0,0 +1,12 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { BaseBox } from '../base-type';
3
+ export interface PaspBox extends BaseBox {
4
+ type: 'pasp-box';
5
+ hSpacing: number;
6
+ vSpacing: number;
7
+ }
8
+ export declare const parsePasp: ({ iterator, offset, size, }: {
9
+ iterator: BufferIterator;
10
+ offset: number;
11
+ size: number;
12
+ }) => PaspBox;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePasp = void 0;
4
+ const parsePasp = ({ iterator, offset, size, }) => {
5
+ const hSpacing = iterator.getUint32();
6
+ const vSpacing = iterator.getUint32();
7
+ const bytesRemainingInBox = size - (iterator.counter.getOffset() - offset);
8
+ iterator.discard(bytesRemainingInBox);
9
+ return {
10
+ type: 'pasp-box',
11
+ boxSize: size,
12
+ offset,
13
+ hSpacing,
14
+ vSpacing,
15
+ };
16
+ };
17
+ exports.parsePasp = parsePasp;
@@ -0,0 +1,68 @@
1
+ import type { BufferIterator } from '../../../buffer-iterator';
2
+ import type { LogLevel } from '../../../log';
3
+ import type { Options, ParseMediaFields } from '../../../options';
4
+ import type { AnySegment, IsoBaseMediaBox } from '../../../parse-result';
5
+ import type { ParserContext } from '../../../parser-context';
6
+ type SampleBase = {
7
+ format: string;
8
+ offset: number;
9
+ dataReferenceIndex: number;
10
+ size: number;
11
+ };
12
+ export type AudioSample = SampleBase & {
13
+ type: 'audio';
14
+ numberOfChannels: number;
15
+ sampleSize: number;
16
+ compressionId: number;
17
+ packetSize: number;
18
+ sampleRate: number;
19
+ samplesPerPacket: number | null;
20
+ bytesPerPacket: number | null;
21
+ bytesPerFrame: number | null;
22
+ bitsPerSample: number | null;
23
+ children: AnySegment[];
24
+ version: number;
25
+ revisionLevel: number;
26
+ vendor: number[];
27
+ };
28
+ export type VideoSample = SampleBase & {
29
+ type: 'video';
30
+ temporalQuality: number;
31
+ spacialQuality: number;
32
+ width: number;
33
+ height: number;
34
+ compressorName: number[];
35
+ horizontalResolutionPpi: number;
36
+ verticalResolutionPpi: number;
37
+ dataSize: number;
38
+ frameCountPerSample: number;
39
+ depth: number;
40
+ colorTableId: number;
41
+ descriptors: IsoBaseMediaBox[];
42
+ version: number;
43
+ revisionLevel: number;
44
+ vendor: number[];
45
+ };
46
+ type UnknownSample = SampleBase & {
47
+ type: 'unknown';
48
+ };
49
+ export type Sample = AudioSample | VideoSample | UnknownSample;
50
+ type SampleAndNext = {
51
+ sample: Sample | null;
52
+ };
53
+ export declare const processSample: ({ iterator, options, signal, logLevel, fields, }: {
54
+ iterator: BufferIterator;
55
+ options: ParserContext;
56
+ signal: AbortSignal | null;
57
+ logLevel: LogLevel;
58
+ fields: Options<ParseMediaFields>;
59
+ }) => Promise<SampleAndNext>;
60
+ export declare const parseSamples: ({ iterator, maxBytes, options, signal, logLevel, fields, }: {
61
+ iterator: BufferIterator;
62
+ maxBytes: number;
63
+ options: ParserContext;
64
+ signal: AbortSignal | null;
65
+ logLevel: LogLevel;
66
+ fields: Options<ParseMediaFields>;
67
+ }) => Promise<Sample[]>;
68
+ export {};