@remotion/media-parser 4.0.277 → 4.0.278

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 (260) hide show
  1. package/dist/aac-codecprivate.js +13 -6
  2. package/dist/add-avc-profile-to-track.js +9 -5
  3. package/dist/buffer-iterator.js +13 -8
  4. package/dist/combine-uint8-arrays.js +5 -1
  5. package/dist/containers/aac/parse-aac.js +13 -9
  6. package/dist/containers/aac/types.js +2 -1
  7. package/dist/containers/avc/codec-string.js +5 -1
  8. package/dist/containers/avc/color.js +9 -3
  9. package/dist/containers/avc/create-sps-pps-data.js +9 -5
  10. package/dist/containers/avc/interpret-sps.js +13 -7
  11. package/dist/containers/avc/key.js +5 -1
  12. package/dist/containers/avc/parse-avc.js +7 -3
  13. package/dist/containers/avc/sps-and-pps.js +5 -1
  14. package/dist/containers/flac/get-block-size.js +5 -1
  15. package/dist/containers/flac/get-channel-count.js +5 -1
  16. package/dist/containers/flac/get-duration-from-flac.js +5 -1
  17. package/dist/containers/flac/get-metadata-from-flac.js +5 -1
  18. package/dist/containers/flac/get-sample-rate.js +5 -1
  19. package/dist/containers/flac/parse-flac-frame.js +19 -14
  20. package/dist/containers/flac/parse-flac.js +19 -15
  21. package/dist/containers/flac/parse-header.js +5 -1
  22. package/dist/containers/flac/parse-metadata.js +5 -1
  23. package/dist/containers/flac/parse-streaminfo.js +7 -3
  24. package/dist/containers/flac/parse-unknown-block.js +5 -1
  25. package/dist/containers/flac/types.js +2 -1
  26. package/dist/containers/iso-base-media/base-media-box.js +2 -1
  27. package/dist/containers/iso-base-media/base-type.js +2 -1
  28. package/dist/containers/iso-base-media/esds/decoder-specific-config.js +5 -1
  29. package/dist/containers/iso-base-media/esds/esds-descriptors.js +10 -5
  30. package/dist/containers/iso-base-media/esds/esds.js +7 -3
  31. package/dist/containers/iso-base-media/ftyp.js +5 -1
  32. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +8 -4
  33. package/dist/containers/iso-base-media/get-children.js +7 -3
  34. package/dist/containers/iso-base-media/get-keyframes.js +11 -7
  35. package/dist/containers/iso-base-media/get-moov-atom.js +17 -13
  36. package/dist/containers/iso-base-media/get-sample-positions-from-track.js +24 -20
  37. package/dist/containers/iso-base-media/get-video-codec-from-iso-track.js +7 -3
  38. package/dist/containers/iso-base-media/make-track.js +34 -30
  39. package/dist/containers/iso-base-media/mdat/mdat.js +20 -16
  40. package/dist/containers/iso-base-media/mdhd.js +5 -1
  41. package/dist/containers/iso-base-media/meta/hdlr.js +5 -1
  42. package/dist/containers/iso-base-media/meta/ilst.js +5 -1
  43. package/dist/containers/iso-base-media/moov/moov.js +7 -3
  44. package/dist/containers/iso-base-media/mvhd.js +11 -7
  45. package/dist/containers/iso-base-media/parse-boxes.js +9 -5
  46. package/dist/containers/iso-base-media/parse-icc-profile.js +8 -4
  47. package/dist/containers/iso-base-media/process-box.js +67 -63
  48. package/dist/containers/iso-base-media/stsd/av1c.js +5 -1
  49. package/dist/containers/iso-base-media/stsd/avcc.js +5 -1
  50. package/dist/containers/iso-base-media/stsd/colr.js +7 -3
  51. package/dist/containers/iso-base-media/stsd/ctts.js +5 -1
  52. package/dist/containers/iso-base-media/stsd/hvcc.js +7 -3
  53. package/dist/containers/iso-base-media/stsd/keys.js +5 -1
  54. package/dist/containers/iso-base-media/stsd/mebx.js +7 -3
  55. package/dist/containers/iso-base-media/stsd/pasp.js +5 -1
  56. package/dist/containers/iso-base-media/stsd/samples.js +13 -8
  57. package/dist/containers/iso-base-media/stsd/stco.js +5 -1
  58. package/dist/containers/iso-base-media/stsd/stsc.js +5 -1
  59. package/dist/containers/iso-base-media/stsd/stsd.js +7 -3
  60. package/dist/containers/iso-base-media/stsd/stss.js +5 -1
  61. package/dist/containers/iso-base-media/stsd/stsz.js +5 -1
  62. package/dist/containers/iso-base-media/stsd/stts.js +5 -1
  63. package/dist/containers/iso-base-media/tfdt.js +5 -1
  64. package/dist/containers/iso-base-media/tfhd.js +5 -1
  65. package/dist/containers/iso-base-media/tkhd.js +8 -4
  66. package/dist/containers/iso-base-media/to-date.js +5 -1
  67. package/dist/containers/iso-base-media/trak/trak.js +7 -3
  68. package/dist/containers/iso-base-media/traversal.js +57 -33
  69. package/dist/containers/iso-base-media/trun.js +5 -1
  70. package/dist/containers/iso-base-media/void-box.js +2 -1
  71. package/dist/containers/m3u/after-manifest-fetch.js +15 -11
  72. package/dist/containers/m3u/fetch-m3u8-stream.js +7 -3
  73. package/dist/containers/m3u/get-chunks.js +5 -1
  74. package/dist/containers/m3u/get-duration-from-m3u.js +8 -4
  75. package/dist/containers/m3u/get-playlist.js +12 -6
  76. package/dist/containers/m3u/get-streams.js +9 -3
  77. package/dist/containers/m3u/iterate-over-segment-files.js +15 -11
  78. package/dist/containers/m3u/parse-directive.js +10 -6
  79. package/dist/containers/m3u/parse-m3u-manifest.js +7 -3
  80. package/dist/containers/m3u/parse-m3u-media-directive.js +10 -5
  81. package/dist/containers/m3u/parse-m3u.js +11 -7
  82. package/dist/containers/m3u/parse-m3u8-text.js +7 -3
  83. package/dist/containers/m3u/parse-stream-inf.js +7 -2
  84. package/dist/containers/m3u/run-over-m3u.js +13 -9
  85. package/dist/containers/m3u/sample-sorter.js +8 -4
  86. package/dist/containers/m3u/select-stream.js +11 -4
  87. package/dist/containers/m3u/types.js +2 -1
  88. package/dist/containers/mp3/get-duration.js +9 -5
  89. package/dist/containers/mp3/get-frame-length.js +7 -2
  90. package/dist/containers/mp3/get-metadata-from-mp3.js +5 -1
  91. package/dist/containers/mp3/id3-v1.js +5 -1
  92. package/dist/containers/mp3/id3.js +5 -1
  93. package/dist/containers/mp3/parse-mp3.js +11 -7
  94. package/dist/containers/mp3/parse-mpeg-header.js +14 -10
  95. package/dist/containers/mp3/samples-per-mpeg-file.js +5 -1
  96. package/dist/containers/riff/expect-riff-box.js +15 -11
  97. package/dist/containers/riff/get-duration.js +12 -7
  98. package/dist/containers/riff/get-tracks-from-avi.js +28 -20
  99. package/dist/containers/riff/is-movi.js +5 -1
  100. package/dist/containers/riff/parse-avih.js +5 -1
  101. package/dist/containers/riff/parse-isft.js +5 -1
  102. package/dist/containers/riff/parse-list-box.js +7 -3
  103. package/dist/containers/riff/parse-movi.js +18 -13
  104. package/dist/containers/riff/parse-riff-body.js +13 -9
  105. package/dist/containers/riff/parse-riff-box.js +13 -9
  106. package/dist/containers/riff/parse-riff-header.js +5 -1
  107. package/dist/containers/riff/parse-riff.js +9 -5
  108. package/dist/containers/riff/parse-strf.js +5 -1
  109. package/dist/containers/riff/parse-strh.js +7 -3
  110. package/dist/containers/riff/parse-video-section.js +11 -7
  111. package/dist/containers/riff/riff-box.js +2 -1
  112. package/dist/containers/riff/timescale.js +4 -1
  113. package/dist/containers/riff/traversal.js +15 -7
  114. package/dist/containers/transport-stream/adts-header.js +10 -6
  115. package/dist/containers/transport-stream/boxes.js +2 -1
  116. package/dist/containers/transport-stream/discard-rest-of-packet.js +7 -2
  117. package/dist/containers/transport-stream/find-separator.js +4 -1
  118. package/dist/containers/transport-stream/get-tracks.js +16 -10
  119. package/dist/containers/transport-stream/handle-aac-packet.js +16 -12
  120. package/dist/containers/transport-stream/handle-avc-packet.js +26 -22
  121. package/dist/containers/transport-stream/next-pes-header-store.js +5 -1
  122. package/dist/containers/transport-stream/parse-packet.js +17 -13
  123. package/dist/containers/transport-stream/parse-pat.js +10 -5
  124. package/dist/containers/transport-stream/parse-pes.js +5 -1
  125. package/dist/containers/transport-stream/parse-pmt.js +7 -3
  126. package/dist/containers/transport-stream/parse-stream-packet.js +17 -13
  127. package/dist/containers/transport-stream/parse-transport-stream.js +9 -5
  128. package/dist/containers/transport-stream/process-stream-buffers.js +17 -12
  129. package/dist/containers/transport-stream/traversal.js +10 -4
  130. package/dist/containers/wav/get-duration-from-wav.js +8 -3
  131. package/dist/containers/wav/get-metadata-from-wav.js +5 -1
  132. package/dist/containers/wav/parse-data.js +9 -5
  133. package/dist/containers/wav/parse-fmt.js +7 -3
  134. package/dist/containers/wav/parse-header.js +5 -1
  135. package/dist/containers/wav/parse-id3.js +5 -1
  136. package/dist/containers/wav/parse-list.js +5 -1
  137. package/dist/containers/wav/parse-video-section.js +7 -3
  138. package/dist/containers/wav/parse-wav.js +19 -15
  139. package/dist/containers/wav/types.js +2 -1
  140. package/dist/containers/webm/allowed-partial-segments.js +4 -1
  141. package/dist/containers/webm/av1-codec-private.js +7 -3
  142. package/dist/containers/webm/color.js +10 -6
  143. package/dist/containers/webm/description.js +10 -6
  144. package/dist/containers/webm/get-ready-tracks.js +18 -13
  145. package/dist/containers/webm/get-sample-from-block.js +16 -12
  146. package/dist/containers/webm/make-track.js +48 -43
  147. package/dist/containers/webm/parse-ebml.js +19 -14
  148. package/dist/containers/webm/parse-webm-header.js +7 -3
  149. package/dist/containers/webm/segments/all-segments.js +173 -168
  150. package/dist/containers/webm/segments/block-simple-block-flags.js +8 -4
  151. package/dist/containers/webm/segments/track-entry.js +5 -1
  152. package/dist/containers/webm/segments.js +13 -9
  153. package/dist/containers/webm/traversal.js +67 -37
  154. package/dist/convert-audio-or-video-sample.js +5 -1
  155. package/dist/download-and-parse-media.js +14 -10
  156. package/dist/emit-available-info.js +38 -34
  157. package/dist/emitter.js +5 -1
  158. package/dist/errors.js +15 -6
  159. package/dist/esm/index.mjs +1 -1
  160. package/dist/esm/worker.mjs +4 -5
  161. package/dist/fetch.js +17 -1
  162. package/dist/file-types/bmp.js +7 -3
  163. package/dist/file-types/detect-file-type.js +38 -24
  164. package/dist/file-types/index.js +26 -22
  165. package/dist/file-types/jpeg.js +9 -4
  166. package/dist/file-types/pdf.js +7 -3
  167. package/dist/file-types/png.js +9 -4
  168. package/dist/file-types/webp.js +7 -3
  169. package/dist/forward-controller.js +5 -1
  170. package/dist/get-audio-codec.js +38 -25
  171. package/dist/get-container.js +10 -5
  172. package/dist/get-dimensions.js +13 -8
  173. package/dist/get-duration.js +34 -27
  174. package/dist/get-fields-from-callbacks.js +5 -1
  175. package/dist/get-fps.js +34 -24
  176. package/dist/get-is-hdr.js +10 -5
  177. package/dist/get-keyframes.js +11 -6
  178. package/dist/get-location.js +9 -4
  179. package/dist/get-number-of-audio-channels.js +7 -2
  180. package/dist/get-sample-aspect-ratio.js +30 -17
  181. package/dist/get-sample-positions-from-lpcm.js +9 -5
  182. package/dist/get-sample-positions.js +5 -1
  183. package/dist/get-sample-rate.js +7 -2
  184. package/dist/get-tracks.js +40 -29
  185. package/dist/get-video-codec.js +34 -26
  186. package/dist/has-all-info.js +38 -33
  187. package/dist/index.js +47 -32
  188. package/dist/init-video.js +28 -24
  189. package/dist/internal-parse-media.js +39 -35
  190. package/dist/is-audio-structure.js +5 -1
  191. package/dist/log.js +12 -8
  192. package/dist/make-hvc1-codec-strings.js +5 -1
  193. package/dist/media-parser-controller.js +11 -7
  194. package/dist/metadata/get-metadata.js +22 -17
  195. package/dist/metadata/metadata-from-iso.js +17 -12
  196. package/dist/metadata/metadata-from-matroska.js +7 -3
  197. package/dist/metadata/metadata-from-riff.js +7 -3
  198. package/dist/node-writer.js +17 -1
  199. package/dist/node.js +17 -1
  200. package/dist/options.js +2 -1
  201. package/dist/parse-media-on-worker-entry.js +7 -3
  202. package/dist/parse-media.js +12 -8
  203. package/dist/parse-result.js +2 -1
  204. package/dist/pause-signal.js +5 -1
  205. package/dist/perform-seek.js +10 -6
  206. package/dist/readers/fetch/get-body-and-reader.js +5 -1
  207. package/dist/readers/fetch/resolve-url.js +5 -1
  208. package/dist/readers/from-fetch.js +21 -14
  209. package/dist/readers/from-node.js +23 -17
  210. package/dist/readers/from-web-file.js +13 -7
  211. package/dist/readers/reader.js +2 -1
  212. package/dist/readers/universal.js +16 -13
  213. package/dist/readers/web.js +12 -9
  214. package/dist/register-track.js +15 -9
  215. package/dist/remotion-license-acknowledge.js +8 -4
  216. package/dist/run-parse-iteration.js +25 -21
  217. package/dist/samples-from-moof.js +10 -6
  218. package/dist/skip.js +5 -1
  219. package/dist/state/aac-state.js +5 -1
  220. package/dist/state/can-skip-tracks.js +8 -3
  221. package/dist/state/emitted-fields.js +5 -1
  222. package/dist/state/flac-state.js +5 -1
  223. package/dist/state/has-tracks-section.js +7 -3
  224. package/dist/state/images.js +5 -1
  225. package/dist/state/iso-base-media/cached-sample-positions.js +13 -8
  226. package/dist/state/iso-base-media/iso-state.js +9 -5
  227. package/dist/state/iso-base-media/moov-box.js +5 -1
  228. package/dist/state/keyframes.js +5 -1
  229. package/dist/state/m3u-state.js +9 -5
  230. package/dist/state/may-skip-video-data.js +7 -3
  231. package/dist/state/mp3.js +5 -1
  232. package/dist/state/need-samples-for-fields.js +5 -1
  233. package/dist/state/parser-state.js +39 -35
  234. package/dist/state/riff.js +5 -1
  235. package/dist/state/sample-callbacks.js +12 -8
  236. package/dist/state/slow-duration-fps.js +5 -1
  237. package/dist/state/structure.js +5 -1
  238. package/dist/state/transport-stream.js +7 -3
  239. package/dist/state/video-section.js +5 -1
  240. package/dist/state/webm.js +9 -5
  241. package/dist/throttled-progress.js +5 -1
  242. package/dist/truthy.js +4 -1
  243. package/dist/universal.js +5 -1
  244. package/dist/version.d.ts +1 -1
  245. package/dist/version.js +4 -1
  246. package/dist/web.js +5 -1
  247. package/dist/webcodec-sample-types.js +2 -1
  248. package/dist/worker/forward-controller.js +7 -3
  249. package/dist/worker/serialize-error.js +19 -14
  250. package/dist/worker/worker-types.js +2 -1
  251. package/dist/worker-server-entry.js +5 -3
  252. package/dist/worker-server.js +16 -12
  253. package/dist/worker-web-entry.js +5 -3
  254. package/dist/worker.d.ts +3 -2
  255. package/dist/worker.js +11 -2
  256. package/dist/worker.module.d.ts +4 -0
  257. package/dist/worker.module.js +16 -0
  258. package/dist/writers/node.js +23 -16
  259. package/dist/writers/writer.js +2 -1
  260. package/package.json +3 -3
@@ -1,4 +1,7 @@
1
- export const parseStsc = ({ iterator, offset, size, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStsc = void 0;
4
+ const parseStsc = ({ iterator, offset, size, }) => {
2
5
  const version = iterator.getUint8();
3
6
  if (version !== 0) {
4
7
  throw new Error(`Unsupported STSD version ${version}`);
@@ -28,3 +31,4 @@ export const parseStsc = ({ iterator, offset, size, }) => {
28
31
  entries,
29
32
  };
30
33
  };
34
+ exports.parseStsc = parseStsc;
@@ -1,5 +1,8 @@
1
- import { parseIsoFormatBoxes } from './samples';
2
- export const parseStsd = async ({ offset, size, state, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStsd = void 0;
4
+ const samples_1 = require("./samples");
5
+ const parseStsd = async ({ offset, size, state, }) => {
3
6
  const { iterator } = state;
4
7
  const version = iterator.getUint8();
5
8
  if (version !== 0) {
@@ -9,7 +12,7 @@ export const parseStsd = async ({ offset, size, state, }) => {
9
12
  iterator.discard(3);
10
13
  const numberOfEntries = iterator.getUint32();
11
14
  const bytesRemainingInBox = size - (iterator.counter.getOffset() - offset);
12
- const boxes = await parseIsoFormatBoxes({
15
+ const boxes = await (0, samples_1.parseIsoFormatBoxes)({
13
16
  maxBytes: bytesRemainingInBox,
14
17
  state,
15
18
  });
@@ -24,3 +27,4 @@ export const parseStsd = async ({ offset, size, state, }) => {
24
27
  samples: boxes,
25
28
  };
26
29
  };
30
+ exports.parseStsd = parseStsd;
@@ -1,4 +1,7 @@
1
- export const parseStss = ({ iterator, offset, boxSize, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStss = void 0;
4
+ const parseStss = ({ iterator, offset, boxSize, }) => {
2
5
  const version = iterator.getUint8();
3
6
  if (version !== 0) {
4
7
  throw new Error(`Unsupported STSS version ${version}`);
@@ -22,3 +25,4 @@ export const parseStss = ({ iterator, offset, boxSize, }) => {
22
25
  offset,
23
26
  };
24
27
  };
28
+ exports.parseStss = parseStss;
@@ -1,4 +1,7 @@
1
- export const parseStsz = ({ iterator, offset, size, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStsz = void 0;
4
+ const parseStsz = ({ iterator, offset, size, }) => {
2
5
  const version = iterator.getUint8();
3
6
  if (version !== 0) {
4
7
  throw new Error(`Unsupported STSD version ${version}`);
@@ -38,3 +41,4 @@ export const parseStsz = ({ iterator, offset, size, }) => {
38
41
  entries: samples,
39
42
  };
40
43
  };
44
+ exports.parseStsz = parseStsz;
@@ -1,4 +1,7 @@
1
- export const parseStts = ({ data, size, fileOffset, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStts = void 0;
4
+ const parseStts = ({ data, size, fileOffset, }) => {
2
5
  const initialOffset = data.counter.getOffset();
3
6
  const initialCounter = initialOffset - fileOffset;
4
7
  const version = data.getUint8();
@@ -29,3 +32,4 @@ export const parseStts = ({ data, size, fileOffset, }) => {
29
32
  sampleDistribution: sampleDistributions,
30
33
  };
31
34
  };
35
+ exports.parseStts = parseStts;
@@ -1,4 +1,7 @@
1
- export const parseTfdt = ({ iterator, size, offset, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTfdt = void 0;
4
+ const parseTfdt = ({ iterator, size, offset, }) => {
2
5
  const version = iterator.getUint8();
3
6
  iterator.discard(3);
4
7
  // Flags, discard them
@@ -14,3 +17,4 @@ export const parseTfdt = ({ iterator, size, offset, }) => {
14
17
  offset,
15
18
  };
16
19
  };
20
+ exports.parseTfdt = parseTfdt;
@@ -1,4 +1,7 @@
1
- export const getTfhd = ({ iterator, offset, size, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTfhd = void 0;
4
+ const getTfhd = ({ iterator, offset, size, }) => {
2
5
  const version = iterator.getUint8();
3
6
  const flags = iterator.getUint24();
4
7
  const trackId = iterator.getUint32();
@@ -35,3 +38,4 @@ export const getTfhd = ({ iterator, offset, size, }) => {
35
38
  defaultSampleFlags,
36
39
  };
37
40
  };
41
+ exports.getTfhd = getTfhd;
@@ -1,4 +1,7 @@
1
- import { toUnixTimestamp } from './to-date';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTkhd = void 0;
4
+ const to_date_1 = require("./to-date");
2
5
  function getRotationAngleFromMatrix(matrix) {
3
6
  // Extract elements from the matrix
4
7
  const [a, b, c, d] = matrix;
@@ -22,7 +25,7 @@ const applyRotation = ({ matrix, width, height, }) => {
22
25
  height: Math.abs(newHeight),
23
26
  };
24
27
  };
25
- export const parseTkhd = ({ iterator, offset, size, }) => {
28
+ const parseTkhd = ({ iterator, offset, size, }) => {
26
29
  const version = iterator.getUint8();
27
30
  // Flags, we discard them
28
31
  iterator.discard(3);
@@ -65,8 +68,8 @@ export const parseTkhd = ({ iterator, offset, size, }) => {
65
68
  offset,
66
69
  boxSize: size,
67
70
  type: 'tkhd-box',
68
- creationTime: toUnixTimestamp(Number(creationTime)),
69
- modificationTime: toUnixTimestamp(Number(modificationTime)),
71
+ creationTime: (0, to_date_1.toUnixTimestamp)(Number(creationTime)),
72
+ modificationTime: (0, to_date_1.toUnixTimestamp)(Number(modificationTime)),
70
73
  trackId,
71
74
  duration: Number(duration),
72
75
  layer,
@@ -81,3 +84,4 @@ export const parseTkhd = ({ iterator, offset, size, }) => {
81
84
  unrotatedHeight: heightWithoutRotationApplied,
82
85
  };
83
86
  };
87
+ exports.parseTkhd = parseTkhd;
@@ -1,7 +1,11 @@
1
- export const toUnixTimestamp = (value) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toUnixTimestamp = void 0;
4
+ const toUnixTimestamp = (value) => {
2
5
  if (value === 0) {
3
6
  return null;
4
7
  }
5
8
  const baseDate = new Date('1904-01-01T00:00:00Z');
6
9
  return Math.floor(value + baseDate.getTime() / 1000) * 1000;
7
10
  };
11
+ exports.toUnixTimestamp = toUnixTimestamp;
@@ -1,6 +1,9 @@
1
- import { getIsoBaseMediaChildren } from '../get-children';
2
- export const parseTrak = async ({ size, offsetAtStart, state: options, }) => {
3
- const children = await getIsoBaseMediaChildren({
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTrak = void 0;
4
+ const get_children_1 = require("../get-children");
5
+ const parseTrak = async ({ size, offsetAtStart, state: options, }) => {
6
+ const children = await (0, get_children_1.getIsoBaseMediaChildren)({
4
7
  state: options,
5
8
  size: size - 8,
6
9
  });
@@ -11,3 +14,4 @@ export const parseTrak = async ({ size, offsetAtStart, state: options, }) => {
11
14
  children,
12
15
  };
13
16
  };
17
+ exports.parseTrak = parseTrak;
@@ -1,64 +1,76 @@
1
- export const getFtypBox = (segments) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTrunBoxes = exports.getTfhdBox = exports.getTfdtBox = exports.getStssBox = exports.getStscBox = exports.getStszBox = exports.getCttsBox = exports.getSttsBox = exports.getStcoBox = exports.getVideoDescriptors = exports.getStsdBox = exports.getStblBox = exports.getMdhdBox = exports.getMdiaBox = exports.getTkhdBox = exports.getTraks = exports.getMvhdBox = exports.getMoofBoxes = exports.getMoovBoxFromState = exports.getMoovFromFromIsoStructure = exports.getFtypBox = void 0;
4
+ const getFtypBox = (segments) => {
2
5
  const ftypBox = segments.find((s) => s.type === 'ftyp-box');
3
6
  if (!ftypBox || ftypBox.type !== 'ftyp-box') {
4
7
  return null;
5
8
  }
6
9
  return ftypBox;
7
10
  };
8
- export const getMoovFromFromIsoStructure = (structure) => {
11
+ exports.getFtypBox = getFtypBox;
12
+ const getMoovFromFromIsoStructure = (structure) => {
9
13
  const moovBox = structure.boxes.find((s) => s.type === 'moov-box');
10
14
  if (!moovBox || moovBox.type !== 'moov-box') {
11
15
  return null;
12
16
  }
13
17
  return moovBox;
14
18
  };
15
- export const getMoovBoxFromState = (state) => {
19
+ exports.getMoovFromFromIsoStructure = getMoovFromFromIsoStructure;
20
+ const getMoovBoxFromState = (state) => {
16
21
  const got = state.iso.moov.getMoovBox();
17
22
  if (got) {
18
23
  return got;
19
24
  }
20
25
  const a = state.mp4HeaderSegment;
21
26
  if (a) {
22
- return getMoovFromFromIsoStructure(a);
27
+ return (0, exports.getMoovFromFromIsoStructure)(a);
23
28
  }
24
29
  const structure = state.getIsoStructure();
25
- return getMoovFromFromIsoStructure(structure);
30
+ return (0, exports.getMoovFromFromIsoStructure)(structure);
26
31
  };
27
- export const getMoofBoxes = (main) => {
32
+ exports.getMoovBoxFromState = getMoovBoxFromState;
33
+ const getMoofBoxes = (main) => {
28
34
  const moofBoxes = main.filter((s) => s.type === 'regular-box' && s.boxType === 'moof');
29
35
  return moofBoxes;
30
36
  };
31
- export const getMvhdBox = (moovBox) => {
37
+ exports.getMoofBoxes = getMoofBoxes;
38
+ const getMvhdBox = (moovBox) => {
32
39
  const mvHdBox = moovBox.children.find((s) => s.type === 'mvhd-box');
33
40
  if (!mvHdBox || mvHdBox.type !== 'mvhd-box') {
34
41
  return null;
35
42
  }
36
43
  return mvHdBox;
37
44
  };
38
- export const getTraks = (moovBox) => {
45
+ exports.getMvhdBox = getMvhdBox;
46
+ const getTraks = (moovBox) => {
39
47
  return moovBox.children.filter((s) => s.type === 'trak-box');
40
48
  };
41
- export const getTkhdBox = (trakBox) => {
49
+ exports.getTraks = getTraks;
50
+ const getTkhdBox = (trakBox) => {
42
51
  const tkhdBox = trakBox.children.find((s) => s.type === 'tkhd-box');
43
52
  return tkhdBox;
44
53
  };
45
- export const getMdiaBox = (trakBox) => {
54
+ exports.getTkhdBox = getTkhdBox;
55
+ const getMdiaBox = (trakBox) => {
46
56
  const mdiaBox = trakBox.children.find((s) => s.type === 'regular-box' && s.boxType === 'mdia');
47
57
  if (!mdiaBox || mdiaBox.type !== 'regular-box') {
48
58
  return null;
49
59
  }
50
60
  return mdiaBox;
51
61
  };
52
- export const getMdhdBox = (trakBox) => {
53
- const mdiaBox = getMdiaBox(trakBox);
62
+ exports.getMdiaBox = getMdiaBox;
63
+ const getMdhdBox = (trakBox) => {
64
+ const mdiaBox = (0, exports.getMdiaBox)(trakBox);
54
65
  if (!mdiaBox) {
55
66
  return null;
56
67
  }
57
68
  const mdhdBox = mdiaBox.children.find((c) => c.type === 'mdhd-box');
58
69
  return mdhdBox;
59
70
  };
60
- export const getStblBox = (trakBox) => {
61
- const mdiaBox = getMdiaBox(trakBox);
71
+ exports.getMdhdBox = getMdhdBox;
72
+ const getStblBox = (trakBox) => {
73
+ const mdiaBox = (0, exports.getMdiaBox)(trakBox);
62
74
  if (!mdiaBox) {
63
75
  return null;
64
76
  }
@@ -72,17 +84,19 @@ export const getStblBox = (trakBox) => {
72
84
  }
73
85
  return stblBox;
74
86
  };
75
- export const getStsdBox = (trakBox) => {
76
- const stblBox = getStblBox(trakBox);
87
+ exports.getStblBox = getStblBox;
88
+ const getStsdBox = (trakBox) => {
89
+ const stblBox = (0, exports.getStblBox)(trakBox);
77
90
  if (!stblBox || stblBox.type !== 'regular-box') {
78
91
  return null;
79
92
  }
80
93
  const stsdBox = stblBox.children.find((s) => s.type === 'stsd-box');
81
94
  return stsdBox;
82
95
  };
83
- export const getVideoDescriptors = (trakBox) => {
96
+ exports.getStsdBox = getStsdBox;
97
+ const getVideoDescriptors = (trakBox) => {
84
98
  var _a;
85
- const stsdBox = getStsdBox(trakBox);
99
+ const stsdBox = (0, exports.getStsdBox)(trakBox);
86
100
  if (!stsdBox) {
87
101
  return null;
88
102
  }
@@ -99,55 +113,62 @@ export const getVideoDescriptors = (trakBox) => {
99
113
  });
100
114
  return (_a = descriptors.flat(1).filter(Boolean)[0]) !== null && _a !== void 0 ? _a : null;
101
115
  };
102
- export const getStcoBox = (trakBox) => {
103
- const stblBox = getStblBox(trakBox);
116
+ exports.getVideoDescriptors = getVideoDescriptors;
117
+ const getStcoBox = (trakBox) => {
118
+ const stblBox = (0, exports.getStblBox)(trakBox);
104
119
  if (!stblBox || stblBox.type !== 'regular-box') {
105
120
  return null;
106
121
  }
107
122
  const stcoBox = stblBox.children.find((s) => s.type === 'stco-box');
108
123
  return stcoBox;
109
124
  };
110
- export const getSttsBox = (trakBox) => {
111
- const stblBox = getStblBox(trakBox);
125
+ exports.getStcoBox = getStcoBox;
126
+ const getSttsBox = (trakBox) => {
127
+ const stblBox = (0, exports.getStblBox)(trakBox);
112
128
  if (!stblBox || stblBox.type !== 'regular-box') {
113
129
  return null;
114
130
  }
115
131
  const sttsBox = stblBox.children.find((s) => s.type === 'stts-box');
116
132
  return sttsBox;
117
133
  };
118
- export const getCttsBox = (trakBox) => {
119
- const stblBox = getStblBox(trakBox);
134
+ exports.getSttsBox = getSttsBox;
135
+ const getCttsBox = (trakBox) => {
136
+ const stblBox = (0, exports.getStblBox)(trakBox);
120
137
  if (!stblBox || stblBox.type !== 'regular-box') {
121
138
  return null;
122
139
  }
123
140
  const cttsBox = stblBox.children.find((s) => s.type === 'ctts-box');
124
141
  return cttsBox;
125
142
  };
126
- export const getStszBox = (trakBox) => {
127
- const stblBox = getStblBox(trakBox);
143
+ exports.getCttsBox = getCttsBox;
144
+ const getStszBox = (trakBox) => {
145
+ const stblBox = (0, exports.getStblBox)(trakBox);
128
146
  if (!stblBox || stblBox.type !== 'regular-box') {
129
147
  return null;
130
148
  }
131
149
  const stszBox = stblBox.children.find((s) => s.type === 'stsz-box');
132
150
  return stszBox;
133
151
  };
134
- export const getStscBox = (trakBox) => {
135
- const stblBox = getStblBox(trakBox);
152
+ exports.getStszBox = getStszBox;
153
+ const getStscBox = (trakBox) => {
154
+ const stblBox = (0, exports.getStblBox)(trakBox);
136
155
  if (!stblBox || stblBox.type !== 'regular-box') {
137
156
  return null;
138
157
  }
139
158
  const stcoBox = stblBox.children.find((b) => b.type === 'stsc-box');
140
159
  return stcoBox;
141
160
  };
142
- export const getStssBox = (trakBox) => {
143
- const stblBox = getStblBox(trakBox);
161
+ exports.getStscBox = getStscBox;
162
+ const getStssBox = (trakBox) => {
163
+ const stblBox = (0, exports.getStblBox)(trakBox);
144
164
  if (!stblBox || stblBox.type !== 'regular-box') {
145
165
  return null;
146
166
  }
147
167
  const stssBox = stblBox.children.find((b) => b.type === 'stss-box');
148
168
  return stssBox;
149
169
  };
150
- export const getTfdtBox = (segment) => {
170
+ exports.getStssBox = getStssBox;
171
+ const getTfdtBox = (segment) => {
151
172
  if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
152
173
  throw new Error('Expected traf-box');
153
174
  }
@@ -157,7 +178,8 @@ export const getTfdtBox = (segment) => {
157
178
  }
158
179
  return tfhdBox;
159
180
  };
160
- export const getTfhdBox = (segment) => {
181
+ exports.getTfdtBox = getTfdtBox;
182
+ const getTfhdBox = (segment) => {
161
183
  if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
162
184
  throw new Error('Expected traf-box');
163
185
  }
@@ -167,10 +189,12 @@ export const getTfhdBox = (segment) => {
167
189
  }
168
190
  return tfhdBox;
169
191
  };
170
- export const getTrunBoxes = (segment) => {
192
+ exports.getTfhdBox = getTfhdBox;
193
+ const getTrunBoxes = (segment) => {
171
194
  if (segment.type !== 'regular-box' || segment.boxType !== 'traf') {
172
195
  throw new Error('Expected traf-box');
173
196
  }
174
197
  const trunBoxes = segment.children.filter((c) => c.type === 'trun-box');
175
198
  return trunBoxes;
176
199
  };
200
+ exports.getTrunBoxes = getTrunBoxes;
@@ -1,4 +1,7 @@
1
- export const parseTrun = ({ iterator, offset, size, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTrun = void 0;
4
+ const parseTrun = ({ iterator, offset, size, }) => {
2
5
  const version = iterator.getUint8();
3
6
  if (version !== 0 && version !== 1) {
4
7
  throw new Error(`Unsupported TRUN version ${version}`);
@@ -38,3 +41,4 @@ export const parseTrun = ({ iterator, offset, size, }) => {
38
41
  samples,
39
42
  };
40
43
  };
44
+ exports.parseTrun = parseTrun;
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +1,12 @@
1
- import { Log } from '../../log';
2
- import { fetchM3u8Stream } from './fetch-m3u8-stream';
3
- import { getM3uStreams, isIndependentSegments } from './get-streams';
4
- import { selectAssociatedPlaylists, selectStream } from './select-stream';
5
- export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uStreamFn, logLevel, selectAssociatedPlaylistsFn, readerInterface, }) => {
6
- const independentSegments = isIndependentSegments(structure);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.afterManifestFetch = void 0;
4
+ const log_1 = require("../../log");
5
+ const fetch_m3u8_stream_1 = require("./fetch-m3u8-stream");
6
+ const get_streams_1 = require("./get-streams");
7
+ const select_stream_1 = require("./select-stream");
8
+ const afterManifestFetch = async ({ structure, m3uState, src, selectM3uStreamFn, logLevel, selectAssociatedPlaylistsFn, readerInterface, }) => {
9
+ const independentSegments = (0, get_streams_1.isIndependentSegments)(structure);
7
10
  if (!independentSegments) {
8
11
  if (!src) {
9
12
  throw new Error('No src');
@@ -14,11 +17,11 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
14
17
  });
15
18
  return m3uState.setReadyToIterateOverM3u();
16
19
  }
17
- const streams = getM3uStreams({ structure, originalSrc: src, readerInterface });
20
+ const streams = (0, get_streams_1.getM3uStreams)({ structure, originalSrc: src, readerInterface });
18
21
  if (streams === null) {
19
22
  throw new Error('No streams found');
20
23
  }
21
- const selectedPlaylist = await selectStream({ streams, fn: selectM3uStreamFn });
24
+ const selectedPlaylist = await (0, select_stream_1.selectStream)({ streams, fn: selectM3uStreamFn });
22
25
  if (!selectedPlaylist.resolution) {
23
26
  throw new Error('Stream does not have a resolution');
24
27
  }
@@ -26,7 +29,7 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
26
29
  type: 'selected-stream',
27
30
  stream: selectedPlaylist,
28
31
  });
29
- const associatedPlaylists = await selectAssociatedPlaylists({
32
+ const associatedPlaylists = await (0, select_stream_1.selectAssociatedPlaylists)({
30
33
  playlists: selectedPlaylist.associatedPlaylists,
31
34
  fn: selectAssociatedPlaylistsFn,
32
35
  });
@@ -36,8 +39,8 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
36
39
  ...associatedPlaylists.map((p) => p.src),
37
40
  ];
38
41
  const struc = await Promise.all(playlistUrls.map(async (url) => {
39
- Log.verbose(logLevel, `Fetching playlist ${url}`);
40
- const boxes = await fetchM3u8Stream({ url, readerInterface });
42
+ log_1.Log.verbose(logLevel, `Fetching playlist ${url}`);
43
+ const boxes = await (0, fetch_m3u8_stream_1.fetchM3u8Stream)({ url, readerInterface });
41
44
  return {
42
45
  type: 'm3u-playlist',
43
46
  boxes,
@@ -47,3 +50,4 @@ export const afterManifestFetch = async ({ structure, m3uState, src, selectM3uSt
47
50
  structure.boxes.push(...struc);
48
51
  m3uState.setReadyToIterateOverM3u();
49
52
  };
53
+ exports.afterManifestFetch = afterManifestFetch;
@@ -1,10 +1,14 @@
1
- import { parseM3u8Text } from './parse-m3u8-text';
2
- export const fetchM3u8Stream = async ({ url, readerInterface, }) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchM3u8Stream = void 0;
4
+ const parse_m3u8_text_1 = require("./parse-m3u8-text");
5
+ const fetchM3u8Stream = async ({ url, readerInterface, }) => {
3
6
  const text = await readerInterface.readWholeAsText(url);
4
7
  const lines = text.split('\n');
5
8
  const boxes = [];
6
9
  for (const line of lines) {
7
- parseM3u8Text(line.trim(), boxes);
10
+ (0, parse_m3u8_text_1.parseM3u8Text)(line.trim(), boxes);
8
11
  }
9
12
  return boxes;
10
13
  };
14
+ exports.fetchM3u8Stream = fetchM3u8Stream;
@@ -1,4 +1,7 @@
1
- export const getChunks = (playlist) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChunks = void 0;
4
+ const getChunks = (playlist) => {
2
5
  const chunks = [];
3
6
  for (let i = 0; i < playlist.boxes.length; i++) {
4
7
  const box = playlist.boxes[i];
@@ -18,3 +21,4 @@ export const getChunks = (playlist) => {
18
21
  }
19
22
  return chunks;
20
23
  };
24
+ exports.getChunks = getChunks;
@@ -1,10 +1,14 @@
1
- import { getAllPlaylists, getDurationFromPlaylist } from './get-playlist';
2
- export const getDurationFromM3u = (state) => {
3
- const playlists = getAllPlaylists({
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDurationFromM3u = void 0;
4
+ const get_playlist_1 = require("./get-playlist");
5
+ const getDurationFromM3u = (state) => {
6
+ const playlists = (0, get_playlist_1.getAllPlaylists)({
4
7
  structure: state.getM3uStructure(),
5
8
  src: state.src,
6
9
  });
7
10
  return Math.max(...playlists.map((p) => {
8
- return getDurationFromPlaylist(p);
11
+ return (0, get_playlist_1.getDurationFromPlaylist)(p);
9
12
  }));
10
13
  };
14
+ exports.getDurationFromM3u = getDurationFromM3u;
@@ -1,6 +1,9 @@
1
- import { isIndependentSegments } from './get-streams';
2
- export const getAllPlaylists = ({ structure, src, }) => {
3
- const isIndependent = isIndependentSegments(structure);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDurationFromPlaylist = exports.getPlaylist = exports.getAllPlaylists = void 0;
4
+ const get_streams_1 = require("./get-streams");
5
+ const getAllPlaylists = ({ structure, src, }) => {
6
+ const isIndependent = (0, get_streams_1.isIndependentSegments)(structure);
4
7
  if (!isIndependent) {
5
8
  return [
6
9
  {
@@ -13,18 +16,21 @@ export const getAllPlaylists = ({ structure, src, }) => {
13
16
  const playlists = structure.boxes.filter((box) => box.type === 'm3u-playlist');
14
17
  return playlists;
15
18
  };
16
- export const getPlaylist = (structure, src) => {
17
- const allPlaylists = getAllPlaylists({ structure, src });
19
+ exports.getAllPlaylists = getAllPlaylists;
20
+ const getPlaylist = (structure, src) => {
21
+ const allPlaylists = (0, exports.getAllPlaylists)({ structure, src });
18
22
  const playlists = allPlaylists.find((box) => box.src === src);
19
23
  if (!playlists) {
20
24
  throw new Error(`Expected m3u-playlist with src ${src}`);
21
25
  }
22
26
  return playlists;
23
27
  };
24
- export const getDurationFromPlaylist = (playlist) => {
28
+ exports.getPlaylist = getPlaylist;
29
+ const getDurationFromPlaylist = (playlist) => {
25
30
  const duration = playlist.boxes.filter((box) => box.type === 'm3u-extinf');
26
31
  if (duration.length === 0) {
27
32
  throw new Error('Expected duration in m3u playlist');
28
33
  }
29
34
  return duration.reduce((acc, d) => acc + d.value, 0);
30
35
  };
36
+ exports.getDurationFromPlaylist = getDurationFromPlaylist;
@@ -1,10 +1,14 @@
1
- export const isIndependentSegments = (structure) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.m3uHasStreams = exports.getM3uStreams = exports.isIndependentSegments = void 0;
4
+ const isIndependentSegments = (structure) => {
2
5
  if (structure === null || structure.type !== 'm3u') {
3
6
  return false;
4
7
  }
5
8
  return structure.boxes.some((box) => box.type === 'm3u-independent-segments' || box.type === 'm3u-stream-info');
6
9
  };
7
- export const getM3uStreams = ({ structure, originalSrc, readerInterface, }) => {
10
+ exports.isIndependentSegments = isIndependentSegments;
11
+ const getM3uStreams = ({ structure, originalSrc, readerInterface, }) => {
8
12
  if (structure === null || structure.type !== 'm3u') {
9
13
  return null;
10
14
  }
@@ -65,7 +69,8 @@ export const getM3uStreams = ({ structure, originalSrc, readerInterface, }) => {
65
69
  });
66
70
  return sorted.map((box, index) => ({ ...box, id: index }));
67
71
  };
68
- export const m3uHasStreams = (state) => {
72
+ exports.getM3uStreams = getM3uStreams;
73
+ const m3uHasStreams = (state) => {
69
74
  const structure = state.getStructureOrNull();
70
75
  if (!structure) {
71
76
  return false;
@@ -75,3 +80,4 @@ export const m3uHasStreams = (state) => {
75
80
  }
76
81
  return state.m3u.hasFinishedManifest();
77
82
  };
83
+ exports.m3uHasStreams = m3uHasStreams;
@@ -1,16 +1,19 @@
1
- import { forwardMediaParserController } from '../../forward-controller';
2
- import { mediaParserController } from '../../media-parser-controller';
3
- import { parseMedia } from '../../parse-media';
4
- import { getChunks } from './get-chunks';
5
- import { getPlaylist } from './get-playlist';
6
- export const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uState, onAudioTrack, onDoneWithTracks, playlistUrl, logLevel, parentController, onInitialProgress, readerInterface, }) => {
7
- const playlist = getPlaylist(structure, playlistUrl);
8
- const chunks = getChunks(playlist);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iteratorOverSegmentFiles = void 0;
4
+ const forward_controller_1 = require("../../forward-controller");
5
+ const media_parser_controller_1 = require("../../media-parser-controller");
6
+ const parse_media_1 = require("../../parse-media");
7
+ const get_chunks_1 = require("./get-chunks");
8
+ const get_playlist_1 = require("./get-playlist");
9
+ const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uState, onAudioTrack, onDoneWithTracks, playlistUrl, logLevel, parentController, onInitialProgress, readerInterface, }) => {
10
+ const playlist = (0, get_playlist_1.getPlaylist)(structure, playlistUrl);
11
+ const chunks = (0, get_chunks_1.getChunks)(playlist);
9
12
  let resolver = onInitialProgress;
10
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
14
  let rejector = (_e) => { };
12
- const childController = mediaParserController();
13
- const forwarded = forwardMediaParserController({
15
+ const childController = (0, media_parser_controller_1.mediaParserController)();
16
+ const forwarded = (0, forward_controller_1.forwardMediaParserController)({
14
17
  childController,
15
18
  parentController,
16
19
  });
@@ -34,7 +37,7 @@ export const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uSta
34
37
  const src = readerInterface.createAdjacentFileSource(chunk.url, playlistUrl);
35
38
  try {
36
39
  const mp4HeaderSegment = m3uState.getMp4HeaderSegment(playlistUrl);
37
- const data = await parseMedia({
40
+ const data = await (0, parse_media_1.parseMedia)({
38
41
  src,
39
42
  acknowledgeRemotionLicense: true,
40
43
  logLevel,
@@ -111,3 +114,4 @@ export const iteratorOverSegmentFiles = async ({ structure, onVideoTrack, m3uSta
111
114
  }
112
115
  resolver(null);
113
116
  };
117
+ exports.iteratorOverSegmentFiles = iteratorOverSegmentFiles;