@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,18 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasAllTracksFromTransportStream = exports.getTracksFromTransportStream = void 0;
4
- const truthy_1 = require("../../truthy");
5
- const traversal_1 = require("./traversal");
6
- const getTracksFromTransportStream = (parserState) => {
1
+ import { truthy } from '../../truthy';
2
+ import { findProgramMapTableOrThrow } from './traversal';
3
+ export const filterStreamsBySupportedTypes = (streams) => {
4
+ return streams.filter((stream) => stream.streamType === 27 || stream.streamType === 15);
5
+ };
6
+ export const getTracksFromTransportStream = (parserState) => {
7
7
  const structure = parserState.getTsStructure();
8
- const programMapTable = (0, traversal_1.findProgramMapTableOrThrow)(structure);
8
+ const programMapTable = findProgramMapTableOrThrow(structure);
9
9
  const parserTracks = parserState.callbacks.tracks.getTracks();
10
- const mapped = programMapTable.streams
10
+ const mapped = filterStreamsBySupportedTypes(programMapTable.streams)
11
11
  .map((stream) => {
12
12
  return parserTracks.find((track) => track.trackId === stream.pid);
13
13
  })
14
- .filter(truthy_1.truthy);
15
- if (mapped.length !== programMapTable.streams.length) {
14
+ .filter(truthy);
15
+ if (mapped.length !==
16
+ filterStreamsBySupportedTypes(programMapTable.streams).length) {
16
17
  throw new Error('Not all tracks found');
17
18
  }
18
19
  return {
@@ -21,14 +22,12 @@ const getTracksFromTransportStream = (parserState) => {
21
22
  otherTracks: [],
22
23
  };
23
24
  };
24
- exports.getTracksFromTransportStream = getTracksFromTransportStream;
25
- const hasAllTracksFromTransportStream = (parserState) => {
25
+ export const hasAllTracksFromTransportStream = (parserState) => {
26
26
  try {
27
- (0, exports.getTracksFromTransportStream)(parserState);
27
+ getTracksFromTransportStream(parserState);
28
28
  return true;
29
29
  }
30
30
  catch (_a) {
31
31
  return false;
32
32
  }
33
33
  };
34
- exports.hasAllTracksFromTransportStream = hasAllTracksFromTransportStream;
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleAacPacket = void 0;
4
- const aac_codecprivate_1 = require("../../aac-codecprivate");
5
- const convert_audio_or_video_sample_1 = require("../../convert-audio-or-video-sample");
6
- const register_track_1 = require("../../register-track");
7
- const adts_header_1 = require("./adts-header");
8
- const handle_avc_packet_1 = require("./handle-avc-packet");
9
- const handleAacPacket = async ({ streamBuffer, state, programId, offset, }) => {
1
+ import { mapAudioObjectTypeToCodecString } from '../../aac-codecprivate';
2
+ import { convertAudioOrVideoSampleToWebCodecsTimestamps } from '../../convert-audio-or-video-sample';
3
+ import { registerAudioTrack } from '../../register-track';
4
+ import { readAdtsHeader } from './adts-header';
5
+ import { MPEG_TIMESCALE } from './handle-avc-packet';
6
+ export const handleAacPacket = async ({ streamBuffer, state, programId, offset, }) => {
10
7
  var _a;
11
- const adtsHeader = (0, adts_header_1.readAdtsHeader)(streamBuffer.buffer);
8
+ const adtsHeader = readAdtsHeader(streamBuffer.buffer);
12
9
  if (!adtsHeader) {
13
10
  throw new Error('Invalid ADTS header - too short');
14
11
  }
@@ -22,15 +19,15 @@ const handleAacPacket = async ({ streamBuffer, state, programId, offset, }) => {
22
19
  codecPrivate,
23
20
  trackId: programId,
24
21
  trakBox: null,
25
- timescale: handle_avc_packet_1.MPEG_TIMESCALE,
22
+ timescale: MPEG_TIMESCALE,
26
23
  codecWithoutConfig: 'aac',
27
- codec: (0, aac_codecprivate_1.mapAudioObjectTypeToCodecString)(audioObjectType),
24
+ codec: mapAudioObjectTypeToCodecString(audioObjectType),
28
25
  // https://www.w3.org/TR/webcodecs-aac-codec-registration/
29
26
  description: undefined,
30
27
  numberOfChannels: channelConfiguration,
31
28
  sampleRate,
32
29
  };
33
- await (0, register_track_1.registerAudioTrack)({
30
+ await registerAudioTrack({
34
31
  track,
35
32
  state,
36
33
  container: 'transport-stream',
@@ -45,8 +42,7 @@ const handleAacPacket = async ({ streamBuffer, state, programId, offset, }) => {
45
42
  trackId: programId,
46
43
  type: 'key',
47
44
  offset,
48
- timescale: handle_avc_packet_1.MPEG_TIMESCALE,
45
+ timescale: MPEG_TIMESCALE,
49
46
  };
50
- await state.callbacks.onAudioSample(programId, (0, convert_audio_or_video_sample_1.convertAudioOrVideoSampleToWebCodecsTimestamps)(sample, handle_avc_packet_1.MPEG_TIMESCALE));
47
+ await state.callbacks.onAudioSample(programId, convertAudioOrVideoSampleToWebCodecsTimestamps(sample, MPEG_TIMESCALE));
51
48
  };
52
- exports.handleAacPacket = handleAacPacket;
@@ -1,32 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleAvcPacket = exports.MPEG_TIMESCALE = void 0;
4
- const convert_audio_or_video_sample_1 = require("../../convert-audio-or-video-sample");
5
- const register_track_1 = require("../../register-track");
6
- const codec_string_1 = require("../avc/codec-string");
7
- const create_sps_pps_data_1 = require("../avc/create-sps-pps-data");
8
- const interpret_sps_1 = require("../avc/interpret-sps");
9
- const key_1 = require("../avc/key");
10
- const parse_avc_1 = require("../avc/parse-avc");
11
- const sps_and_pps_1 = require("../avc/sps-and-pps");
12
- exports.MPEG_TIMESCALE = 90000;
13
- const handleAvcPacket = async ({ streamBuffer, programId, state, offset, }) => {
1
+ import { convertAudioOrVideoSampleToWebCodecsTimestamps } from '../../convert-audio-or-video-sample';
2
+ import { registerVideoTrack } from '../../register-track';
3
+ import { getCodecStringFromSpsAndPps } from '../avc/codec-string';
4
+ import { createSpsPpsData } from '../avc/create-sps-pps-data';
5
+ import { getDimensionsFromSps, getSampleAspectRatioFromSps, getVideoColorFromSps, } from '../avc/interpret-sps';
6
+ import { getKeyFrameOrDeltaFromAvcInfo } from '../avc/key';
7
+ import { parseAvc } from '../avc/parse-avc';
8
+ import { getSpsAndPps } from '../avc/sps-and-pps';
9
+ export const MPEG_TIMESCALE = 90000;
10
+ export const handleAvcPacket = async ({ streamBuffer, programId, state, offset, }) => {
14
11
  var _a;
15
- const avc = (0, parse_avc_1.parseAvc)(streamBuffer.buffer);
12
+ const avc = parseAvc(streamBuffer.buffer);
16
13
  const isTrackRegistered = state.callbacks.tracks.getTracks().find((t) => {
17
14
  return t.trackId === programId;
18
15
  });
19
16
  if (!isTrackRegistered) {
20
- const spsAndPps = (0, sps_and_pps_1.getSpsAndPps)(avc);
21
- const dimensions = (0, interpret_sps_1.getDimensionsFromSps)(spsAndPps.sps.spsData);
22
- const sampleAspectRatio = (0, interpret_sps_1.getSampleAspectRatioFromSps)(spsAndPps.sps.spsData);
17
+ const spsAndPps = getSpsAndPps(avc);
18
+ const dimensions = getDimensionsFromSps(spsAndPps.sps.spsData);
19
+ const sampleAspectRatio = getSampleAspectRatioFromSps(spsAndPps.sps.spsData);
23
20
  const track = {
24
21
  rotation: 0,
25
22
  trackId: programId,
26
23
  type: 'video',
27
- timescale: exports.MPEG_TIMESCALE,
28
- codec: (0, codec_string_1.getCodecStringFromSpsAndPps)(spsAndPps.sps),
29
- codecPrivate: (0, create_sps_pps_data_1.createSpsPpsData)(spsAndPps),
24
+ timescale: MPEG_TIMESCALE,
25
+ codec: getCodecStringFromSpsAndPps(spsAndPps.sps),
26
+ codecPrivate: createSpsPpsData(spsAndPps),
30
27
  fps: null,
31
28
  codedWidth: dimensions.width,
32
29
  codedHeight: dimensions.height,
@@ -41,9 +38,9 @@ const handleAvcPacket = async ({ streamBuffer, programId, state, offset, }) => {
41
38
  denominator: sampleAspectRatio.height,
42
39
  numerator: sampleAspectRatio.width,
43
40
  },
44
- color: (0, interpret_sps_1.getVideoColorFromSps)(spsAndPps.sps.spsData),
41
+ color: getVideoColorFromSps(spsAndPps.sps.spsData),
45
42
  };
46
- await (0, register_track_1.registerVideoTrack)({ track, state, container: 'transport-stream' });
43
+ await registerVideoTrack({ track, state, container: 'transport-stream' });
47
44
  }
48
45
  // sample for webcodecs needs to be in nano seconds
49
46
  const sample = {
@@ -53,10 +50,9 @@ const handleAvcPacket = async ({ streamBuffer, programId, state, offset, }) => {
53
50
  duration: undefined,
54
51
  data: new Uint8Array(streamBuffer.buffer),
55
52
  trackId: programId,
56
- type: (0, key_1.getKeyFrameOrDeltaFromAvcInfo)(avc),
53
+ type: getKeyFrameOrDeltaFromAvcInfo(avc),
57
54
  offset,
58
- timescale: exports.MPEG_TIMESCALE,
55
+ timescale: MPEG_TIMESCALE,
59
56
  };
60
- await state.callbacks.onVideoSample(programId, (0, convert_audio_or_video_sample_1.convertAudioOrVideoSampleToWebCodecsTimestamps)(sample, exports.MPEG_TIMESCALE));
57
+ await state.callbacks.onVideoSample(programId, convertAudioOrVideoSampleToWebCodecsTimestamps(sample, MPEG_TIMESCALE));
61
58
  };
62
- exports.handleAvcPacket = handleAvcPacket;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeNextPesHeaderStore = void 0;
4
- const makeNextPesHeaderStore = () => {
1
+ export const makeNextPesHeaderStore = () => {
5
2
  let nextPesHeader = null;
6
3
  return {
7
4
  setNextPesHeader: (pesHeader) => {
@@ -15,4 +12,3 @@ const makeNextPesHeaderStore = () => {
15
12
  },
16
13
  };
17
14
  };
18
- exports.makeNextPesHeaderStore = makeNextPesHeaderStore;
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePacket = void 0;
4
- const parse_pat_1 = require("./parse-pat");
5
- const parse_pes_1 = require("./parse-pes");
6
- const parse_pmt_1 = require("./parse-pmt");
7
- const parse_stream_packet_1 = require("./parse-stream-packet");
8
- const traversal_1 = require("./traversal");
9
- const parsePacket = async ({ parserState, }) => {
1
+ import { parsePat, parseSdt } from './parse-pat';
2
+ import { parsePes } from './parse-pes';
3
+ import { parsePmt } from './parse-pmt';
4
+ import { parseStream } from './parse-stream-packet';
5
+ import { getProgramForId, getStreamForId } from './traversal';
6
+ export const parsePacket = async ({ parserState, }) => {
10
7
  const { iterator } = parserState;
11
8
  const offset = iterator.counter.getOffset();
12
9
  const syncByte = iterator.getUint8();
@@ -50,29 +47,29 @@ const parsePacket = async ({ parserState, }) => {
50
47
  const pat = structure.boxes.find((b) => b.type === 'transport-stream-pmt-box');
51
48
  const isPes = payloadUnitStartIndicator && (pat === null || pat === void 0 ? void 0 : pat.streams.find((e) => e.pid === programId));
52
49
  if (isPes) {
53
- const packetPes = (0, parse_pes_1.parsePes)(iterator);
50
+ const packetPes = parsePes(iterator);
54
51
  parserState.transportStream.nextPesHeaderStore.setNextPesHeader(packetPes);
55
52
  }
56
53
  else if (payloadUnitStartIndicator === 1) {
57
54
  iterator.getUint8(); // pointerField
58
55
  }
59
56
  if (programId === 0) {
60
- return Promise.resolve((0, parse_pat_1.parsePat)(iterator));
57
+ return Promise.resolve(parsePat(iterator));
61
58
  }
62
59
  if (programId === 17) {
63
- return Promise.resolve((0, parse_pat_1.parseSdt)(iterator));
60
+ return Promise.resolve(parseSdt(iterator));
64
61
  }
65
62
  // PID 17 is SDT
66
63
  // https://de.wikipedia.org/wiki/MPEG-Transportstrom
67
64
  // Die Service Description Table nennt den Programmnamen (z. B. „ZDF“) und gibt weitere Informationen der einzelnen Programme (Services); sie wird auf PID 17 übertragen.
68
- const program = programId === 17 ? null : (0, traversal_1.getProgramForId)(structure, programId);
65
+ const program = programId === 17 ? null : getProgramForId(structure, programId);
69
66
  if (program) {
70
- const pmt = (0, parse_pmt_1.parsePmt)(iterator);
67
+ const pmt = parsePmt(iterator);
71
68
  return Promise.resolve(pmt);
72
69
  }
73
- const stream = (0, traversal_1.getStreamForId)(structure, programId);
70
+ const stream = getStreamForId(structure, programId);
74
71
  if (stream) {
75
- await (0, parse_stream_packet_1.parseStream)({
72
+ await parseStream({
76
73
  transportStreamEntry: stream,
77
74
  state: parserState,
78
75
  programId,
@@ -82,4 +79,3 @@ const parsePacket = async ({ parserState, }) => {
82
79
  }
83
80
  throw new Error('Unknown packet identifier');
84
81
  };
85
- exports.parsePacket = parsePacket;
@@ -1,8 +1,5 @@
1
- "use strict";
2
1
  // https://en.wikipedia.org/wiki/Program-specific_information
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.parseSdt = exports.parsePat = void 0;
5
- const discard_rest_of_packet_1 = require("./discard-rest-of-packet");
2
+ import { discardRestOfPacket } from './discard-rest-of-packet';
6
3
  const parsePatTable = (iterator, tableId) => {
7
4
  iterator.getUint16(); // table ID extension
8
5
  iterator.startReadingBits();
@@ -31,7 +28,7 @@ const parsePatTable = (iterator, tableId) => {
31
28
  pat: tables,
32
29
  };
33
30
  };
34
- const parsePat = (iterator) => {
31
+ export const parsePat = (iterator) => {
35
32
  iterator.startReadingBits();
36
33
  const tableId = iterator.getBits(8);
37
34
  iterator.getBits(1); // syntax indicator
@@ -43,11 +40,10 @@ const parsePat = (iterator) => {
43
40
  }
44
41
  iterator.stopReadingBits();
45
42
  const tables = parsePatTable(iterator, tableId);
46
- (0, discard_rest_of_packet_1.discardRestOfPacket)(iterator);
43
+ discardRestOfPacket(iterator);
47
44
  return tables;
48
45
  };
49
- exports.parsePat = parsePat;
50
- const parseSdt = (iterator) => {
46
+ export const parseSdt = (iterator) => {
51
47
  iterator.startReadingBits();
52
48
  iterator.getBits(8); // table ID
53
49
  iterator.getBits(1); // section syntax indicator
@@ -56,9 +52,8 @@ const parseSdt = (iterator) => {
56
52
  const sectionLength = iterator.getBits(12);
57
53
  iterator.stopReadingBits();
58
54
  iterator.discard(sectionLength);
59
- (0, discard_rest_of_packet_1.discardRestOfPacket)(iterator);
55
+ discardRestOfPacket(iterator);
60
56
  return {
61
57
  type: 'transport-stream-sdt-box',
62
58
  };
63
59
  };
64
- exports.parseSdt = parseSdt;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePes = void 0;
4
- const parsePes = (iterator) => {
1
+ export const parsePes = (iterator) => {
5
2
  const ident = iterator.getUint24();
6
3
  if (ident !== 0x000001) {
7
4
  throw new Error(`Unexpected PES packet start code: ${ident.toString(16)}`);
@@ -73,4 +70,3 @@ const parsePes = (iterator) => {
73
70
  };
74
71
  return packet;
75
72
  };
76
- exports.parsePes = parsePes;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePmt = void 0;
4
- const discard_rest_of_packet_1 = require("./discard-rest-of-packet");
1
+ import { discardRestOfPacket } from './discard-rest-of-packet';
5
2
  const parsePmtTable = ({ iterator, tableId, sectionLength, }) => {
6
3
  const start = iterator.counter.getOffset();
7
4
  iterator.getUint16(); // table ID extension
@@ -11,11 +8,12 @@ const parsePmtTable = ({ iterator, tableId, sectionLength, }) => {
11
8
  const sectionNumber = iterator.getBits(8);
12
9
  const lastSectionNumber = iterator.getBits(8);
13
10
  const tables = [];
11
+ iterator.getBits(3); // reserved
12
+ iterator.getBits(13); // PCR PID
13
+ iterator.getBits(4); // reserved
14
+ const programInfoLength = iterator.getBits(12);
15
+ iterator.getBits(programInfoLength * 8); // program descriptor
14
16
  for (let i = sectionNumber; i <= lastSectionNumber; i++) {
15
- iterator.getBits(3); // reserved
16
- iterator.getBits(13); // PCR PID
17
- iterator.getBits(4); // reserved
18
- const programInfoLength = iterator.getBits(12);
19
17
  const streams = [];
20
18
  while (true) {
21
19
  const streamType = iterator.getBits(8);
@@ -25,7 +23,6 @@ const parsePmtTable = ({ iterator, tableId, sectionLength, }) => {
25
23
  const esInfoLength = iterator.getBits(12);
26
24
  iterator.getBits(esInfoLength * 8);
27
25
  streams.push({ streamType, pid: elementaryPid });
28
- iterator.getBits(programInfoLength * 8); // program descriptor
29
26
  const remaining = sectionLength - (iterator.counter.getOffset() - start);
30
27
  if (remaining <= 4) {
31
28
  break;
@@ -46,7 +43,7 @@ const parsePmtTable = ({ iterator, tableId, sectionLength, }) => {
46
43
  streams: tables[0].streams,
47
44
  };
48
45
  };
49
- const parsePmt = (iterator) => {
46
+ export const parsePmt = (iterator) => {
50
47
  iterator.startReadingBits();
51
48
  const tableId = iterator.getBits(8);
52
49
  iterator.getBits(1); // syntax indicator
@@ -58,7 +55,6 @@ const parsePmt = (iterator) => {
58
55
  }
59
56
  iterator.stopReadingBits();
60
57
  const tables = parsePmtTable({ iterator, tableId, sectionLength });
61
- (0, discard_rest_of_packet_1.discardRestOfPacket)(iterator);
58
+ discardRestOfPacket(iterator);
62
59
  return tables;
63
60
  };
64
- exports.parsePmt = parsePmt;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStream = void 0;
4
- const combine_uint8_arrays_1 = require("../../combine-uint8-arrays");
5
- const adts_header_1 = require("./adts-header");
6
- const discard_rest_of_packet_1 = require("./discard-rest-of-packet");
7
- const find_separator_1 = require("./find-separator");
8
- const process_stream_buffers_1 = require("./process-stream-buffers");
1
+ import { combineUint8Arrays } from '../../combine-uint8-arrays';
2
+ import { readAdtsHeader } from './adts-header';
3
+ import { getRestOfPacket } from './discard-rest-of-packet';
4
+ import { findNthSubarrayIndex } from './find-separator';
5
+ import { processStreamBuffer } from './process-stream-buffers';
9
6
  const parseAdtsStream = async ({ transportStreamEntry, state, structure, offset, }) => {
10
7
  var _a, _b;
11
8
  const { streamBuffers, nextPesHeaderStore: nextPesHeader } = state.transportStream;
@@ -14,14 +11,14 @@ const parseAdtsStream = async ({ transportStreamEntry, state, structure, offset,
14
11
  if (!streamBuffer) {
15
12
  throw new Error('Stream buffer not found');
16
13
  }
17
- const expectedLength = (_b = (_a = (0, adts_header_1.readAdtsHeader)(streamBuffer.buffer)) === null || _a === void 0 ? void 0 : _a.frameLength) !== null && _b !== void 0 ? _b : null;
14
+ const expectedLength = (_b = (_a = readAdtsHeader(streamBuffer.buffer)) === null || _a === void 0 ? void 0 : _a.frameLength) !== null && _b !== void 0 ? _b : null;
18
15
  if (expectedLength === null) {
19
16
  break;
20
17
  }
21
18
  if (expectedLength > streamBuffer.buffer.length) {
22
19
  break;
23
20
  }
24
- await (0, process_stream_buffers_1.processStreamBuffer)({
21
+ await processStreamBuffer({
25
22
  streamBuffer: {
26
23
  buffer: streamBuffer.buffer.slice(0, expectedLength),
27
24
  offset,
@@ -40,13 +37,13 @@ const parseAdtsStream = async ({ transportStreamEntry, state, structure, offset,
40
37
  }
41
38
  };
42
39
  const parseAvcStream = async ({ programId, state, structure, streamBuffer, }) => {
43
- const indexOfSeparator = (0, find_separator_1.findNthSubarrayIndex)(streamBuffer.buffer, new Uint8Array([0, 0, 1, 9]), 2);
40
+ const indexOfSeparator = findNthSubarrayIndex(streamBuffer.buffer, new Uint8Array([0, 0, 1, 9]), 2);
44
41
  if (indexOfSeparator === -1 || indexOfSeparator === 0) {
45
42
  return null;
46
43
  }
47
44
  const packet = streamBuffer.buffer.slice(0, indexOfSeparator);
48
45
  const rest = streamBuffer.buffer.slice(indexOfSeparator);
49
- await (0, process_stream_buffers_1.processStreamBuffer)({
46
+ await processStreamBuffer({
50
47
  state,
51
48
  streamBuffer: {
52
49
  offset: streamBuffer.offset,
@@ -59,9 +56,9 @@ const parseAvcStream = async ({ programId, state, structure, streamBuffer, }) =>
59
56
  });
60
57
  return rest;
61
58
  };
62
- const parseStream = async ({ transportStreamEntry, state, programId, structure, }) => {
59
+ export const parseStream = async ({ transportStreamEntry, state, programId, structure, }) => {
63
60
  const { iterator } = state;
64
- let restOfPacket = (0, discard_rest_of_packet_1.getRestOfPacket)(iterator);
61
+ let restOfPacket = getRestOfPacket(iterator);
65
62
  const offset = iterator.counter.getOffset();
66
63
  if (transportStreamEntry.streamType === 27) {
67
64
  const { streamBuffers, nextPesHeaderStore: nextPesHeader } = state.transportStream;
@@ -74,7 +71,7 @@ const parseStream = async ({ transportStreamEntry, state, programId, structure,
74
71
  });
75
72
  }
76
73
  const streamBuffer = streamBuffers.get(transportStreamEntry.pid);
77
- streamBuffer.buffer = (0, combine_uint8_arrays_1.combineUint8Arrays)([
74
+ streamBuffer.buffer = combineUint8Arrays([
78
75
  streamBuffer.buffer,
79
76
  restOfPacket,
80
77
  ]);
@@ -108,7 +105,7 @@ const parseStream = async ({ transportStreamEntry, state, programId, structure,
108
105
  });
109
106
  }
110
107
  else {
111
- streamBuffer.buffer = (0, combine_uint8_arrays_1.combineUint8Arrays)([
108
+ streamBuffer.buffer = combineUint8Arrays([
112
109
  streamBuffer.buffer,
113
110
  restOfPacket,
114
111
  ]);
@@ -122,4 +119,3 @@ const parseStream = async ({ transportStreamEntry, state, programId, structure,
122
119
  }
123
120
  throw new Error(`Unsupported stream type ${transportStreamEntry.streamType}`);
124
121
  };
125
- exports.parseStream = parseStream;
@@ -1,26 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseTransportStream = void 0;
4
- const parse_packet_1 = require("./parse-packet");
5
- const process_stream_buffers_1 = require("./process-stream-buffers");
6
- const parseTransportStream = async (state) => {
1
+ import { parsePacket } from './parse-packet';
2
+ import { processFinalStreamBuffers } from './process-stream-buffers';
3
+ export const parseTransportStream = async (state) => {
7
4
  const structure = state.getTsStructure();
8
5
  const { iterator } = state;
9
6
  if (iterator.bytesRemaining() < 188) {
10
7
  return Promise.resolve(null);
11
8
  }
12
- const packet = await (0, parse_packet_1.parsePacket)({
9
+ const packet = await parsePacket({
13
10
  parserState: state,
14
11
  });
15
12
  if (packet) {
16
13
  structure.boxes.push(packet);
17
14
  }
18
15
  if (iterator.bytesRemaining() === 0) {
19
- await (0, process_stream_buffers_1.processFinalStreamBuffers)({
16
+ await processFinalStreamBuffers({
20
17
  state,
21
18
  structure,
22
19
  });
23
20
  }
24
21
  return Promise.resolve(null);
25
22
  };
26
- exports.parseTransportStream = parseTransportStream;
@@ -1,17 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processFinalStreamBuffers = exports.processStreamBuffer = void 0;
4
- const handle_aac_packet_1 = require("./handle-aac-packet");
5
- const handle_avc_packet_1 = require("./handle-avc-packet");
6
- const traversal_1 = require("./traversal");
7
- const processStreamBuffer = async ({ streamBuffer, state, programId, structure, }) => {
8
- const stream = (0, traversal_1.getStreamForId)(structure, programId);
1
+ import { filterStreamsBySupportedTypes } from './get-tracks';
2
+ import { handleAacPacket } from './handle-aac-packet';
3
+ import { handleAvcPacket } from './handle-avc-packet';
4
+ import { findProgramMapTableOrThrow, getStreamForId } from './traversal';
5
+ export const processStreamBuffer = async ({ streamBuffer, state, programId, structure, }) => {
6
+ const stream = getStreamForId(structure, programId);
9
7
  if (!stream) {
10
8
  throw new Error('No stream found');
11
9
  }
12
10
  // 27 = AVC / H.264 Video
13
11
  if (stream.streamType === 27) {
14
- await (0, handle_avc_packet_1.handleAvcPacket)({
12
+ await handleAvcPacket({
15
13
  programId,
16
14
  streamBuffer,
17
15
  state,
@@ -20,7 +18,7 @@ const processStreamBuffer = async ({ streamBuffer, state, programId, structure,
20
18
  }
21
19
  // 15 = AAC / ADTS
22
20
  else if (stream.streamType === 15) {
23
- await (0, handle_aac_packet_1.handleAacPacket)({
21
+ await handleAacPacket({
24
22
  streamBuffer,
25
23
  state,
26
24
  programId,
@@ -29,17 +27,16 @@ const processStreamBuffer = async ({ streamBuffer, state, programId, structure,
29
27
  }
30
28
  if (!state.callbacks.tracks.hasAllTracks()) {
31
29
  const tracksRegistered = state.callbacks.tracks.getTracks().length;
32
- const { streams } = (0, traversal_1.findProgramMapTableOrThrow)(structure);
33
- if (streams.length === tracksRegistered) {
30
+ const { streams } = findProgramMapTableOrThrow(structure);
31
+ if (filterStreamsBySupportedTypes(streams).length === tracksRegistered) {
34
32
  state.callbacks.tracks.setIsDone(state.logLevel);
35
33
  }
36
34
  }
37
35
  };
38
- exports.processStreamBuffer = processStreamBuffer;
39
- const processFinalStreamBuffers = async ({ state, structure, }) => {
36
+ export const processFinalStreamBuffers = async ({ state, structure, }) => {
40
37
  for (const [programId, buffer] of state.transportStream.streamBuffers) {
41
38
  if (buffer.buffer.byteLength > 0) {
42
- await (0, exports.processStreamBuffer)({
39
+ await processStreamBuffer({
43
40
  streamBuffer: buffer,
44
41
  state,
45
42
  programId,
@@ -49,4 +46,3 @@ const processFinalStreamBuffers = async ({ state, structure, }) => {
49
46
  }
50
47
  }
51
48
  };
52
- exports.processFinalStreamBuffers = processFinalStreamBuffers;
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStreamForId = exports.getProgramForId = exports.findProgramMapTableOrThrow = void 0;
4
1
  const findProgramAssociationTableOrThrow = (structure) => {
5
2
  const box = structure.boxes.find((b) => b.type === 'transport-stream-pat-box');
6
3
  if (!box) {
@@ -8,23 +5,20 @@ const findProgramAssociationTableOrThrow = (structure) => {
8
5
  }
9
6
  return box;
10
7
  };
11
- const findProgramMapTableOrThrow = (structure) => {
8
+ export const findProgramMapTableOrThrow = (structure) => {
12
9
  const box = structure.boxes.find((b) => b.type === 'transport-stream-pmt-box');
13
10
  if (!box) {
14
11
  throw new Error('No PMT box found');
15
12
  }
16
13
  return box;
17
14
  };
18
- exports.findProgramMapTableOrThrow = findProgramMapTableOrThrow;
19
- const getProgramForId = (structure, packetIdentifier) => {
15
+ export const getProgramForId = (structure, packetIdentifier) => {
20
16
  const box = findProgramAssociationTableOrThrow(structure);
21
17
  const entry = box.pat.find((e) => e.programMapIdentifier === packetIdentifier);
22
18
  return entry !== null && entry !== void 0 ? entry : null;
23
19
  };
24
- exports.getProgramForId = getProgramForId;
25
- const getStreamForId = (structure, packetIdentifier) => {
26
- const box = (0, exports.findProgramMapTableOrThrow)(structure);
20
+ export const getStreamForId = (structure, packetIdentifier) => {
21
+ const box = findProgramMapTableOrThrow(structure);
27
22
  const entry = box.streams.find((e) => e.pid === packetIdentifier);
28
23
  return entry !== null && entry !== void 0 ? entry : null;
29
24
  };
30
- exports.getStreamForId = getStreamForId;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasDurationFromWav = exports.getDurationFromWav = void 0;
4
- const getDurationFromWav = (state) => {
1
+ export const getDurationFromWav = (state) => {
5
2
  const structure = state.getWavStructure();
6
3
  const fmt = structure.boxes.find((b) => b.type === 'wav-fmt');
7
4
  if (!fmt) {
@@ -14,13 +11,11 @@ const getDurationFromWav = (state) => {
14
11
  const durationInSeconds = dataBox.dataSize / (fmt.sampleRate * fmt.blockAlign);
15
12
  return durationInSeconds;
16
13
  };
17
- exports.getDurationFromWav = getDurationFromWav;
18
- const hasDurationFromWav = (state) => {
14
+ export const hasDurationFromWav = (state) => {
19
15
  try {
20
- return (0, exports.getDurationFromWav)(state);
16
+ return getDurationFromWav(state);
21
17
  }
22
18
  catch (_a) {
23
19
  return false;
24
20
  }
25
21
  };
26
- exports.hasDurationFromWav = hasDurationFromWav;
@@ -1,3 +1,3 @@
1
- import type { MetadataEntry } from '../../metadata/get-metadata';
1
+ import type { MediaParserMetadataEntry } from '../../metadata/get-metadata';
2
2
  import type { WavStructure } from './types';
3
- export declare const getMetadataFromWav: (structure: WavStructure) => MetadataEntry[] | null;
3
+ export declare const getMetadataFromWav: (structure: WavStructure) => MediaParserMetadataEntry[] | null;
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMetadataFromWav = void 0;
4
- const getMetadataFromWav = (structure) => {
1
+ export const getMetadataFromWav = (structure) => {
5
2
  const list = structure.boxes.find((b) => b.type === 'wav-list');
6
3
  if (!list) {
7
4
  return null;
8
5
  }
9
6
  return list.metadata;
10
7
  };
11
- exports.getMetadataFromWav = getMetadataFromWav;