@remotion/media-parser 4.0.270 → 4.0.272

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 (338) hide show
  1. package/dist/aac-codecprivate.js +6 -13
  2. package/dist/add-avc-profile-to-track.js +5 -9
  3. package/dist/buffer-iterator.js +8 -13
  4. package/dist/combine-uint8-arrays.js +1 -5
  5. package/dist/containers/aac/parse-aac.js +9 -13
  6. package/dist/containers/aac/types.js +1 -2
  7. package/dist/containers/avc/codec-string.js +1 -5
  8. package/dist/containers/avc/color.js +3 -9
  9. package/dist/containers/avc/create-sps-pps-data.js +5 -9
  10. package/dist/containers/avc/interpret-sps.js +7 -13
  11. package/dist/containers/avc/key.js +1 -5
  12. package/dist/containers/avc/parse-avc.js +3 -7
  13. package/dist/containers/avc/sps-and-pps.js +1 -5
  14. package/dist/containers/flac/get-block-size.js +1 -5
  15. package/dist/containers/flac/get-channel-count.d.ts +1 -1
  16. package/dist/containers/flac/get-channel-count.js +1 -5
  17. package/dist/containers/flac/get-duration-from-flac.js +1 -5
  18. package/dist/containers/flac/get-metadata-from-flac.d.ts +1 -1
  19. package/dist/containers/flac/get-metadata-from-flac.js +1 -5
  20. package/dist/containers/flac/get-sample-rate.js +1 -5
  21. package/dist/containers/flac/parse-flac-frame.js +14 -19
  22. package/dist/containers/flac/parse-flac.js +15 -19
  23. package/dist/containers/flac/parse-header.js +1 -5
  24. package/dist/containers/flac/parse-metadata.js +1 -5
  25. package/dist/containers/flac/parse-streaminfo.js +3 -7
  26. package/dist/containers/flac/parse-unknown-block.js +1 -5
  27. package/dist/containers/flac/types.d.ts +2 -2
  28. package/dist/containers/flac/types.js +1 -2
  29. package/dist/containers/iso-base-media/base-media-box.js +1 -2
  30. package/dist/containers/iso-base-media/base-type.js +1 -2
  31. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +1 -5
  32. package/dist/containers/iso-base-media/esds/esds-descriptors.js +5 -10
  33. package/dist/containers/iso-base-media/esds/esds.js +3 -7
  34. package/dist/containers/iso-base-media/ftyp.js +1 -5
  35. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +4 -8
  36. package/dist/containers/iso-base-media/get-children.js +3 -7
  37. package/dist/containers/iso-base-media/get-keyframes.js +7 -11
  38. package/dist/containers/iso-base-media/get-moov-atom.js +21 -15
  39. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +20 -24
  40. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.d.ts +1 -1
  41. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +3 -7
  42. package/dist/containers/iso-base-media/make-track.js +30 -34
  43. package/dist/containers/iso-base-media/mdat/mdat.js +16 -20
  44. package/dist/containers/iso-base-media/mdhd.js +1 -5
  45. package/dist/containers/iso-base-media/meta/hdlr.js +1 -5
  46. package/dist/containers/iso-base-media/meta/ilst.js +1 -5
  47. package/dist/containers/iso-base-media/moov/moov.js +3 -7
  48. package/dist/containers/iso-base-media/mvhd.js +7 -11
  49. package/dist/containers/iso-base-media/parse-boxes.js +5 -9
  50. package/dist/containers/iso-base-media/parse-icc-profile.js +4 -8
  51. package/dist/containers/iso-base-media/process-box.js +63 -67
  52. package/dist/containers/iso-base-media/stsd/av1c.js +1 -5
  53. package/dist/containers/iso-base-media/stsd/avcc.js +1 -5
  54. package/dist/containers/iso-base-media/stsd/colr.js +3 -7
  55. package/dist/containers/iso-base-media/stsd/ctts.js +1 -5
  56. package/dist/containers/iso-base-media/stsd/hvcc.js +3 -7
  57. package/dist/containers/iso-base-media/stsd/keys.js +1 -5
  58. package/dist/containers/iso-base-media/stsd/mebx.js +3 -7
  59. package/dist/containers/iso-base-media/stsd/pasp.js +1 -5
  60. package/dist/containers/iso-base-media/stsd/samples.js +8 -13
  61. package/dist/containers/iso-base-media/stsd/stco.js +1 -5
  62. package/dist/containers/iso-base-media/stsd/stsc.js +1 -5
  63. package/dist/containers/iso-base-media/stsd/stsd.js +3 -7
  64. package/dist/containers/iso-base-media/stsd/stss.js +1 -5
  65. package/dist/containers/iso-base-media/stsd/stsz.js +1 -5
  66. package/dist/containers/iso-base-media/stsd/stts.js +1 -5
  67. package/dist/containers/iso-base-media/tfdt.js +1 -5
  68. package/dist/containers/iso-base-media/tfhd.js +1 -5
  69. package/dist/containers/iso-base-media/tkhd.js +4 -8
  70. package/dist/containers/iso-base-media/to-date.js +1 -5
  71. package/dist/containers/iso-base-media/trak/trak.js +3 -7
  72. package/dist/containers/iso-base-media/traversal.d.ts +3 -2
  73. package/dist/containers/iso-base-media/traversal.js +42 -57
  74. package/dist/containers/iso-base-media/trun.js +2 -6
  75. package/dist/containers/iso-base-media/void-box.js +1 -2
  76. package/dist/containers/m3u/after-manifest-fetch.d.ts +5 -3
  77. package/dist/containers/m3u/after-manifest-fetch.js +13 -17
  78. package/dist/containers/m3u/fetch-m3u8-stream.d.ts +5 -1
  79. package/dist/containers/m3u/fetch-m3u8-stream.js +4 -12
  80. package/dist/containers/m3u/get-chunks.d.ts +1 -0
  81. package/dist/containers/m3u/get-chunks.js +6 -6
  82. package/dist/containers/m3u/get-duration-from-m3u.js +4 -8
  83. package/dist/containers/m3u/get-playlist.js +6 -12
  84. package/dist/containers/m3u/get-streams.d.ts +11 -5
  85. package/dist/containers/m3u/get-streams.js +5 -15
  86. package/dist/containers/m3u/iterate-over-segment-files.d.ts +19 -0
  87. package/dist/containers/m3u/iterate-over-segment-files.js +110 -0
  88. package/dist/containers/m3u/parse-directive.js +24 -10
  89. package/dist/containers/m3u/parse-m3u-manifest.js +3 -7
  90. package/dist/containers/m3u/parse-m3u-media-directive.d.ts +1 -0
  91. package/dist/containers/m3u/parse-m3u-media-directive.js +7 -7
  92. package/dist/containers/m3u/parse-m3u.js +13 -13
  93. package/dist/containers/m3u/parse-m3u8-text.js +3 -7
  94. package/dist/containers/m3u/parse-stream-inf.js +2 -7
  95. package/dist/containers/m3u/return-packets.d.ts +1 -1
  96. package/dist/containers/m3u/return-packets.js +14 -5
  97. package/dist/containers/m3u/run-over-m3u.js +68 -57
  98. package/dist/containers/m3u/sample-sorter.d.ts +2 -0
  99. package/dist/containers/m3u/sample-sorter.js +17 -9
  100. package/dist/containers/m3u/select-stream.d.ts +3 -2
  101. package/dist/containers/m3u/select-stream.js +9 -13
  102. package/dist/containers/m3u/types.d.ts +9 -2
  103. package/dist/containers/m3u/types.js +1 -2
  104. package/dist/containers/mp3/get-duration.js +5 -9
  105. package/dist/containers/mp3/get-frame-length.js +2 -7
  106. package/dist/containers/mp3/get-metadata-from-mp3.d.ts +2 -2
  107. package/dist/containers/mp3/get-metadata-from-mp3.js +1 -5
  108. package/dist/containers/mp3/id3-v1.js +1 -5
  109. package/dist/containers/mp3/id3.js +1 -5
  110. package/dist/containers/mp3/parse-mp3.js +7 -11
  111. package/dist/containers/mp3/parse-mpeg-header.js +10 -14
  112. package/dist/containers/mp3/samples-per-mpeg-file.js +1 -5
  113. package/dist/containers/riff/expect-riff-box.js +11 -15
  114. package/dist/containers/riff/get-duration.js +7 -12
  115. package/dist/containers/riff/get-tracks-from-avi.js +20 -28
  116. package/dist/containers/riff/is-movi.js +1 -5
  117. package/dist/containers/riff/parse-avih.js +1 -5
  118. package/dist/containers/riff/parse-isft.js +1 -5
  119. package/dist/containers/riff/parse-list-box.js +3 -7
  120. package/dist/containers/riff/parse-movi.js +13 -18
  121. package/dist/containers/riff/parse-riff-body.js +9 -13
  122. package/dist/containers/riff/parse-riff-box.js +9 -13
  123. package/dist/containers/riff/parse-riff-header.js +1 -5
  124. package/dist/containers/riff/parse-riff.js +5 -9
  125. package/dist/containers/riff/parse-strf.js +1 -5
  126. package/dist/containers/riff/parse-strh.js +3 -7
  127. package/dist/containers/riff/parse-video-section.js +7 -11
  128. package/dist/containers/riff/riff-box.js +1 -2
  129. package/dist/containers/riff/timescale.js +1 -4
  130. package/dist/containers/riff/traversal.js +7 -15
  131. package/dist/containers/transport-stream/adts-header.js +6 -10
  132. package/dist/containers/transport-stream/boxes.js +1 -2
  133. package/dist/containers/transport-stream/discard-rest-of-packet.js +2 -7
  134. package/dist/containers/transport-stream/find-separator.js +1 -4
  135. package/dist/containers/transport-stream/get-tracks.d.ts +2 -0
  136. package/dist/containers/transport-stream/get-tracks.js +13 -14
  137. package/dist/containers/transport-stream/handle-aac-packet.js +12 -16
  138. package/dist/containers/transport-stream/handle-avc-packet.js +22 -26
  139. package/dist/containers/transport-stream/next-pes-header-store.js +1 -5
  140. package/dist/containers/transport-stream/parse-packet.js +13 -17
  141. package/dist/containers/transport-stream/parse-pat.js +5 -10
  142. package/dist/containers/transport-stream/parse-pes.js +1 -5
  143. package/dist/containers/transport-stream/parse-pmt.js +8 -12
  144. package/dist/containers/transport-stream/parse-stream-packet.js +13 -17
  145. package/dist/containers/transport-stream/parse-transport-stream.js +5 -9
  146. package/dist/containers/transport-stream/process-stream-buffers.js +12 -16
  147. package/dist/containers/transport-stream/traversal.js +4 -10
  148. package/dist/containers/wav/get-duration-from-wav.js +3 -8
  149. package/dist/containers/wav/get-metadata-from-wav.d.ts +2 -2
  150. package/dist/containers/wav/get-metadata-from-wav.js +1 -5
  151. package/dist/containers/wav/parse-data.js +5 -9
  152. package/dist/containers/wav/parse-fmt.js +3 -7
  153. package/dist/containers/wav/parse-header.js +1 -5
  154. package/dist/containers/wav/parse-id3.js +1 -5
  155. package/dist/containers/wav/parse-list.js +1 -5
  156. package/dist/containers/wav/parse-video-section.js +3 -7
  157. package/dist/containers/wav/parse-wav.js +15 -19
  158. package/dist/containers/wav/types.d.ts +2 -2
  159. package/dist/containers/wav/types.js +1 -2
  160. package/dist/containers/webm/allowed-partial-segments.js +1 -4
  161. package/dist/containers/webm/av1-codec-private.js +3 -7
  162. package/dist/containers/webm/color.js +6 -10
  163. package/dist/containers/webm/description.js +6 -10
  164. package/dist/containers/webm/get-ready-tracks.js +13 -18
  165. package/dist/containers/webm/get-sample-from-block.js +12 -16
  166. package/dist/containers/webm/make-track.js +43 -48
  167. package/dist/containers/webm/parse-ebml.js +14 -19
  168. package/dist/containers/webm/parse-webm-header.js +3 -7
  169. package/dist/containers/webm/segments/all-segments.js +168 -173
  170. package/dist/containers/webm/segments/block-simple-block-flags.js +4 -8
  171. package/dist/containers/webm/segments/track-entry.js +1 -5
  172. package/dist/containers/webm/segments.js +9 -13
  173. package/dist/containers/webm/traversal.js +37 -67
  174. package/dist/convert-audio-or-video-sample.js +1 -5
  175. package/dist/download-and-parse-media.js +44 -47
  176. package/dist/emit-available-info.js +38 -38
  177. package/dist/emitter.js +1 -5
  178. package/dist/errors.d.ts +2 -17
  179. package/dist/errors.js +10 -30
  180. package/dist/esm/fetch.mjs +93 -67
  181. package/dist/esm/index.mjs +742 -194
  182. package/dist/esm/node.mjs +59 -36
  183. package/dist/esm/universal.mjs +323 -0
  184. package/dist/esm/web-file.mjs +55 -43
  185. package/dist/esm/web.mjs +257 -0
  186. package/dist/esm/worker-server-entry.mjs +13100 -0
  187. package/dist/esm/worker-server.mjs +12914 -0
  188. package/dist/esm/worker-web-entry.mjs +13013 -0
  189. package/dist/esm/worker.mjs +439 -0
  190. package/dist/fetch.js +1 -17
  191. package/dist/file-types/bmp.js +3 -7
  192. package/dist/file-types/detect-file-type.js +24 -38
  193. package/dist/file-types/index.js +22 -26
  194. package/dist/file-types/jpeg.js +4 -9
  195. package/dist/file-types/pdf.js +3 -7
  196. package/dist/file-types/png.js +4 -9
  197. package/dist/file-types/webp.js +3 -7
  198. package/dist/forward-controller.js +1 -5
  199. package/dist/get-audio-codec.js +25 -38
  200. package/dist/get-container.d.ts +3 -3
  201. package/dist/get-container.js +5 -10
  202. package/dist/get-dimensions.js +8 -13
  203. package/dist/get-duration.js +27 -34
  204. package/dist/get-fields-from-callbacks.js +1 -5
  205. package/dist/get-fps.js +24 -34
  206. package/dist/get-is-hdr.js +5 -10
  207. package/dist/get-keyframes.js +6 -11
  208. package/dist/get-location.js +4 -9
  209. package/dist/get-number-of-audio-channels.js +2 -7
  210. package/dist/get-sample-aspect-ratio.js +17 -30
  211. package/dist/get-sample-positions-from-lpcm.js +5 -9
  212. package/dist/get-sample-positions.js +1 -5
  213. package/dist/get-sample-rate.js +2 -7
  214. package/dist/get-tracks.d.ts +5 -0
  215. package/dist/get-tracks.js +37 -44
  216. package/dist/get-video-codec.js +26 -34
  217. package/dist/has-all-info.js +33 -38
  218. package/dist/index.d.ts +18 -11
  219. package/dist/index.js +34 -48
  220. package/dist/init-video.d.ts +1 -1
  221. package/dist/init-video.js +47 -20
  222. package/dist/internal-parse-media.js +36 -40
  223. package/dist/is-audio-structure.d.ts +2 -2
  224. package/dist/is-audio-structure.js +1 -5
  225. package/dist/log.js +8 -12
  226. package/dist/make-hvc1-codec-strings.js +1 -5
  227. package/dist/media-parser-controller.js +7 -11
  228. package/dist/metadata/get-metadata.d.ts +4 -4
  229. package/dist/metadata/get-metadata.js +17 -22
  230. package/dist/metadata/metadata-from-iso.d.ts +3 -3
  231. package/dist/metadata/metadata-from-iso.js +12 -17
  232. package/dist/metadata/metadata-from-matroska.d.ts +2 -2
  233. package/dist/metadata/metadata-from-matroska.js +3 -7
  234. package/dist/metadata/metadata-from-riff.d.ts +2 -2
  235. package/dist/metadata/metadata-from-riff.js +3 -7
  236. package/dist/node-writer.js +1 -17
  237. package/dist/node.js +1 -17
  238. package/dist/options.d.ts +30 -24
  239. package/dist/options.js +1 -2
  240. package/dist/parse-media-on-browser-worker.d.ts +2 -0
  241. package/dist/parse-media-on-browser-worker.js +4 -0
  242. package/dist/parse-media-on-server-worker.d.ts +2 -0
  243. package/dist/parse-media-on-server-worker.js +4 -0
  244. package/dist/parse-media-on-web-worker.d.ts +2 -0
  245. package/dist/parse-media-on-web-worker.js +4 -0
  246. package/dist/parse-media-on-worker-entry.d.ts +2 -0
  247. package/dist/parse-media-on-worker-entry.js +269 -0
  248. package/dist/parse-media-on-worker.d.ts +2 -0
  249. package/dist/parse-media-on-worker.js +4 -0
  250. package/dist/parse-media.js +10 -13
  251. package/dist/parse-result.d.ts +3 -3
  252. package/dist/parse-result.js +1 -2
  253. package/dist/pause-signal.js +1 -5
  254. package/dist/perform-seek.js +6 -10
  255. package/dist/readers/fetch/get-body-and-reader.js +1 -5
  256. package/dist/readers/fetch/resolve-url.d.ts +1 -1
  257. package/dist/readers/fetch/resolve-url.js +1 -5
  258. package/dist/readers/from-fetch.d.ts +4 -1
  259. package/dist/readers/from-fetch.js +109 -94
  260. package/dist/readers/from-node.d.ts +4 -1
  261. package/dist/readers/from-node.js +58 -41
  262. package/dist/readers/from-web-file.d.ts +4 -1
  263. package/dist/readers/from-web-file.js +55 -49
  264. package/dist/readers/reader.d.ts +5 -1
  265. package/dist/readers/reader.js +1 -2
  266. package/dist/readers/universal.d.ts +2 -0
  267. package/dist/readers/universal.js +35 -0
  268. package/dist/readers/web.d.ts +2 -0
  269. package/dist/readers/web.js +22 -0
  270. package/dist/register-track.js +9 -15
  271. package/dist/remotion-license-acknowledge.js +4 -8
  272. package/dist/run-parse-iteration.js +26 -25
  273. package/dist/samples-from-moof.js +8 -12
  274. package/dist/skip.js +1 -5
  275. package/dist/state/aac-state.js +1 -5
  276. package/dist/state/can-skip-tracks.d.ts +2 -2
  277. package/dist/state/can-skip-tracks.js +3 -8
  278. package/dist/state/emitted-fields.js +1 -5
  279. package/dist/state/flac-state.js +1 -5
  280. package/dist/state/has-tracks-section.d.ts +2 -2
  281. package/dist/state/has-tracks-section.js +6 -8
  282. package/dist/state/images.js +1 -5
  283. package/dist/state/iso-base-media/cached-sample-positions.js +8 -13
  284. package/dist/state/iso-base-media/iso-state.js +5 -9
  285. package/dist/state/iso-base-media/moov-box.js +1 -5
  286. package/dist/state/keyframes.js +1 -5
  287. package/dist/state/last-eventloop-break.js +3 -7
  288. package/dist/state/m3u-state.d.ts +6 -0
  289. package/dist/state/m3u-state.js +20 -12
  290. package/dist/state/may-skip-video-data.js +3 -7
  291. package/dist/state/mp3.js +1 -5
  292. package/dist/state/need-samples-for-fields.js +1 -5
  293. package/dist/state/parser-state.d.ts +15 -10
  294. package/dist/state/parser-state.js +37 -41
  295. package/dist/state/riff.js +1 -5
  296. package/dist/state/sample-callbacks.d.ts +3 -2
  297. package/dist/state/sample-callbacks.js +8 -12
  298. package/dist/state/slow-duration-fps.js +1 -5
  299. package/dist/state/structure.d.ts +4 -4
  300. package/dist/state/structure.js +1 -5
  301. package/dist/state/transport-stream.js +3 -7
  302. package/dist/state/video-section.js +1 -5
  303. package/dist/state/webm.js +5 -9
  304. package/dist/throttled-progress.js +1 -5
  305. package/dist/truthy.js +1 -4
  306. package/dist/universal.d.ts +1 -0
  307. package/dist/universal.js +1 -0
  308. package/dist/version.d.ts +1 -1
  309. package/dist/version.js +1 -4
  310. package/dist/web-file.js +1 -17
  311. package/dist/web.d.ts +1 -0
  312. package/dist/web.js +1 -0
  313. package/dist/webcodec-sample-types.d.ts +6 -4
  314. package/dist/webcodec-sample-types.js +1 -2
  315. package/dist/worker/forward-controller.d.ts +3 -0
  316. package/dist/worker/forward-controller.js +20 -0
  317. package/dist/worker/serialize-error.d.ts +4 -0
  318. package/dist/worker/serialize-error.js +95 -0
  319. package/dist/worker/worker-types.d.ts +243 -0
  320. package/dist/worker/worker-types.js +1 -0
  321. package/dist/worker-bun-entry.d.ts +1 -0
  322. package/dist/worker-bun-entry.js +5 -0
  323. package/dist/worker-entry.d.ts +1 -0
  324. package/dist/worker-entry.js +5 -0
  325. package/dist/worker-server-entry.d.ts +1 -0
  326. package/dist/worker-server-entry.js +5 -0
  327. package/dist/worker-server.d.ts +2 -0
  328. package/dist/worker-server.js +381 -0
  329. package/dist/worker-web-entry.d.ts +1 -0
  330. package/dist/worker-web-entry.js +5 -0
  331. package/dist/worker.d.ts +2 -0
  332. package/dist/worker.js +267 -0
  333. package/dist/writers/node.js +16 -23
  334. package/dist/writers/writer.js +1 -2
  335. package/package.json +40 -21
  336. package/fetch.js +0 -2
  337. package/test.json +0 -663
  338. package/web-file.js +0 -2
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSampleRateFromAvi = exports.getDurationFromAvi = void 0;
4
- const traversal_1 = require("./traversal");
5
- const getDurationFromAvi = (structure) => {
6
- const strl = (0, traversal_1.getStrlBoxes)(structure);
1
+ import { getStrhBox, getStrlBoxes } from './traversal';
2
+ export const getDurationFromAvi = (structure) => {
3
+ const strl = getStrlBoxes(structure);
7
4
  const lengths = [];
8
5
  for (const s of strl) {
9
- const strh = (0, traversal_1.getStrhBox)(s.children);
6
+ const strh = getStrhBox(s.children);
10
7
  if (!strh) {
11
8
  throw new Error('No strh box');
12
9
  }
@@ -16,11 +13,10 @@ const getDurationFromAvi = (structure) => {
16
13
  }
17
14
  return Math.max(...lengths);
18
15
  };
19
- exports.getDurationFromAvi = getDurationFromAvi;
20
- const getSampleRateFromAvi = (structure) => {
21
- const strl = (0, traversal_1.getStrlBoxes)(structure);
16
+ export const getSampleRateFromAvi = (structure) => {
17
+ const strl = getStrlBoxes(structure);
22
18
  for (const s of strl) {
23
- const strh = (0, traversal_1.getStrhBox)(s.children);
19
+ const strh = getStrhBox(s.children);
24
20
  if (!strh) {
25
21
  throw new Error('No strh box');
26
22
  }
@@ -30,4 +26,3 @@ const getSampleRateFromAvi = (structure) => {
30
26
  }
31
27
  return null;
32
28
  };
33
- exports.getSampleRateFromAvi = getSampleRateFromAvi;
@@ -1,19 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasAllTracksFromAvi = exports.getTracksFromAvi = exports.makeAviVideoTrack = exports.makeAviAudioTrack = exports.getNumberOfTracks = exports.TO_BE_OVERRIDDEN_LATER = void 0;
4
- const add_avc_profile_to_track_1 = require("../../add-avc-profile-to-track");
5
- const timescale_1 = require("./timescale");
6
- const traversal_1 = require("./traversal");
7
- exports.TO_BE_OVERRIDDEN_LATER = 'to-be-overriden-later';
8
- const getNumberOfTracks = (structure) => {
9
- const avihBox = (0, traversal_1.getAvihBox)(structure);
1
+ import { addAvcProfileToTrack } from '../../add-avc-profile-to-track';
2
+ import { MEDIA_PARSER_RIFF_TIMESCALE } from './timescale';
3
+ import { getAvihBox, getStrhBox, getStrlBoxes } from './traversal';
4
+ export const TO_BE_OVERRIDDEN_LATER = 'to-be-overriden-later';
5
+ export const getNumberOfTracks = (structure) => {
6
+ const avihBox = getAvihBox(structure);
10
7
  if (avihBox) {
11
8
  return avihBox.streams;
12
9
  }
13
10
  throw new Error('No avih box found');
14
11
  };
15
- exports.getNumberOfTracks = getNumberOfTracks;
16
- const makeAviAudioTrack = ({ strf, index, }) => {
12
+ export const makeAviAudioTrack = ({ strf, index, }) => {
17
13
  // 255 = AAC
18
14
  if (strf.formatTag !== 255) {
19
15
  throw new Error(`Unsupported audio format ${strf.formatTag}`);
@@ -26,19 +22,18 @@ const makeAviAudioTrack = ({ strf, index, }) => {
26
22
  description: new Uint8Array([18, 16]),
27
23
  numberOfChannels: strf.numberOfChannels,
28
24
  sampleRate: strf.sampleRate,
29
- timescale: timescale_1.MEDIA_PARSER_RIFF_TIMESCALE,
25
+ timescale: MEDIA_PARSER_RIFF_TIMESCALE,
30
26
  trackId: index,
31
27
  trakBox: null,
32
28
  };
33
29
  };
34
- exports.makeAviAudioTrack = makeAviAudioTrack;
35
- const makeAviVideoTrack = ({ strh, strf, index, }) => {
30
+ export const makeAviVideoTrack = ({ strh, strf, index, }) => {
36
31
  if (strh.handler !== 'H264') {
37
32
  throw new Error(`Unsupported video codec ${strh.handler}`);
38
33
  }
39
34
  return {
40
35
  codecPrivate: null,
41
- codec: exports.TO_BE_OVERRIDDEN_LATER,
36
+ codec: TO_BE_OVERRIDDEN_LATER,
42
37
  codecWithoutConfig: 'h264',
43
38
  codedHeight: strf.height,
44
39
  codedWidth: strf.width,
@@ -46,7 +41,7 @@ const makeAviVideoTrack = ({ strh, strf, index, }) => {
46
41
  height: strf.height,
47
42
  type: 'video',
48
43
  displayAspectHeight: strf.height,
49
- timescale: timescale_1.MEDIA_PARSER_RIFF_TIMESCALE,
44
+ timescale: MEDIA_PARSER_RIFF_TIMESCALE,
50
45
  description: undefined,
51
46
  trackId: index,
52
47
  color: {
@@ -65,24 +60,23 @@ const makeAviVideoTrack = ({ strh, strf, index, }) => {
65
60
  fps: strh.rate / strh.scale,
66
61
  };
67
62
  };
68
- exports.makeAviVideoTrack = makeAviVideoTrack;
69
- const getTracksFromAvi = (structure, state) => {
63
+ export const getTracksFromAvi = (structure, state) => {
70
64
  const videoTracks = [];
71
65
  const audioTracks = [];
72
66
  const otherTracks = [];
73
- const boxes = (0, traversal_1.getStrlBoxes)(structure);
67
+ const boxes = getStrlBoxes(structure);
74
68
  let i = 0;
75
69
  for (const box of boxes) {
76
- const strh = (0, traversal_1.getStrhBox)(box.children);
70
+ const strh = getStrhBox(box.children);
77
71
  if (!strh) {
78
72
  continue;
79
73
  }
80
74
  const { strf } = strh;
81
75
  if (strf.type === 'strf-box-video') {
82
- videoTracks.push((0, add_avc_profile_to_track_1.addAvcProfileToTrack)((0, exports.makeAviVideoTrack)({ strh, strf, index: i }), state.riff.getAvcProfile()));
76
+ videoTracks.push(addAvcProfileToTrack(makeAviVideoTrack({ strh, strf, index: i }), state.riff.getAvcProfile()));
83
77
  }
84
78
  else if (strh.fccType === 'auds') {
85
- audioTracks.push((0, exports.makeAviAudioTrack)({ strf, index: i }));
79
+ audioTracks.push(makeAviAudioTrack({ strf, index: i }));
86
80
  }
87
81
  else {
88
82
  throw new Error(`Unsupported track type ${strh.fccType}`);
@@ -91,20 +85,18 @@ const getTracksFromAvi = (structure, state) => {
91
85
  }
92
86
  return { audioTracks, otherTracks, videoTracks };
93
87
  };
94
- exports.getTracksFromAvi = getTracksFromAvi;
95
- const hasAllTracksFromAvi = (state) => {
88
+ export const hasAllTracksFromAvi = (state) => {
96
89
  try {
97
90
  const structure = state.getRiffStructure();
98
- const numberOfTracks = (0, exports.getNumberOfTracks)(structure);
99
- const tracks = (0, exports.getTracksFromAvi)(structure, state);
91
+ const numberOfTracks = getNumberOfTracks(structure);
92
+ const tracks = getTracksFromAvi(structure, state);
100
93
  return (tracks.videoTracks.length +
101
94
  tracks.audioTracks.length +
102
95
  tracks.otherTracks.length ===
103
96
  numberOfTracks &&
104
- !tracks.videoTracks.find((t) => t.codec === exports.TO_BE_OVERRIDDEN_LATER));
97
+ !tracks.videoTracks.find((t) => t.codec === TO_BE_OVERRIDDEN_LATER));
105
98
  }
106
99
  catch (_a) {
107
100
  return false;
108
101
  }
109
102
  };
110
- exports.hasAllTracksFromAvi = hasAllTracksFromAvi;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMoviAtom = void 0;
4
- const isMoviAtom = (iterator, ckId) => {
1
+ export const isMoviAtom = (iterator, ckId) => {
5
2
  if (ckId !== 'LIST') {
6
3
  return false;
7
4
  }
@@ -9,4 +6,3 @@ const isMoviAtom = (iterator, ckId) => {
9
6
  iterator.counter.decrement(4);
10
7
  return listType === 'movi';
11
8
  };
12
- exports.isMoviAtom = isMoviAtom;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseAvih = void 0;
4
- const parseAvih = ({ iterator, size, }) => {
1
+ export const parseAvih = ({ iterator, size, }) => {
5
2
  const { expectNoMoreBytes } = iterator.startBox(size);
6
3
  const dwMicroSecPerFrame = iterator.getUint32Le();
7
4
  const dwMaxBytesPerSec = iterator.getUint32Le();
@@ -29,4 +26,3 @@ const parseAvih = ({ iterator, size, }) => {
29
26
  width,
30
27
  };
31
28
  };
32
- exports.parseAvih = parseAvih;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseIsft = void 0;
4
- const parseIsft = ({ iterator, size, }) => {
1
+ export const parseIsft = ({ iterator, size, }) => {
5
2
  const { expectNoMoreBytes } = iterator.startBox(size);
6
3
  const software = iterator.getByteString(size - 1, false);
7
4
  const last = iterator.getUint8();
@@ -14,4 +11,3 @@ const parseIsft = ({ iterator, size, }) => {
14
11
  software,
15
12
  };
16
13
  };
17
- exports.parseIsft = parseIsft;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseListBox = void 0;
4
- const expect_riff_box_1 = require("./expect-riff-box");
5
- const parseListBox = async ({ size, state, }) => {
1
+ import { expectRiffBox } from './expect-riff-box';
2
+ export const parseListBox = async ({ size, state, }) => {
6
3
  const { iterator } = state;
7
4
  const counter = iterator.counter.getOffset();
8
5
  const listType = iterator.getByteString(4, false);
@@ -12,7 +9,7 @@ const parseListBox = async ({ size, state, }) => {
12
9
  const boxes = [];
13
10
  const maxOffset = counter + size;
14
11
  while (iterator.counter.getOffset() < maxOffset) {
15
- const box = await (0, expect_riff_box_1.expectRiffBox)(state);
12
+ const box = await expectRiffBox(state);
16
13
  if (box === null) {
17
14
  throw new Error('Unexpected result');
18
15
  }
@@ -24,4 +21,3 @@ const parseListBox = async ({ size, state, }) => {
24
21
  children: boxes,
25
22
  };
26
23
  };
27
- exports.parseListBox = parseListBox;
@@ -1,23 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMovi = exports.handleChunk = void 0;
4
- const convert_audio_or_video_sample_1 = require("../../convert-audio-or-video-sample");
5
- const key_1 = require("../avc/key");
6
- const parse_avc_1 = require("../avc/parse-avc");
7
- const traversal_1 = require("./traversal");
1
+ import { convertAudioOrVideoSampleToWebCodecsTimestamps } from '../../convert-audio-or-video-sample';
2
+ import { getKeyFrameOrDeltaFromAvcInfo } from '../avc/key';
3
+ import { parseAvc } from '../avc/parse-avc';
4
+ import { getStrhBox, getStrlBoxes } from './traversal';
8
5
  const getStrhForIndex = (structure, trackId) => {
9
- const boxes = (0, traversal_1.getStrlBoxes)(structure);
6
+ const boxes = getStrlBoxes(structure);
10
7
  const box = boxes[trackId];
11
8
  if (!box) {
12
9
  throw new Error('Expected box');
13
10
  }
14
- const strh = (0, traversal_1.getStrhBox)(box.children);
11
+ const strh = getStrhBox(box.children);
15
12
  if (!strh) {
16
13
  throw new Error('strh');
17
14
  }
18
15
  return strh;
19
16
  };
20
- const handleChunk = async ({ state, ckId, ckSize, }) => {
17
+ export const handleChunk = async ({ state, ckId, ckSize, }) => {
21
18
  const { iterator } = state;
22
19
  const offset = iterator.counter.getOffset();
23
20
  const videoChunk = ckId.match(/^([0-9]{2})dc$/);
@@ -29,8 +26,8 @@ const handleChunk = async ({ state, ckId, ckSize, }) => {
29
26
  const timeInSec = nthSample / samplesPerSecond;
30
27
  const timestamp = timeInSec;
31
28
  const data = iterator.getSlice(ckSize);
32
- const infos = (0, parse_avc_1.parseAvc)(data);
33
- const keyOrDelta = (0, key_1.getKeyFrameOrDeltaFromAvcInfo)(infos);
29
+ const infos = parseAvc(data);
30
+ const keyOrDelta = getKeyFrameOrDeltaFromAvcInfo(infos);
34
31
  const avcProfile = infos.find((i) => i.type === 'avc-profile');
35
32
  const ppsProfile = infos.find((i) => i.type === 'avc-pps');
36
33
  if (avcProfile && ppsProfile && !state.riff.getAvcProfile()) {
@@ -40,7 +37,7 @@ const handleChunk = async ({ state, ckId, ckSize, }) => {
40
37
  // We must also NOT pass a duration because if the the next sample is 0,
41
38
  // this sample would be longer. Chrome will pad it with silence.
42
39
  // If we'd pass a duration instead, it would shift the audio and we think that audio is not finished
43
- await state.callbacks.onVideoSample(trackId, (0, convert_audio_or_video_sample_1.convertAudioOrVideoSampleToWebCodecsTimestamps)({
40
+ await state.callbacks.onVideoSample(trackId, convertAudioOrVideoSampleToWebCodecsTimestamps({
44
41
  cts: timestamp,
45
42
  dts: timestamp,
46
43
  data,
@@ -67,7 +64,7 @@ const handleChunk = async ({ state, ckId, ckSize, }) => {
67
64
  // We must also NOT pass a duration because if the the next sample is 0,
68
65
  // this sample would be longer. Chrome will pad it with silence.
69
66
  // If we'd pass a duration instead, it would shift the audio and we think that audio is not finished
70
- await state.callbacks.onAudioSample(trackId, (0, convert_audio_or_video_sample_1.convertAudioOrVideoSampleToWebCodecsTimestamps)({
67
+ await state.callbacks.onAudioSample(trackId, convertAudioOrVideoSampleToWebCodecsTimestamps({
71
68
  cts: timestamp,
72
69
  dts: timestamp,
73
70
  data,
@@ -80,8 +77,7 @@ const handleChunk = async ({ state, ckId, ckSize, }) => {
80
77
  }, 1));
81
78
  }
82
79
  };
83
- exports.handleChunk = handleChunk;
84
- const parseMovi = async ({ state, }) => {
80
+ export const parseMovi = async ({ state, }) => {
85
81
  const { iterator } = state;
86
82
  if (iterator.bytesRemaining() < 8) {
87
83
  return Promise.resolve();
@@ -93,7 +89,7 @@ const parseMovi = async ({ state, }) => {
93
89
  checkpoint.returnToCheckpoint();
94
90
  return Promise.resolve();
95
91
  }
96
- await (0, exports.handleChunk)({ state, ckId, ckSize });
92
+ await handleChunk({ state, ckId, ckSize });
97
93
  const videoSection = state.videoSection.getVideoSection();
98
94
  const maxOffset = videoSection.start + videoSection.size;
99
95
  // Discard added zeroes
@@ -105,4 +101,3 @@ const parseMovi = async ({ state, }) => {
105
101
  }
106
102
  }
107
103
  };
108
- exports.parseMovi = parseMovi;
@@ -1,28 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseRiffBody = void 0;
4
- const skip_1 = require("../../skip");
5
- const may_skip_video_data_1 = require("../../state/may-skip-video-data");
6
- const expect_riff_box_1 = require("./expect-riff-box");
7
- const parse_video_section_1 = require("./parse-video-section");
8
- const parseRiffBody = async (state) => {
1
+ import { makeSkip } from '../../skip';
2
+ import { maySkipVideoData } from '../../state/may-skip-video-data';
3
+ import { expectRiffBox } from './expect-riff-box';
4
+ import { parseVideoSection } from './parse-video-section';
5
+ export const parseRiffBody = async (state) => {
9
6
  if (state.videoSection.isInVideoSectionState(state.iterator) === 'in-section') {
10
- if ((0, may_skip_video_data_1.maySkipVideoData)({
7
+ if (maySkipVideoData({
11
8
  state,
12
9
  }) &&
13
10
  state.riff.getAvcProfile()) {
14
11
  const videoSection = state.videoSection.getVideoSection();
15
12
  // only skipping forward in query mode
16
- return Promise.resolve((0, skip_1.makeSkip)(videoSection.start + videoSection.size));
13
+ return Promise.resolve(makeSkip(videoSection.start + videoSection.size));
17
14
  }
18
- await (0, parse_video_section_1.parseVideoSection)(state);
15
+ await parseVideoSection(state);
19
16
  return null;
20
17
  }
21
- const box = await (0, expect_riff_box_1.expectRiffBox)(state);
18
+ const box = await expectRiffBox(state);
22
19
  if (box !== null) {
23
20
  const structure = state.getRiffStructure();
24
21
  structure.boxes.push(box);
25
22
  }
26
23
  return null;
27
24
  };
28
- exports.parseRiffBody = parseRiffBody;
@@ -1,23 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseRiffBox = void 0;
4
- const parse_avih_1 = require("./parse-avih");
5
- const parse_isft_1 = require("./parse-isft");
6
- const parse_list_box_1 = require("./parse-list-box");
7
- const parse_strh_1 = require("./parse-strh");
8
- const parseRiffBox = ({ size, id, state, }) => {
1
+ import { parseAvih } from './parse-avih';
2
+ import { parseIsft } from './parse-isft';
3
+ import { parseListBox } from './parse-list-box';
4
+ import { parseStrh } from './parse-strh';
5
+ export const parseRiffBox = ({ size, id, state, }) => {
9
6
  const { iterator } = state;
10
7
  if (id === 'LIST') {
11
- return (0, parse_list_box_1.parseListBox)({ size, state });
8
+ return parseListBox({ size, state });
12
9
  }
13
10
  if (id === 'ISFT') {
14
- return Promise.resolve((0, parse_isft_1.parseIsft)({ iterator, size }));
11
+ return Promise.resolve(parseIsft({ iterator, size }));
15
12
  }
16
13
  if (id === 'avih') {
17
- return Promise.resolve((0, parse_avih_1.parseAvih)({ iterator, size }));
14
+ return Promise.resolve(parseAvih({ iterator, size }));
18
15
  }
19
16
  if (id === 'strh') {
20
- return Promise.resolve((0, parse_strh_1.parseStrh)({ iterator, size }));
17
+ return Promise.resolve(parseStrh({ iterator, size }));
21
18
  }
22
19
  iterator.discard(size);
23
20
  const box = {
@@ -27,4 +24,3 @@ const parseRiffBox = ({ size, id, state, }) => {
27
24
  };
28
25
  return Promise.resolve(box);
29
26
  };
30
- exports.parseRiffBox = parseRiffBox;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseRiffHeader = void 0;
4
- const parseRiffHeader = (state) => {
1
+ export const parseRiffHeader = (state) => {
5
2
  const riff = state.iterator.getByteString(4, false);
6
3
  if (riff !== 'RIFF') {
7
4
  throw new Error('Not a RIFF file');
@@ -15,4 +12,3 @@ const parseRiffHeader = (state) => {
15
12
  structure.boxes.push({ type: 'riff-header', fileSize: size, fileType });
16
13
  return null;
17
14
  };
18
- exports.parseRiffHeader = parseRiffHeader;
@@ -1,12 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseRiff = void 0;
4
- const parse_riff_body_1 = require("./parse-riff-body");
5
- const parse_riff_header_1 = require("./parse-riff-header");
6
- const parseRiff = (state) => {
1
+ import { parseRiffBody } from './parse-riff-body';
2
+ import { parseRiffHeader } from './parse-riff-header';
3
+ export const parseRiff = (state) => {
7
4
  if (state.iterator.counter.getOffset() === 0) {
8
- return Promise.resolve((0, parse_riff_header_1.parseRiffHeader)(state));
5
+ return Promise.resolve(parseRiffHeader(state));
9
6
  }
10
- return (0, parse_riff_body_1.parseRiffBody)(state);
7
+ return parseRiffBody(state);
11
8
  };
12
- exports.parseRiff = parseRiff;
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStrf = void 0;
4
1
  const parseStrfAudio = ({ iterator, size, }) => {
5
2
  const box = iterator.startBox(size);
6
3
  const formatTag = iterator.getUint16Le();
@@ -51,7 +48,7 @@ const parseStrfVideo = ({ iterator, size, }) => {
51
48
  yPelsPerMeter,
52
49
  };
53
50
  };
54
- const parseStrf = ({ iterator, size, fccType, }) => {
51
+ export const parseStrf = ({ iterator, size, fccType, }) => {
55
52
  if (fccType === 'vids') {
56
53
  return parseStrfVideo({ iterator, size });
57
54
  }
@@ -60,4 +57,3 @@ const parseStrf = ({ iterator, size, fccType, }) => {
60
57
  }
61
58
  throw new Error(`Unsupported fccType: ${fccType}`);
62
59
  };
63
- exports.parseStrf = parseStrf;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStrh = void 0;
4
- const parse_strf_1 = require("./parse-strf");
5
- const parseStrh = ({ iterator, size, }) => {
1
+ import { parseStrf } from './parse-strf';
2
+ export const parseStrh = ({ iterator, size, }) => {
6
3
  const box = iterator.startBox(size);
7
4
  const fccType = iterator.getByteString(4, false);
8
5
  if (fccType !== 'vids' && fccType !== 'auds') {
@@ -37,7 +34,7 @@ const parseStrh = ({ iterator, size, }) => {
37
34
  if (iterator.bytesRemaining() < ckSize) {
38
35
  throw new Error('Expected strf to be complete');
39
36
  }
40
- const strf = (0, parse_strf_1.parseStrf)({ iterator, size: ckSize, fccType });
37
+ const strf = parseStrf({ iterator, size: ckSize, fccType });
41
38
  return {
42
39
  type: 'strh-box',
43
40
  fccType,
@@ -56,4 +53,3 @@ const parseStrh = ({ iterator, size, }) => {
56
53
  strf,
57
54
  };
58
55
  };
59
- exports.parseStrh = parseStrh;
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseVideoSection = void 0;
4
- const get_tracks_1 = require("../../get-tracks");
5
- const get_tracks_from_avi_1 = require("./get-tracks-from-avi");
6
- const parse_movi_1 = require("./parse-movi");
7
- const parseVideoSection = async (state) => {
8
- await (0, parse_movi_1.parseMovi)({
1
+ import { getTracks } from '../../get-tracks';
2
+ import { TO_BE_OVERRIDDEN_LATER } from './get-tracks-from-avi';
3
+ import { parseMovi } from './parse-movi';
4
+ export const parseVideoSection = async (state) => {
5
+ await parseMovi({
9
6
  state,
10
7
  });
11
- const tracks = (0, get_tracks_1.getTracks)(state);
12
- if (!tracks.videoTracks.some((t) => t.codec === get_tracks_from_avi_1.TO_BE_OVERRIDDEN_LATER) &&
8
+ const tracks = getTracks(state);
9
+ if (!tracks.videoTracks.some((t) => t.codec === TO_BE_OVERRIDDEN_LATER) &&
13
10
  !state.callbacks.tracks.getIsDone()) {
14
11
  state.callbacks.tracks.setIsDone(state.logLevel);
15
12
  }
16
13
  };
17
- exports.parseVideoSection = parseVideoSection;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MEDIA_PARSER_RIFF_TIMESCALE = void 0;
4
- exports.MEDIA_PARSER_RIFF_TIMESCALE = 1000000;
1
+ export const MEDIA_PARSER_RIFF_TIMESCALE = 1000000;
@@ -1,31 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStrhBox = exports.getStrlBoxes = exports.getAvihBox = exports.getHdlrBox = exports.isRiffAvi = void 0;
4
- const isRiffAvi = (structure) => {
1
+ export const isRiffAvi = (structure) => {
5
2
  return structure.boxes.some((box) => box.type === 'riff-header' && box.fileType === 'AVI');
6
3
  };
7
- exports.isRiffAvi = isRiffAvi;
8
- const getHdlrBox = (structure) => {
4
+ export const getHdlrBox = (structure) => {
9
5
  return structure.boxes.find((box) => box.type === 'list-box' && box.listType === 'hdrl');
10
6
  };
11
- exports.getHdlrBox = getHdlrBox;
12
- const getAvihBox = (structure) => {
13
- const hdlrBox = (0, exports.getHdlrBox)(structure);
7
+ export const getAvihBox = (structure) => {
8
+ const hdlrBox = getHdlrBox(structure);
14
9
  if (!hdlrBox) {
15
10
  return null;
16
11
  }
17
12
  return hdlrBox.children.find((box) => box.type === 'avih-box');
18
13
  };
19
- exports.getAvihBox = getAvihBox;
20
- const getStrlBoxes = (structure) => {
21
- const hdlrBox = (0, exports.getHdlrBox)(structure);
14
+ export const getStrlBoxes = (structure) => {
15
+ const hdlrBox = getHdlrBox(structure);
22
16
  if (!hdlrBox) {
23
17
  return [];
24
18
  }
25
19
  return hdlrBox.children.filter((box) => box.type === 'list-box' && box.listType === 'strl');
26
20
  };
27
- exports.getStrlBoxes = getStrlBoxes;
28
- const getStrhBox = (strlBoxChildren) => {
21
+ export const getStrhBox = (strlBoxChildren) => {
29
22
  return strlBoxChildren.find((box) => box.type === 'strh-box');
30
23
  };
31
- exports.getStrhBox = getStrhBox;
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readAdtsHeader = void 0;
4
- const aac_codecprivate_1 = require("../../aac-codecprivate");
5
- const buffer_iterator_1 = require("../../buffer-iterator");
6
- const readAdtsHeader = (buffer) => {
1
+ import { createAacCodecPrivate, getSampleRateFromSampleFrequencyIndex, } from '../../aac-codecprivate';
2
+ import { getArrayBufferIterator } from '../../buffer-iterator';
3
+ export const readAdtsHeader = (buffer) => {
7
4
  if (buffer.byteLength < 9) {
8
5
  return null;
9
6
  }
10
- const iterator = (0, buffer_iterator_1.getArrayBufferIterator)(buffer, buffer.byteLength);
7
+ const iterator = getArrayBufferIterator(buffer, buffer.byteLength);
11
8
  iterator.startReadingBits();
12
9
  const bits = iterator.getBits(12);
13
10
  if (bits !== 0xfff) {
@@ -25,10 +22,10 @@ const readAdtsHeader = (buffer) => {
25
22
  const protectionAbsent = iterator.getBits(1); // protection absent
26
23
  const audioObjectType = iterator.getBits(2); // 1 = 'AAC-LC'
27
24
  const samplingFrequencyIndex = iterator.getBits(4);
28
- const sampleRate = (0, aac_codecprivate_1.getSampleRateFromSampleFrequencyIndex)(samplingFrequencyIndex);
25
+ const sampleRate = getSampleRateFromSampleFrequencyIndex(samplingFrequencyIndex);
29
26
  iterator.getBits(1); // private bit
30
27
  const channelConfiguration = iterator.getBits(3);
31
- const codecPrivate = (0, aac_codecprivate_1.createAacCodecPrivate)({
28
+ const codecPrivate = createAacCodecPrivate({
32
29
  audioObjectType,
33
30
  sampleRate,
34
31
  channelConfiguration,
@@ -54,4 +51,3 @@ const readAdtsHeader = (buffer) => {
54
51
  audioObjectType,
55
52
  };
56
53
  };
57
- exports.readAdtsHeader = readAdtsHeader;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,13 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRestOfPacket = exports.discardRestOfPacket = void 0;
4
- const discardRestOfPacket = (iterator) => {
1
+ export const discardRestOfPacket = (iterator) => {
5
2
  const next188 = 188 - (iterator.counter.getOffset() % 188);
6
3
  iterator.discard(next188);
7
4
  };
8
- exports.discardRestOfPacket = discardRestOfPacket;
9
- const getRestOfPacket = (iterator) => {
5
+ export const getRestOfPacket = (iterator) => {
10
6
  const next188 = 188 - (iterator.counter.getOffset() % 188);
11
7
  return iterator.getSlice(next188);
12
8
  };
13
- exports.getRestOfPacket = getRestOfPacket;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findNthSubarrayIndex = findNthSubarrayIndex;
4
- function findNthSubarrayIndex(array, subarray, n) {
1
+ export function findNthSubarrayIndex(array, subarray, n) {
5
2
  const subarrayLength = subarray.length;
6
3
  const arrayLength = array.length;
7
4
  let count = 0;
@@ -1,4 +1,6 @@
1
1
  import type { ParserState } from '../../state/parser-state';
2
2
  import type { AllTracks } from '../riff/get-tracks-from-avi';
3
+ import type { TransportStreamEntry } from './parse-pmt';
4
+ export declare const filterStreamsBySupportedTypes: (streams: TransportStreamEntry[]) => TransportStreamEntry[];
3
5
  export declare const getTracksFromTransportStream: (parserState: ParserState) => AllTracks;
4
6
  export declare const hasAllTracksFromTransportStream: (parserState: ParserState) => boolean;