@remotion/media-parser 4.0.298 → 4.0.300

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 (180) hide show
  1. package/dist/add-avc-profile-to-track.d.ts +2 -2
  2. package/dist/add-avc-profile-to-track.js +7 -1
  3. package/dist/codec-data.d.ts +29 -0
  4. package/dist/codec-data.js +2 -0
  5. package/dist/containers/aac/parse-aac.js +2 -3
  6. package/dist/containers/avc/color.d.ts +6 -6
  7. package/dist/containers/avc/color.js +53 -27
  8. package/dist/containers/avc/create-avc-decoder-configuration-record.d.ts +2 -0
  9. package/dist/containers/avc/create-avc-decoder-configuration-record.js +35 -0
  10. package/dist/containers/avc/interpret-sps.d.ts +2 -2
  11. package/dist/containers/avc/interpret-sps.js +2 -2
  12. package/dist/containers/flac/parse-streaminfo.js +2 -3
  13. package/dist/containers/iso-base-media/collect-sample-positions-from-moof-boxes.d.ts +1 -1
  14. package/dist/containers/iso-base-media/color-to-webcodecs-colors.d.ts +2 -0
  15. package/dist/containers/iso-base-media/color-to-webcodecs-colors.js +12 -0
  16. package/dist/containers/iso-base-media/find-keyframe-before-time.d.ts +2 -2
  17. package/dist/containers/iso-base-media/find-track-to-seek.d.ts +5 -5
  18. package/dist/containers/iso-base-media/find-track-to-seek.js +18 -2
  19. package/dist/containers/iso-base-media/get-actual-number-of-channels.d.ts +3 -2
  20. package/dist/containers/iso-base-media/get-actual-number-of-channels.js +14 -3
  21. package/dist/containers/iso-base-media/get-children.d.ts +2 -2
  22. package/dist/containers/iso-base-media/get-keyframes.js +11 -2
  23. package/dist/containers/iso-base-media/get-mfra-seeking-box.d.ts +4 -4
  24. package/dist/containers/iso-base-media/get-moov-atom.js +1 -1
  25. package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.d.ts +9 -5
  26. package/dist/containers/iso-base-media/get-seeking-byte-from-fragmented-mp4.js +17 -4
  27. package/dist/containers/iso-base-media/get-seeking-byte.d.ts +2 -2
  28. package/dist/containers/iso-base-media/get-seeking-byte.js +5 -8
  29. package/dist/containers/iso-base-media/make-track.d.ts +2 -2
  30. package/dist/containers/iso-base-media/make-track.js +18 -17
  31. package/dist/containers/iso-base-media/mfra/find-best-segment-from-tfra.d.ts +2 -2
  32. package/dist/containers/iso-base-media/mfra/get-mfra-atom.d.ts +4 -4
  33. package/dist/containers/iso-base-media/mfra/get-mfro-atom.d.ts +4 -4
  34. package/dist/containers/iso-base-media/moov/moov.d.ts +2 -2
  35. package/dist/containers/iso-base-media/process-box.d.ts +5 -5
  36. package/dist/containers/iso-base-media/stsd/mebx.d.ts +2 -2
  37. package/dist/containers/iso-base-media/stsd/samples.d.ts +3 -3
  38. package/dist/containers/iso-base-media/stsd/stsd.d.ts +2 -2
  39. package/dist/containers/iso-base-media/trak/trak.d.ts +2 -2
  40. package/dist/containers/iso-base-media/traversal.d.ts +1 -0
  41. package/dist/containers/iso-base-media/traversal.js +13 -1
  42. package/dist/containers/m3u/after-manifest-fetch.d.ts +6 -6
  43. package/dist/containers/m3u/after-manifest-fetch.js +1 -1
  44. package/dist/containers/m3u/fetch-m3u8-stream.d.ts +2 -2
  45. package/dist/containers/m3u/first-sample-in-m3u-chunk.d.ts +3 -3
  46. package/dist/containers/m3u/first-sample-in-m3u-chunk.js +2 -8
  47. package/dist/containers/m3u/get-seeking-byte.d.ts +3 -3
  48. package/dist/containers/m3u/get-streams.d.ts +6 -6
  49. package/dist/containers/m3u/get-streams.js +9 -9
  50. package/dist/containers/m3u/parse-stream-inf.js +3 -3
  51. package/dist/containers/m3u/process-m3u-chunk.js +3 -3
  52. package/dist/containers/m3u/run-over-m3u.d.ts +2 -2
  53. package/dist/containers/m3u/sample-sorter.d.ts +7 -7
  54. package/dist/containers/m3u/types.d.ts +3 -3
  55. package/dist/containers/mp3/parse-mpeg-header.js +2 -3
  56. package/dist/containers/mp3/seek/audio-sample-from-cbr.d.ts +2 -2
  57. package/dist/containers/riff/get-tracks-from-avi.d.ts +4 -9
  58. package/dist/containers/riff/get-tracks-from-avi.js +19 -20
  59. package/dist/containers/riff/parse-video-section.js +1 -1
  60. package/dist/containers/riff/seek/fetch-idx1.d.ts +4 -4
  61. package/dist/containers/transport-stream/get-tracks.d.ts +2 -2
  62. package/dist/containers/transport-stream/get-tracks.js +1 -5
  63. package/dist/containers/transport-stream/handle-aac-packet.d.ts +4 -4
  64. package/dist/containers/transport-stream/handle-aac-packet.js +5 -4
  65. package/dist/containers/transport-stream/handle-avc-packet.d.ts +4 -4
  66. package/dist/containers/transport-stream/handle-avc-packet.js +10 -4
  67. package/dist/containers/transport-stream/process-audio.d.ts +5 -5
  68. package/dist/containers/transport-stream/process-stream-buffers.d.ts +8 -8
  69. package/dist/containers/transport-stream/process-video.d.ts +5 -5
  70. package/dist/containers/wav/parse-fmt.js +2 -3
  71. package/dist/containers/webm/color.d.ts +2 -2
  72. package/dist/containers/webm/color.js +6 -25
  73. package/dist/containers/webm/get-ready-tracks.d.ts +3 -3
  74. package/dist/containers/webm/get-sample-from-block.d.ts +7 -7
  75. package/dist/containers/webm/make-track.d.ts +3 -3
  76. package/dist/containers/webm/make-track.js +53 -21
  77. package/dist/containers/webm/parse-webm-header.js +5 -0
  78. package/dist/containers/webm/seek/fetch-web-cues.d.ts +4 -4
  79. package/dist/containers/webm/seek/get-seeking-byte.d.ts +2 -2
  80. package/dist/containers/webm/segments.d.ts +2 -2
  81. package/dist/containers/webm/segments.js +1 -1
  82. package/dist/containers/webm/state-for-processing.d.ts +5 -5
  83. package/dist/containers/webm/traversal.js +2 -1
  84. package/dist/controller/emitter.d.ts +2 -3
  85. package/dist/controller/seek-signal.d.ts +3 -9
  86. package/dist/controller/seek-signal.js +2 -2
  87. package/dist/convert-audio-or-video-sample.d.ts +4 -4
  88. package/dist/download-and-parse-media.js +1 -1
  89. package/dist/emit-available-info.js +9 -9
  90. package/dist/errors.d.ts +4 -18
  91. package/dist/errors.js +1 -15
  92. package/dist/esm/index.mjs +654 -544
  93. package/dist/esm/node.mjs +63 -51
  94. package/dist/esm/server-worker.mjs +13 -34
  95. package/dist/esm/universal.mjs +63 -51
  96. package/dist/esm/worker-server-entry.mjs +500 -388
  97. package/dist/esm/worker-web-entry.mjs +437 -337
  98. package/dist/esm/worker.mjs +14 -35
  99. package/dist/fields.d.ts +2 -2
  100. package/dist/file-types/bmp.d.ts +2 -2
  101. package/dist/file-types/detect-file-type.d.ts +2 -1
  102. package/dist/file-types/detect-file-type.js +1 -6
  103. package/dist/file-types/gif.d.ts +2 -0
  104. package/dist/file-types/gif.js +18 -0
  105. package/dist/file-types/index.js +4 -2
  106. package/dist/file-types/png.d.ts +2 -2
  107. package/dist/file-types/webp.d.ts +2 -2
  108. package/dist/get-audio-codec.d.ts +3 -4
  109. package/dist/get-audio-codec.js +44 -23
  110. package/dist/get-dimensions.d.ts +2 -2
  111. package/dist/get-dimensions.js +6 -3
  112. package/dist/get-duration.js +6 -7
  113. package/dist/get-fields-from-callbacks.js +1 -1
  114. package/dist/get-is-hdr.js +6 -5
  115. package/dist/get-sample-aspect-ratio.d.ts +5 -5
  116. package/dist/get-seeking-byte.d.ts +2 -2
  117. package/dist/get-tracks.d.ts +34 -44
  118. package/dist/get-tracks.js +6 -46
  119. package/dist/get-video-codec.d.ts +4 -3
  120. package/dist/get-video-codec.js +6 -6
  121. package/dist/has-all-info.js +1 -1
  122. package/dist/index.d.ts +114 -55
  123. package/dist/index.js +6 -4
  124. package/dist/init-video.js +4 -11
  125. package/dist/internal-parse-media.js +1 -1
  126. package/dist/log.d.ts +6 -6
  127. package/dist/metadata/get-metadata.js +6 -4
  128. package/dist/options.d.ts +19 -23
  129. package/dist/parse-loop.js +2 -2
  130. package/dist/parse-media-on-worker-entry.js +13 -5
  131. package/dist/parse-media.js +1 -1
  132. package/dist/perform-seek.d.ts +4 -4
  133. package/dist/readers/from-fetch.d.ts +2 -2
  134. package/dist/readers/from-node.d.ts +2 -2
  135. package/dist/readers/from-node.js +64 -55
  136. package/dist/readers/from-web-file.d.ts +2 -2
  137. package/dist/readers/reader.d.ts +5 -5
  138. package/dist/readers/universal.d.ts +2 -2
  139. package/dist/readers/web.d.ts +2 -2
  140. package/dist/register-track.d.ts +12 -12
  141. package/dist/remotion-license-acknowledge.d.ts +2 -2
  142. package/dist/seek-backwards.d.ts +4 -4
  143. package/dist/seek-forwards.d.ts +4 -4
  144. package/dist/server-worker.module.d.ts +2 -0
  145. package/dist/server-worker.module.js +12 -0
  146. package/dist/state/can-skip-tracks.js +1 -1
  147. package/dist/state/emitted-fields.js +1 -1
  148. package/dist/state/has-tracks-section.d.ts +5 -5
  149. package/dist/state/iso-base-media/cached-sample-positions.d.ts +3 -3
  150. package/dist/state/iso-base-media/cached-sample-positions.js +16 -7
  151. package/dist/state/iso-base-media/iso-state.d.ts +4 -4
  152. package/dist/state/iso-base-media/lazy-mfra-load.d.ts +4 -4
  153. package/dist/state/m3u-state.d.ts +11 -11
  154. package/dist/state/matroska/lazy-cues-fetch.d.ts +4 -4
  155. package/dist/state/matroska/webm.d.ts +4 -4
  156. package/dist/state/matroska/webm.js +1 -1
  157. package/dist/state/may-skip-video-data.d.ts +1 -0
  158. package/dist/state/may-skip-video-data.js +23 -2
  159. package/dist/state/need-samples-for-fields.js +1 -1
  160. package/dist/state/parser-state.d.ts +67 -38
  161. package/dist/state/riff/lazy-idx1-fetch.d.ts +4 -4
  162. package/dist/state/riff/sample-counter.d.ts +3 -3
  163. package/dist/state/riff.d.ts +6 -6
  164. package/dist/state/sample-callbacks.d.ts +12 -12
  165. package/dist/state/sample-callbacks.js +2 -2
  166. package/dist/state/samples-observed/slow-duration-fps.d.ts +3 -3
  167. package/dist/state/transport-stream/last-emitted-sample.d.ts +3 -3
  168. package/dist/state/transport-stream/transport-stream.d.ts +2 -2
  169. package/dist/version.d.ts +1 -1
  170. package/dist/version.js +1 -1
  171. package/dist/webcodec-sample-types.d.ts +21 -10
  172. package/dist/work-on-seek-request.d.ts +4 -4
  173. package/dist/work-on-seek-request.js +40 -43
  174. package/dist/worker/serialize-error.d.ts +2 -2
  175. package/dist/worker/serialize-error.js +7 -25
  176. package/dist/worker/worker-types.d.ts +22 -24
  177. package/dist/worker-server.d.ts +2 -2
  178. package/dist/worker-server.js +5 -5
  179. package/dist/writers/writer.d.ts +2 -2
  180. package/package.json +3 -3
@@ -7,12 +7,8 @@ const traversal_1 = require("../../containers/iso-base-media/traversal");
7
7
  const get_tracks_1 = require("../../get-tracks");
8
8
  const precomputed_tfra_1 = require("./precomputed-tfra");
9
9
  const calculateFlatSamples = ({ state, mediaSectionStart, }) => {
10
+ var _a, _b;
10
11
  const tracks = (0, get_tracks_1.getTracks)(state, true);
11
- const allTracks = [
12
- ...tracks.videoTracks,
13
- ...tracks.audioTracks,
14
- ...tracks.otherTracks,
15
- ];
16
12
  const moofBoxes = (0, traversal_1.getMoofBoxes)(state.structure.getIsoStructure().boxes);
17
13
  const tfraBoxes = (0, precomputed_tfra_1.deduplicateTfraBoxesByOffset)([
18
14
  ...state.iso.tfra.getTfraBoxes(),
@@ -23,9 +19,22 @@ const calculateFlatSamples = ({ state, mediaSectionStart, }) => {
23
19
  if (moofBoxes.length > 0 && !relevantMoofBox) {
24
20
  throw new Error('No relevant moof box found');
25
21
  }
26
- const flatSamples = allTracks.map((track) => {
22
+ const moov = (0, traversal_1.getMoovBoxFromState)({
23
+ structureState: state.structure,
24
+ isoState: state.iso,
25
+ mp4HeaderSegment: (_b = (_a = state.m3uPlaylistContext) === null || _a === void 0 ? void 0 : _a.mp4HeaderSegment) !== null && _b !== void 0 ? _b : null,
26
+ mayUsePrecomputed: true,
27
+ });
28
+ if (!moov) {
29
+ throw new Error('No moov box found');
30
+ }
31
+ const flatSamples = tracks.map((track) => {
32
+ const trakBox = (0, traversal_1.getTrakBoxByTrackId)(moov, track.trackId);
33
+ if (!trakBox) {
34
+ throw new Error('No trak box found');
35
+ }
27
36
  const { samplePositions } = (0, get_sample_positions_from_track_1.getSamplePositionsFromTrack)({
28
- trakBox: track.trakBox,
37
+ trakBox,
29
38
  moofBoxes: relevantMoofBox ? [relevantMoofBox] : [],
30
39
  moofComplete,
31
40
  });
@@ -1,14 +1,14 @@
1
1
  import type { MediaParserController } from '../../controller/media-parser-controller';
2
2
  import type { PrefetchCache } from '../../fetch';
3
- import type { LogLevel } from '../../log';
3
+ import type { MediaParserLogLevel } from '../../log';
4
4
  import type { ParseMediaSrc } from '../../options';
5
- import type { ReaderInterface } from '../../readers/reader';
5
+ import type { MediaParserReaderInterface } from '../../readers/reader';
6
6
  export declare const isoBaseMediaState: ({ contentLength, controller, readerInterface, src, logLevel, prefetchCache, }: {
7
7
  contentLength: number;
8
8
  controller: MediaParserController;
9
- readerInterface: ReaderInterface;
9
+ readerInterface: MediaParserReaderInterface;
10
10
  src: ParseMediaSrc;
11
- logLevel: LogLevel;
11
+ logLevel: MediaParserLogLevel;
12
12
  prefetchCache: PrefetchCache;
13
13
  }) => {
14
14
  flatSamples: {
@@ -1,16 +1,16 @@
1
1
  import type { IsoBaseMediaBox } from '../../containers/iso-base-media/base-media-box';
2
2
  import type { MediaParserController } from '../../controller/media-parser-controller';
3
3
  import type { PrefetchCache } from '../../fetch';
4
- import { type LogLevel } from '../../log';
4
+ import { type MediaParserLogLevel } from '../../log';
5
5
  import type { ParseMediaSrc } from '../../options';
6
- import type { ReaderInterface } from '../../readers/reader';
6
+ import type { MediaParserReaderInterface } from '../../readers/reader';
7
7
  import type { IsoBaseMediaSeekingHints } from '../../seeking-hints';
8
8
  export declare const lazyMfraLoad: ({ contentLength, controller, readerInterface, src, logLevel, prefetchCache, }: {
9
9
  contentLength: number;
10
10
  controller: MediaParserController;
11
- readerInterface: ReaderInterface;
11
+ readerInterface: MediaParserReaderInterface;
12
12
  src: ParseMediaSrc;
13
- logLevel: LogLevel;
13
+ logLevel: MediaParserLogLevel;
14
14
  prefetchCache: PrefetchCache;
15
15
  }) => {
16
16
  triggerLoad: () => Promise<IsoBaseMediaBox[] | null>;
@@ -1,7 +1,7 @@
1
1
  import type { M3uAssociatedPlaylist, M3uStream } from '../containers/m3u/get-streams';
2
- import type { LogLevel } from '../log';
2
+ import type { MediaParserLogLevel } from '../log';
3
3
  import type { IsoBaseMediaStructure } from '../parse-result';
4
- import type { OnAudioSample, OnVideoSample } from '../webcodec-sample-types';
4
+ import type { MediaParserOnAudioSample, MediaParserOnVideoSample } from '../webcodec-sample-types';
5
5
  export type M3uStreamOrInitialUrl = {
6
6
  type: 'selected-stream';
7
7
  stream: M3uStream;
@@ -16,13 +16,13 @@ export type M3uRun = {
16
16
  type M3uSeek = {
17
17
  targetTime: number;
18
18
  };
19
- export declare const m3uState: (logLevel: LogLevel) => {
19
+ export declare const m3uState: (logLevel: MediaParserLogLevel) => {
20
20
  setSelectedMainPlaylist: (stream: M3uStreamOrInitialUrl) => void;
21
21
  getSelectedMainPlaylist: () => M3uStreamOrInitialUrl | null;
22
- setHasEmittedVideoTrack: (src: string, callback: OnVideoSample | null) => void;
23
- hasEmittedVideoTrack: (src: string) => false | OnVideoSample | null;
24
- setHasEmittedAudioTrack: (src: string, callback: OnAudioSample | null) => void;
25
- hasEmittedAudioTrack: (src: string) => false | OnAudioSample | null;
22
+ setHasEmittedVideoTrack: (src: string, callback: MediaParserOnVideoSample | null) => void;
23
+ hasEmittedVideoTrack: (src: string) => false | MediaParserOnVideoSample | null;
24
+ setHasEmittedAudioTrack: (src: string, callback: MediaParserOnAudioSample | null) => void;
25
+ hasEmittedAudioTrack: (src: string) => false | MediaParserOnAudioSample | null;
26
26
  setHasEmittedDoneWithTracks: (src: string) => void;
27
27
  hasEmittedDoneWithTracks: (src: string) => boolean;
28
28
  setReadyToIterateOverM3u: () => void;
@@ -45,12 +45,12 @@ export declare const m3uState: (logLevel: LogLevel) => {
45
45
  sampleSorter: {
46
46
  clearSamples: () => void;
47
47
  addToStreamWithTrack: (src: string) => void;
48
- addVideoStreamToConsider: (src: string, callback: OnVideoSample) => void;
49
- addAudioStreamToConsider: (src: string, callback: OnAudioSample) => void;
48
+ addVideoStreamToConsider: (src: string, callback: MediaParserOnVideoSample) => void;
49
+ addAudioStreamToConsider: (src: string, callback: MediaParserOnAudioSample) => void;
50
50
  hasAudioStreamToConsider: (src: string) => boolean;
51
51
  hasVideoStreamToConsider: (src: string) => boolean;
52
- addAudioSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
53
- addVideoSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
52
+ addAudioSample: (src: string, sample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
53
+ addVideoSample: (src: string, sample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
54
54
  getNextStreamToRun: (streams: string[]) => string;
55
55
  };
56
56
  setMp4HeaderSegment: (playlistUrl: string, structure: IsoBaseMediaStructure) => void;
@@ -1,14 +1,14 @@
1
1
  import type { MatroskaCue } from '../../containers/webm/seek/format-cues';
2
2
  import type { MediaParserController } from '../../controller/media-parser-controller';
3
3
  import type { PrefetchCache } from '../../fetch';
4
- import type { LogLevel } from '../../log';
4
+ import type { MediaParserLogLevel } from '../../log';
5
5
  import type { ParseMediaSrc } from '../../options';
6
- import type { ReaderInterface } from '../../readers/reader';
6
+ import type { MediaParserReaderInterface } from '../../readers/reader';
7
7
  import type { WebmSeekingHints } from '../../seeking-hints';
8
8
  export declare const lazyCuesFetch: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
9
9
  controller: MediaParserController;
10
- logLevel: LogLevel;
11
- readerInterface: ReaderInterface;
10
+ logLevel: MediaParserLogLevel;
11
+ readerInterface: MediaParserReaderInterface;
12
12
  src: ParseMediaSrc;
13
13
  prefetchCache: PrefetchCache;
14
14
  }) => {
@@ -4,9 +4,9 @@ import type { TrackInfo } from '../../containers/webm/segments/track-entry';
4
4
  import type { MediaParserController } from '../../controller/media-parser-controller';
5
5
  import type { PrefetchCache } from '../../fetch';
6
6
  import type { BufferIterator } from '../../iterator/buffer-iterator';
7
- import type { LogLevel } from '../../log';
7
+ import type { MediaParserLogLevel } from '../../log';
8
8
  import type { ParseMediaSrc } from '../../options';
9
- import type { ReaderInterface } from '../../readers/reader';
9
+ import type { MediaParserReaderInterface } from '../../readers/reader';
10
10
  export type SegmentSection = {
11
11
  start: number;
12
12
  size: number;
@@ -19,8 +19,8 @@ export type ClusterSection = {
19
19
  };
20
20
  export declare const webmState: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
21
21
  controller: MediaParserController;
22
- logLevel: LogLevel;
23
- readerInterface: ReaderInterface;
22
+ logLevel: MediaParserLogLevel;
23
+ readerInterface: MediaParserReaderInterface;
24
24
  src: ParseMediaSrc;
25
25
  prefetchCache: PrefetchCache;
26
26
  }) => {
@@ -117,7 +117,7 @@ const webmState = ({ controller, logLevel, readerInterface, src, prefetchCache,
117
117
  },
118
118
  isInsideCluster: (offset) => {
119
119
  for (const cluster of clusters) {
120
- if (offset >= cluster.start && offset <= cluster.start + cluster.size) {
120
+ if (offset >= cluster.start && offset < cluster.start + cluster.size) {
121
121
  return cluster;
122
122
  }
123
123
  }
@@ -1,4 +1,5 @@
1
1
  import type { ParserState } from './parser-state';
2
+ export declare const missesMatroskaTracks: (state: ParserState) => boolean;
2
3
  export declare const maySkipVideoData: ({ state }: {
3
4
  state: ParserState;
4
5
  }) => boolean;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maySkipOverSamplesInTheMiddle = exports.maySkipVideoData = void 0;
3
+ exports.maySkipOverSamplesInTheMiddle = exports.maySkipVideoData = exports.missesMatroskaTracks = void 0;
4
+ const get_ready_tracks_1 = require("../containers/webm/get-ready-tracks");
5
+ const traversal_1 = require("../containers/webm/traversal");
4
6
  const need_samples_for_fields_1 = require("./need-samples-for-fields");
5
7
  const getHasCallbacks = (state) => {
6
8
  const hasNoTrackHandlers = !state.callbacks.hasAudioTrackHandlers &&
@@ -13,13 +15,32 @@ const getHasCallbacks = (state) => {
13
15
  Object.values(state.callbacks.audioSampleCallbacks).length > 0;
14
16
  return hasAllTracksAndNoCallbacks;
15
17
  };
18
+ const missesMatroskaTracks = (state) => {
19
+ const struct = state.structure.getStructureOrNull();
20
+ if (struct === null) {
21
+ return false;
22
+ }
23
+ if (struct.type !== 'matroska') {
24
+ return false;
25
+ }
26
+ const mainSegment = (0, traversal_1.getMainSegment)(struct.boxes);
27
+ if (mainSegment === null) {
28
+ return false;
29
+ }
30
+ return ((0, get_ready_tracks_1.getTracksFromMatroska)({
31
+ structureState: state.structure,
32
+ webmState: state.webm,
33
+ }).missingInfo.length > 0);
34
+ };
35
+ exports.missesMatroskaTracks = missesMatroskaTracks;
16
36
  const maySkipVideoData = ({ state }) => {
17
37
  const hasCallbacks = getHasCallbacks(state);
18
38
  return (!hasCallbacks &&
19
39
  !(0, need_samples_for_fields_1.needsToIterateOverSamples)({
20
40
  emittedFields: state.emittedFields,
21
41
  fields: state.fields,
22
- }));
42
+ }) &&
43
+ !(0, exports.missesMatroskaTracks)(state));
23
44
  };
24
45
  exports.maySkipVideoData = maySkipVideoData;
25
46
  const maySkipOverSamplesInTheMiddle = ({ state, }) => {
@@ -16,7 +16,7 @@ exports.fieldsNeedSamplesMap = {
16
16
  name: false,
17
17
  rotation: false,
18
18
  size: false,
19
- structure: false,
19
+ slowStructure: false,
20
20
  tracks: false,
21
21
  unrotatedDimensions: false,
22
22
  videoCodec: false,
@@ -4,10 +4,10 @@ import type { MediaParserController } from '../controller/media-parser-controlle
4
4
  import type { PrefetchCache } from '../fetch';
5
5
  import type { Options, ParseMediaFields } from '../fields';
6
6
  import { type BufferIterator } from '../iterator/buffer-iterator';
7
- import { type LogLevel } from '../log';
8
- import type { AllParseMediaFields, M3uPlaylistContext, OnDiscardedData, ParseMediaCallbacks, ParseMediaMode, ParseMediaResult, ParseMediaSrc } from '../options';
9
- import type { Reader, ReaderInterface } from '../readers/reader';
10
- import type { OnAudioTrack, OnVideoTrack } from '../webcodec-sample-types';
7
+ import { type MediaParserLogLevel } from '../log';
8
+ import type { M3uPlaylistContext, OnDiscardedData, ParseMediaCallbacks, ParseMediaMode, ParseMediaSrc } from '../options';
9
+ import type { MediaParserReaderInterface, Reader } from '../readers/reader';
10
+ import type { MediaParserOnAudioTrack, MediaParserOnVideoTrack } from '../webcodec-sample-types';
11
11
  export type InternalStats = {
12
12
  skippedBytes: number;
13
13
  finalCursorOffset: number;
@@ -20,13 +20,13 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
20
20
  hasAudioTrackHandlers: boolean;
21
21
  hasVideoTrackHandlers: boolean;
22
22
  controller: MediaParserController;
23
- onAudioTrack: OnAudioTrack | null;
24
- onVideoTrack: OnVideoTrack | null;
23
+ onAudioTrack: MediaParserOnAudioTrack | null;
24
+ onVideoTrack: MediaParserOnVideoTrack | null;
25
25
  contentLength: number;
26
- logLevel: LogLevel;
26
+ logLevel: MediaParserLogLevel;
27
27
  mode: ParseMediaMode;
28
28
  src: ParseMediaSrc;
29
- readerInterface: ReaderInterface;
29
+ readerInterface: MediaParserReaderInterface;
30
30
  onDiscardedData: OnDiscardedData | null;
31
31
  selectM3uStreamFn: SelectM3uStreamFn;
32
32
  selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
@@ -66,8 +66,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
66
66
  }> | Promise<null>;
67
67
  };
68
68
  sampleCounter: {
69
- onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").AudioOrVideoSample) => void;
70
- onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").AudioOrVideoSample) => void;
69
+ onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => void;
70
+ onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => void;
71
71
  getSamplesForTrack: (trackId: number) => number;
72
72
  setSamplesFromSeek: (samples: Record<number, number>) => void;
73
73
  riffKeys: {
@@ -99,8 +99,8 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
99
99
  };
100
100
  resetBeforeSeek: () => void;
101
101
  lastEmittedSample: {
102
- setLastEmittedSample: (sample: import("../webcodec-sample-types").AudioOrVideoSample) => void;
103
- getLastEmittedSample: () => import("../webcodec-sample-types").AudioOrVideoSample | null;
102
+ setLastEmittedSample: (sample: import("../webcodec-sample-types").MediaParserAudioSample | import("../webcodec-sample-types").MediaParserVideoSample) => void;
103
+ getLastEmittedSample: () => import("../webcodec-sample-types").MediaParserAudioSample | import("../webcodec-sample-types").MediaParserVideoSample | null;
104
104
  resetLastEmittedSample: () => void;
105
105
  };
106
106
  };
@@ -207,10 +207,10 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
207
207
  m3u: {
208
208
  setSelectedMainPlaylist: (stream: import("./m3u-state").M3uStreamOrInitialUrl) => void;
209
209
  getSelectedMainPlaylist: () => import("./m3u-state").M3uStreamOrInitialUrl | null;
210
- setHasEmittedVideoTrack: (src: string, callback: import("../webcodec-sample-types").OnVideoSample | null) => void;
211
- hasEmittedVideoTrack: (src: string) => false | import("../webcodec-sample-types").OnVideoSample | null;
212
- setHasEmittedAudioTrack: (src: string, callback: import("../webcodec-sample-types").OnAudioSample | null) => void;
213
- hasEmittedAudioTrack: (src: string) => false | import("../webcodec-sample-types").OnAudioSample | null;
210
+ setHasEmittedVideoTrack: (src: string, callback: import("../webcodec-sample-types").MediaParserOnVideoSample | null) => void;
211
+ hasEmittedVideoTrack: (src: string) => false | import("../webcodec-sample-types").MediaParserOnVideoSample | null;
212
+ setHasEmittedAudioTrack: (src: string, callback: import("../webcodec-sample-types").MediaParserOnAudioSample | null) => void;
213
+ hasEmittedAudioTrack: (src: string) => false | import("../webcodec-sample-types").MediaParserOnAudioSample | null;
214
214
  setHasEmittedDoneWithTracks: (src: string) => void;
215
215
  hasEmittedDoneWithTracks: (src: string) => boolean;
216
216
  setReadyToIterateOverM3u: () => void;
@@ -233,12 +233,12 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
233
233
  sampleSorter: {
234
234
  clearSamples: () => void;
235
235
  addToStreamWithTrack: (src: string) => void;
236
- addVideoStreamToConsider: (src: string, callback: import("../webcodec-sample-types").OnVideoSample) => void;
237
- addAudioStreamToConsider: (src: string, callback: import("../webcodec-sample-types").OnAudioSample) => void;
236
+ addVideoStreamToConsider: (src: string, callback: import("../webcodec-sample-types").MediaParserOnVideoSample) => void;
237
+ addAudioStreamToConsider: (src: string, callback: import("../webcodec-sample-types").MediaParserOnAudioSample) => void;
238
238
  hasAudioStreamToConsider: (src: string) => boolean;
239
239
  hasVideoStreamToConsider: (src: string) => boolean;
240
- addAudioSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
241
- addVideoSample: (src: string, sample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
240
+ addAudioSample: (src: string, sample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
241
+ addVideoSample: (src: string, sample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
242
242
  getNextStreamToRun: (streams: string[]) => string;
243
243
  };
244
244
  setMp4HeaderSegment: (playlistUrl: string, structure: import("../parse-result").IsoBaseMediaStructure) => void;
@@ -260,24 +260,24 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
260
260
  timeFreeingData: number;
261
261
  };
262
262
  callbacks: {
263
- registerVideoSampleCallback: (id: number, callback: import("../webcodec-sample-types").OnVideoSample | null) => Promise<void>;
264
- onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
265
- onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").AudioOrVideoSample) => Promise<void>;
263
+ registerVideoSampleCallback: (id: number, callback: import("../webcodec-sample-types").MediaParserOnVideoSample | null) => Promise<void>;
264
+ onAudioSample: (trackId: number, audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => Promise<void>;
265
+ onVideoSample: (trackId: number, videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => Promise<void>;
266
266
  canSkipTracksState: {
267
267
  doFieldsNeedTracks: () => boolean;
268
268
  canSkipTracks: () => boolean;
269
269
  };
270
- registerAudioSampleCallback: (id: number, callback: import("../webcodec-sample-types").OnAudioSample | null) => Promise<void>;
270
+ registerAudioSampleCallback: (id: number, callback: import("../webcodec-sample-types").MediaParserOnAudioSample | null) => Promise<void>;
271
271
  tracks: {
272
272
  hasAllTracks: () => boolean;
273
273
  getIsDone: () => boolean;
274
- setIsDone: (logLevel: LogLevel) => void;
275
- addTrack: (track: import("..").Track) => void;
276
- getTracks: () => import("..").Track[];
274
+ setIsDone: (logLevel: MediaParserLogLevel) => void;
275
+ addTrack: (track: import("..").MediaParserTrack) => void;
276
+ getTracks: () => import("..").MediaParserTrack[];
277
277
  ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
278
278
  };
279
- audioSampleCallbacks: Record<number, import("../webcodec-sample-types").OnAudioSample>;
280
- videoSampleCallbacks: Record<number, import("../webcodec-sample-types").OnVideoSample>;
279
+ audioSampleCallbacks: Record<number, import("../webcodec-sample-types").MediaParserOnAudioSample>;
280
+ videoSampleCallbacks: Record<number, import("../webcodec-sample-types").MediaParserOnVideoSample>;
281
281
  hasAudioTrackHandlers: boolean;
282
282
  hasVideoTrackHandlers: boolean;
283
283
  };
@@ -290,9 +290,9 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
290
290
  setFromSeekingHints: (keyframesFromHints: import("../options").MediaParserKeyframe[]) => void;
291
291
  };
292
292
  structure: {
293
- getStructureOrNull: () => import("..").MediaParserStructureUnstable | null;
294
- getStructure: () => import("..").MediaParserStructureUnstable;
295
- setStructure: (value: import("..").MediaParserStructureUnstable) => void;
293
+ getStructureOrNull: () => import("../parse-result").MediaParserStructureUnstable | null;
294
+ getStructure: () => import("../parse-result").MediaParserStructureUnstable;
295
+ setStructure: (value: import("../parse-result").MediaParserStructureUnstable) => void;
296
296
  getFlacStructure: () => import("../containers/flac/types").FlacStructure;
297
297
  getIsoStructure: () => import("../parse-result").IsoBaseMediaStructure;
298
298
  getMp3Structure: () => import("../parse-result").Mp3Structure;
@@ -302,13 +302,13 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
302
302
  getWavStructure: () => import("../containers/wav/types").WavStructure;
303
303
  getMatroskaStructure: () => import("../parse-result").MatroskaStructure;
304
304
  };
305
- onAudioTrack: OnAudioTrack | null;
306
- onVideoTrack: OnVideoTrack | null;
305
+ onAudioTrack: MediaParserOnAudioTrack | null;
306
+ onVideoTrack: MediaParserOnVideoTrack | null;
307
307
  emittedFields: import("../fields").AllOptions<ParseMediaFields>;
308
308
  fields: Partial<import("../fields").AllOptions<ParseMediaFields>>;
309
309
  samplesObserved: {
310
- addVideoSample: (videoSample: import("../webcodec-sample-types").AudioOrVideoSample) => void;
311
- addAudioSample: (audioSample: import("../webcodec-sample-types").AudioOrVideoSample) => void;
310
+ addVideoSample: (videoSample: import("../webcodec-sample-types").MediaParserVideoSample) => void;
311
+ addAudioSample: (audioSample: import("../webcodec-sample-types").MediaParserAudioSample) => void;
312
312
  getSlowDurationInSeconds: () => number;
313
313
  getFps: () => number;
314
314
  getSlowNumberOfFrames: () => number;
@@ -414,14 +414,43 @@ export declare const makeParserState: ({ hasAudioTrackHandlers, hasVideoTrackHan
414
414
  controller: MediaParserController;
415
415
  mode: ParseMediaMode;
416
416
  src: ParseMediaSrc;
417
- readerInterface: ReaderInterface;
417
+ readerInterface: MediaParserReaderInterface;
418
418
  discardReadBytes: (force: boolean) => Promise<void>;
419
419
  selectM3uStreamFn: SelectM3uStreamFn;
420
420
  selectM3uAssociatedPlaylistsFn: SelectM3uAssociatedPlaylistsFn;
421
421
  m3uPlaylistContext: M3uPlaylistContext | null;
422
422
  contentType: string | null;
423
423
  name: string;
424
- returnValue: ParseMediaResult<AllParseMediaFields>;
424
+ returnValue: {
425
+ dimensions: import("..").MediaParserDimensions | null;
426
+ durationInSeconds: number | null;
427
+ slowDurationInSeconds: number;
428
+ slowNumberOfFrames: number;
429
+ slowFps: number;
430
+ slowStructure: import("../parse-result").MediaParserStructureUnstable;
431
+ fps: number | null;
432
+ videoCodec: import("..").MediaParserVideoCodec | null;
433
+ audioCodec: import("..").MediaParserAudioCodec | null;
434
+ tracks: import("..").MediaParserTrack[];
435
+ rotation: number | null;
436
+ unrotatedDimensions: import("..").MediaParserDimensions | null;
437
+ internalStats: InternalStats;
438
+ size: number | null;
439
+ name: string;
440
+ container: import("../options").MediaParserContainer;
441
+ isHdr: boolean;
442
+ metadata: import("..").MediaParserMetadataEntry[];
443
+ location: import("..").MediaParserLocation | null;
444
+ mimeType: string | null;
445
+ keyframes: import("../options").MediaParserKeyframe[] | null;
446
+ slowKeyframes: import("../options").MediaParserKeyframe[];
447
+ images: import("./images").MediaParserEmbeddedImage[];
448
+ sampleRate: number | null;
449
+ numberOfAudioChannels: number | null;
450
+ slowVideoBitrate: number | null;
451
+ slowAudioBitrate: number | null;
452
+ m3uStreams: import("..").M3uStream[] | null;
453
+ };
425
454
  callbackFunctions: Partial<import("../options").ParseMediaCallbacksMandatory>;
426
455
  fieldsInReturnValue: Partial<import("../fields").AllOptions<ParseMediaFields>>;
427
456
  mimeType: string | null;
@@ -1,13 +1,13 @@
1
1
  import type { RiffSeekingHints } from '../../containers/riff/seeking-hints';
2
2
  import type { MediaParserController } from '../../controller/media-parser-controller';
3
3
  import type { PrefetchCache } from '../../fetch';
4
- import type { LogLevel } from '../../log';
4
+ import type { MediaParserLogLevel } from '../../log';
5
5
  import type { ParseMediaSrc } from '../../options';
6
- import type { ReaderInterface } from '../../readers/reader';
6
+ import type { MediaParserReaderInterface } from '../../readers/reader';
7
7
  export declare const lazyIdx1Fetch: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
8
8
  controller: MediaParserController;
9
- logLevel: LogLevel;
10
- readerInterface: ReaderInterface;
9
+ logLevel: MediaParserLogLevel;
10
+ readerInterface: MediaParserReaderInterface;
11
11
  src: ParseMediaSrc;
12
12
  prefetchCache: PrefetchCache;
13
13
  }) => {
@@ -1,7 +1,7 @@
1
- import type { AudioOrVideoSample } from '../../webcodec-sample-types';
1
+ import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
2
2
  export declare const riffSampleCounter: () => {
3
- onAudioSample: (trackId: number, audioSample: AudioOrVideoSample) => void;
4
- onVideoSample: (trackId: number, videoSample: AudioOrVideoSample) => void;
3
+ onAudioSample: (trackId: number, audioSample: MediaParserAudioSample) => void;
4
+ onVideoSample: (trackId: number, videoSample: MediaParserVideoSample) => void;
5
5
  getSamplesForTrack: (trackId: number) => number;
6
6
  setSamplesFromSeek: (samples: Record<number, number>) => void;
7
7
  riffKeys: {
@@ -1,14 +1,14 @@
1
1
  import type { MediaParserController } from '../controller/media-parser-controller';
2
2
  import type { PrefetchCache } from '../fetch';
3
- import type { LogLevel } from '../log';
3
+ import type { MediaParserLogLevel } from '../log';
4
4
  import type { ParseMediaSrc } from '../options';
5
- import type { ReaderInterface } from '../readers/reader';
5
+ import type { MediaParserReaderInterface } from '../readers/reader';
6
6
  import type { SpsAndPps } from './parser-state';
7
7
  type AvcProfileInfoCallback = (profile: SpsAndPps) => Promise<void>;
8
8
  export declare const riffSpecificState: ({ controller, logLevel, readerInterface, src, prefetchCache, }: {
9
9
  controller: MediaParserController;
10
- logLevel: LogLevel;
11
- readerInterface: ReaderInterface;
10
+ logLevel: MediaParserLogLevel;
11
+ readerInterface: MediaParserReaderInterface;
12
12
  src: ParseMediaSrc;
13
13
  prefetchCache: PrefetchCache;
14
14
  }) => {
@@ -37,8 +37,8 @@ export declare const riffSpecificState: ({ controller, logLevel, readerInterface
37
37
  }> | Promise<null>;
38
38
  };
39
39
  sampleCounter: {
40
- onAudioSample: (trackId: number, audioSample: import("..").AudioOrVideoSample) => void;
41
- onVideoSample: (trackId: number, videoSample: import("..").AudioOrVideoSample) => void;
40
+ onAudioSample: (trackId: number, audioSample: import("..").MediaParserAudioSample) => void;
41
+ onVideoSample: (trackId: number, videoSample: import("..").MediaParserVideoSample) => void;
42
42
  getSamplesForTrack: (trackId: number) => number;
43
43
  setSamplesFromSeek: (samples: Record<number, number>) => void;
44
44
  riffKeys: {
@@ -1,9 +1,9 @@
1
1
  import type { MediaParserController } from '../controller/media-parser-controller';
2
2
  import type { SeekSignal } from '../controller/seek-signal';
3
3
  import type { AllOptions, Options, ParseMediaFields } from '../fields';
4
- import type { LogLevel } from '../log';
4
+ import type { MediaParserLogLevel } from '../log';
5
5
  import type { ParseMediaSrc } from '../options';
6
- import type { AudioOrVideoSample, OnAudioSample, OnVideoSample } from '../webcodec-sample-types';
6
+ import type { MediaParserAudioSample, MediaParserOnAudioSample, MediaParserOnVideoSample, MediaParserVideoSample } from '../webcodec-sample-types';
7
7
  import { type KeyframesState } from './keyframes';
8
8
  import type { SamplesObservedState } from './samples-observed/slow-duration-fps';
9
9
  import type { StructureState } from './structure';
@@ -18,26 +18,26 @@ export declare const callbacksState: ({ controller, hasAudioTrackHandlers, hasVi
18
18
  structure: StructureState;
19
19
  src: ParseMediaSrc;
20
20
  seekSignal: SeekSignal;
21
- logLevel: LogLevel;
21
+ logLevel: MediaParserLogLevel;
22
22
  }) => {
23
- registerVideoSampleCallback: (id: number, callback: OnVideoSample | null) => Promise<void>;
24
- onAudioSample: (trackId: number, audioSample: AudioOrVideoSample) => Promise<void>;
25
- onVideoSample: (trackId: number, videoSample: AudioOrVideoSample) => Promise<void>;
23
+ registerVideoSampleCallback: (id: number, callback: MediaParserOnVideoSample | null) => Promise<void>;
24
+ onAudioSample: (trackId: number, audioSample: MediaParserAudioSample) => Promise<void>;
25
+ onVideoSample: (trackId: number, videoSample: MediaParserVideoSample) => Promise<void>;
26
26
  canSkipTracksState: {
27
27
  doFieldsNeedTracks: () => boolean;
28
28
  canSkipTracks: () => boolean;
29
29
  };
30
- registerAudioSampleCallback: (id: number, callback: OnAudioSample | null) => Promise<void>;
30
+ registerAudioSampleCallback: (id: number, callback: MediaParserOnAudioSample | null) => Promise<void>;
31
31
  tracks: {
32
32
  hasAllTracks: () => boolean;
33
33
  getIsDone: () => boolean;
34
- setIsDone: (logLevel: LogLevel) => void;
35
- addTrack: (track: import("..").Track) => void;
36
- getTracks: () => import("..").Track[];
34
+ setIsDone: (logLevel: MediaParserLogLevel) => void;
35
+ addTrack: (track: import("..").MediaParserTrack) => void;
36
+ getTracks: () => import("..").MediaParserTrack[];
37
37
  ensureHasTracksAtEnd: (fields: Options<ParseMediaFields>) => void;
38
38
  };
39
- audioSampleCallbacks: Record<number, OnAudioSample>;
40
- videoSampleCallbacks: Record<number, OnVideoSample>;
39
+ audioSampleCallbacks: Record<number, MediaParserOnAudioSample>;
40
+ videoSampleCallbacks: Record<number, MediaParserOnVideoSample>;
41
41
  hasAudioTrackHandlers: boolean;
42
42
  hasVideoTrackHandlers: boolean;
43
43
  };
@@ -38,7 +38,7 @@ const callbacksState = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
38
38
  if (audioSample.data.length > 0) {
39
39
  // If we emit samples with data length 0, Chrome will fail
40
40
  if (callback) {
41
- if (seekSignal.getSeek()) {
41
+ if (seekSignal.getSeek() !== null) {
42
42
  log_1.Log.trace(logLevel, 'Not emitting sample because seek is processing');
43
43
  }
44
44
  else {
@@ -58,7 +58,7 @@ const callbacksState = ({ controller, hasAudioTrackHandlers, hasVideoTrackHandle
58
58
  const callback = videoSampleCallbacks[trackId];
59
59
  // If we emit samples with data 0, Chrome will fail
60
60
  if (callback) {
61
- if (seekSignal.getSeek()) {
61
+ if (seekSignal.getSeek() !== null) {
62
62
  log_1.Log.trace(logLevel, 'Not emitting sample because seek is processing');
63
63
  }
64
64
  else {
@@ -1,7 +1,7 @@
1
- import type { AudioOrVideoSample } from '../../webcodec-sample-types';
1
+ import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
2
2
  export declare const samplesObservedState: () => {
3
- addVideoSample: (videoSample: AudioOrVideoSample) => void;
4
- addAudioSample: (audioSample: AudioOrVideoSample) => void;
3
+ addVideoSample: (videoSample: MediaParserVideoSample) => void;
4
+ addAudioSample: (audioSample: MediaParserAudioSample) => void;
5
5
  getSlowDurationInSeconds: () => number;
6
6
  getFps: () => number;
7
7
  getSlowNumberOfFrames: () => number;
@@ -1,6 +1,6 @@
1
- import type { AudioOrVideoSample } from '../../webcodec-sample-types';
1
+ import type { MediaParserAudioSample, MediaParserVideoSample } from '../../webcodec-sample-types';
2
2
  export declare const lastEmittedSampleState: () => {
3
- setLastEmittedSample: (sample: AudioOrVideoSample) => void;
4
- getLastEmittedSample: () => AudioOrVideoSample | null;
3
+ setLastEmittedSample: (sample: MediaParserAudioSample | MediaParserVideoSample) => void;
4
+ getLastEmittedSample: () => MediaParserAudioSample | MediaParserVideoSample | null;
5
5
  resetLastEmittedSample: () => void;
6
6
  };
@@ -21,8 +21,8 @@ export declare const transportStreamState: () => {
21
21
  };
22
22
  resetBeforeSeek: () => void;
23
23
  lastEmittedSample: {
24
- setLastEmittedSample: (sample: import("../..").AudioOrVideoSample) => void;
25
- getLastEmittedSample: () => import("../..").AudioOrVideoSample | null;
24
+ setLastEmittedSample: (sample: import("../..").MediaParserAudioSample | import("../..").MediaParserVideoSample) => void;
25
+ getLastEmittedSample: () => import("../..").MediaParserAudioSample | import("../..").MediaParserVideoSample | null;
26
26
  resetLastEmittedSample: () => void;
27
27
  };
28
28
  };
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "4.0.298";
1
+ export declare const VERSION = "4.0.300";
package/dist/version.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Automatically generated on publish
5
- exports.VERSION = '4.0.298';
5
+ exports.VERSION = '4.0.300';