@remotion/media 4.0.402 → 4.0.404
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.
- package/dist/audio/audio-for-preview.d.ts +2 -0
- package/dist/audio/audio-preview-iterator.d.ts +8 -3
- package/dist/audio/props.d.ts +2 -0
- package/dist/audio-extraction/audio-iterator.d.ts +5 -4
- package/dist/audio-extraction/audio-manager.d.ts +23 -7
- package/dist/audio-extraction/extract-audio.d.ts +2 -4
- package/dist/audio-iterator-manager.d.ts +2 -2
- package/dist/caches.d.ts +34 -17
- package/dist/convert-audiodata/apply-volume.d.ts +1 -1
- package/dist/convert-audiodata/resample-audiodata.d.ts +2 -2
- package/dist/debug-overlay/preview-overlay.d.ts +83 -5
- package/dist/esm/index.mjs +524 -476
- package/dist/extract-frame-and-audio.d.ts +1 -2
- package/dist/get-sink.d.ts +1 -2
- package/dist/index.d.ts +2 -1
- package/dist/media-player.d.ts +1 -1
- package/dist/on-error.d.ts +12 -0
- package/dist/show-in-timeline.d.ts +2 -2
- package/dist/use-media-in-timeline.d.ts +2 -2
- package/dist/video/props.d.ts +5 -0
- package/dist/video/video-for-preview.d.ts +2 -0
- package/dist/video/video-for-rendering.d.ts +2 -0
- package/dist/video/video-preview-iterator.d.ts +7 -2
- package/dist/video-extraction/extract-frame-via-broadcast-channel.d.ts +1 -2
- package/dist/video-extraction/extract-frame.d.ts +2 -4
- package/dist/video-extraction/get-frames-since-keyframe.d.ts +2 -12
- package/dist/video-extraction/keyframe-bank.d.ts +14 -12
- package/dist/video-extraction/keyframe-manager.d.ts +7 -9
- package/dist/video-iterator-manager.d.ts +4 -5
- package/package.json +8 -7
- package/dist/audio/allow-wait.js +0 -15
- package/dist/audio/audio-for-preview.js +0 -304
- package/dist/audio/audio-for-rendering.js +0 -194
- package/dist/audio/audio-preview-iterator.js +0 -176
- package/dist/audio/audio.js +0 -20
- package/dist/audio/props.js +0 -1
- package/dist/audio-extraction/audio-cache.js +0 -66
- package/dist/audio-extraction/audio-iterator.js +0 -132
- package/dist/audio-extraction/audio-manager.js +0 -113
- package/dist/audio-extraction/extract-audio.js +0 -132
- package/dist/audio-iterator-manager.js +0 -228
- package/dist/browser-can-use-webgl2.js +0 -13
- package/dist/caches.js +0 -61
- package/dist/calculate-playbacktime.js +0 -4
- package/dist/convert-audiodata/apply-volume.js +0 -17
- package/dist/convert-audiodata/combine-audiodata.js +0 -23
- package/dist/convert-audiodata/convert-audiodata.js +0 -73
- package/dist/convert-audiodata/resample-audiodata.js +0 -94
- package/dist/debug-overlay/preview-overlay.js +0 -44
- package/dist/extract-frame-and-audio.js +0 -101
- package/dist/get-sink.js +0 -15
- package/dist/get-time-in-seconds.js +0 -40
- package/dist/helpers/round-to-4-digits.js +0 -4
- package/dist/index.js +0 -12
- package/dist/is-type-of-error.js +0 -20
- package/dist/looped-frame.js +0 -10
- package/dist/media-player.js +0 -445
- package/dist/nonce-manager.js +0 -13
- package/dist/prewarm-iterator-for-looping.js +0 -56
- package/dist/render-timestamp-range.js +0 -9
- package/dist/show-in-timeline.js +0 -31
- package/dist/use-media-in-timeline.js +0 -103
- package/dist/video/props.js +0 -1
- package/dist/video/video-for-preview.js +0 -329
- package/dist/video/video-for-rendering.js +0 -263
- package/dist/video/video-preview-iterator.js +0 -122
- package/dist/video/video.js +0 -35
- package/dist/video-extraction/add-broadcast-channel-listener.js +0 -125
- package/dist/video-extraction/extract-frame-via-broadcast-channel.js +0 -113
- package/dist/video-extraction/extract-frame.js +0 -85
- package/dist/video-extraction/get-allocation-size.js +0 -6
- package/dist/video-extraction/get-frames-since-keyframe.js +0 -108
- package/dist/video-extraction/keyframe-bank.js +0 -159
- package/dist/video-extraction/keyframe-manager.js +0 -206
- package/dist/video-extraction/remember-actual-matroska-timestamps.js +0 -19
- package/dist/video-extraction/rotate-frame.js +0 -34
- package/dist/video-iterator-manager.js +0 -109
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { LogLevel, LoopVolumeCurveBehavior, VolumeProp } from 'remotion';
|
|
3
|
+
import { type MediaOnError } from '../on-error';
|
|
3
4
|
import type { FallbackHtml5AudioProps } from './props';
|
|
4
5
|
type InnerAudioProps = {
|
|
5
6
|
readonly loop?: boolean;
|
|
@@ -25,6 +26,7 @@ type InnerAudioProps = {
|
|
|
25
26
|
readonly toneFrequency?: number;
|
|
26
27
|
readonly audioStreamIndex?: number;
|
|
27
28
|
readonly fallbackHtml5AudioProps?: FallbackHtml5AudioProps;
|
|
29
|
+
readonly onError?: MediaOnError;
|
|
28
30
|
};
|
|
29
31
|
export declare const AudioForPreview: React.FC<InnerAudioProps>;
|
|
30
32
|
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { WrappedAudioBuffer } from 'mediabunny';
|
|
2
|
-
import type { PrewarmedAudioIteratorCache } from '../prewarm-iterator-for-looping';
|
|
3
2
|
import { type AllowWait } from './allow-wait';
|
|
4
3
|
export declare const HEALTHY_BUFFER_THRESHOLD_SECONDS = 1;
|
|
5
4
|
export type QueuedNode = {
|
|
@@ -7,7 +6,13 @@ export type QueuedNode = {
|
|
|
7
6
|
timestamp: number;
|
|
8
7
|
buffer: AudioBuffer;
|
|
9
8
|
};
|
|
10
|
-
export declare const makeAudioIterator: (startFromSecond: number, cache:
|
|
9
|
+
export declare const makeAudioIterator: (startFromSecond: number, cache: {
|
|
10
|
+
prewarmIteratorForLooping: ({ timeToSeek }: {
|
|
11
|
+
timeToSeek: number;
|
|
12
|
+
}) => void;
|
|
13
|
+
makeIteratorOrUsePrewarmed: (timeToSeek: number) => AsyncGenerator<WrappedAudioBuffer, void, unknown>;
|
|
14
|
+
destroy: () => void;
|
|
15
|
+
}) => {
|
|
11
16
|
destroy: () => void;
|
|
12
17
|
getNext: () => Promise<IteratorResult<WrappedAudioBuffer, void>>;
|
|
13
18
|
isDestroyed: () => boolean;
|
|
@@ -37,4 +42,4 @@ export type AudioIterator = ReturnType<typeof makeAudioIterator>;
|
|
|
37
42
|
export declare const isAlreadyQueued: (time: number, queuedPeriod: {
|
|
38
43
|
from: number;
|
|
39
44
|
until: number;
|
|
40
|
-
} |
|
|
45
|
+
} | null | undefined) => boolean;
|
package/dist/audio/props.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LogLevel, LoopVolumeCurveBehavior, VolumeProp } from 'remotion';
|
|
2
|
+
import type { MediaOnError } from '../on-error';
|
|
2
3
|
export type FallbackHtml5AudioProps = {
|
|
3
4
|
crossOrigin?: '' | 'anonymous' | 'use-credentials' | undefined;
|
|
4
5
|
onError?: (err: Error) => void;
|
|
@@ -30,4 +31,5 @@ export type AudioProps = {
|
|
|
30
31
|
toneFrequency?: number;
|
|
31
32
|
delayRenderRetries?: number;
|
|
32
33
|
delayRenderTimeoutInMilliseconds?: number;
|
|
34
|
+
onError?: MediaOnError;
|
|
33
35
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { AudioSample, AudioSampleSink } from 'mediabunny';
|
|
2
|
-
import { type LogLevel } from 'remotion';
|
|
3
|
-
import type { RememberActualMatroskaTimestamps } from '../video-extraction/remember-actual-matroska-timestamps';
|
|
4
2
|
export declare const makeAudioIterator: ({ audioSampleSink, isMatroska, startTimestamp, src, actualMatroskaTimestamps, logLevel, }: {
|
|
5
3
|
audioSampleSink: AudioSampleSink;
|
|
6
4
|
isMatroska: boolean;
|
|
7
5
|
startTimestamp: number;
|
|
8
6
|
src: string;
|
|
9
|
-
actualMatroskaTimestamps:
|
|
10
|
-
|
|
7
|
+
actualMatroskaTimestamps: {
|
|
8
|
+
observeTimestamp: (startTime: number) => void;
|
|
9
|
+
getRealTimestamp: (observedTimestamp: number) => number | null;
|
|
10
|
+
};
|
|
11
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
11
12
|
}) => {
|
|
12
13
|
src: string;
|
|
13
14
|
getSamples: (ts: number, dur: number) => Promise<AudioSample[]>;
|
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
import type { AudioSampleSink } from 'mediabunny';
|
|
2
|
-
import { type LogLevel } from 'remotion';
|
|
3
|
-
import type { RememberActualMatroskaTimestamps } from '../video-extraction/remember-actual-matroska-timestamps';
|
|
4
|
-
import type { AudioSampleIterator } from './audio-iterator';
|
|
5
2
|
export declare const makeAudioManager: () => {
|
|
6
3
|
getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
|
|
7
4
|
src: string;
|
|
8
5
|
timeInSeconds: number;
|
|
9
6
|
audioSampleSink: AudioSampleSink;
|
|
10
7
|
isMatroska: boolean;
|
|
11
|
-
actualMatroskaTimestamps:
|
|
12
|
-
|
|
8
|
+
actualMatroskaTimestamps: {
|
|
9
|
+
observeTimestamp: (startTime: number) => void;
|
|
10
|
+
getRealTimestamp: (observedTimestamp: number) => number | null;
|
|
11
|
+
};
|
|
12
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
13
13
|
maxCacheSize: number;
|
|
14
|
-
}) => Promise<
|
|
14
|
+
}) => Promise<{
|
|
15
|
+
src: string;
|
|
16
|
+
getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
|
|
17
|
+
waitForCompletion: () => Promise<boolean>;
|
|
18
|
+
canSatisfyRequestedTime: (timestamp: number) => boolean;
|
|
19
|
+
logOpenFrames: () => void;
|
|
20
|
+
getCacheStats: () => {
|
|
21
|
+
count: number;
|
|
22
|
+
size: number;
|
|
23
|
+
};
|
|
24
|
+
getLastUsed: () => number;
|
|
25
|
+
prepareForDeletion: () => void;
|
|
26
|
+
startTimestamp: number;
|
|
27
|
+
clearBeforeThreshold: (threshold: number) => void;
|
|
28
|
+
getOldestTimestamp: () => number;
|
|
29
|
+
getNewestTimestamp: () => number | null;
|
|
30
|
+
}>;
|
|
15
31
|
getCacheStats: () => {
|
|
16
32
|
count: number;
|
|
17
33
|
totalSize: number;
|
|
@@ -34,5 +50,5 @@ export declare const makeAudioManager: () => {
|
|
|
34
50
|
getNewestTimestamp: () => number | null;
|
|
35
51
|
} | null;
|
|
36
52
|
logOpenFrames: () => void;
|
|
37
|
-
deleteDuplicateIterators: (logLevel:
|
|
53
|
+
deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
|
|
38
54
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type LogLevel } from 'remotion';
|
|
2
2
|
import type { PcmS16AudioData } from '../convert-audiodata/convert-audiodata';
|
|
3
|
-
type ExtractAudioReturnType = Awaited<ReturnType<typeof extractAudioInternal>>;
|
|
4
3
|
type ExtractAudioParams = {
|
|
5
4
|
src: string;
|
|
6
5
|
timeInSeconds: number;
|
|
@@ -14,9 +13,8 @@ type ExtractAudioParams = {
|
|
|
14
13
|
fps: number;
|
|
15
14
|
maxCacheSize: number;
|
|
16
15
|
};
|
|
17
|
-
declare const
|
|
16
|
+
export declare const extractAudio: (params: ExtractAudioParams) => Promise<"cannot-decode" | "network-error" | "unknown-container-format" | {
|
|
18
17
|
data: PcmS16AudioData | null;
|
|
19
18
|
durationInSeconds: number | null;
|
|
20
|
-
}
|
|
21
|
-
export declare const extractAudio: (params: ExtractAudioParams) => Promise<ExtractAudioReturnType>;
|
|
19
|
+
}>;
|
|
22
20
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InputAudioTrack, WrappedAudioBuffer } from 'mediabunny';
|
|
2
|
-
import type {
|
|
2
|
+
import type { UseBufferState } from 'remotion';
|
|
3
3
|
import type { Nonce } from './nonce-manager';
|
|
4
4
|
export declare const audioIteratorManager: ({ audioTrack, delayPlaybackHandleIfNotPremounting, sharedAudioContext, getIsLooping, getEndTime, getStartTime, updatePlaybackTime, }: {
|
|
5
5
|
audioTrack: InputAudioTrack;
|
|
@@ -57,7 +57,7 @@ export declare const audioIteratorManager: ({ audioTrack, delayPlaybackHandleIfN
|
|
|
57
57
|
fps: number;
|
|
58
58
|
playbackRate: number;
|
|
59
59
|
getIsPlaying: () => boolean;
|
|
60
|
-
bufferState:
|
|
60
|
+
bufferState: UseBufferState;
|
|
61
61
|
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => void;
|
|
62
62
|
}) => Promise<void>;
|
|
63
63
|
getAudioIteratorsCreated: () => number;
|
package/dist/caches.d.ts
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const SAFE_BACK_WINDOW_IN_SECONDS = 1;
|
|
1
|
+
export declare const SAFE_WINDOW_OF_MONOTONICITY = 0.2;
|
|
3
2
|
export declare const keyframeManager: {
|
|
4
|
-
requestKeyframeBank: ({
|
|
5
|
-
packetSink: import("mediabunny").EncodedPacketSink;
|
|
3
|
+
requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, }: {
|
|
6
4
|
timestamp: number;
|
|
7
5
|
videoSampleSink: import("mediabunny").VideoSampleSink;
|
|
8
6
|
src: string;
|
|
9
|
-
logLevel:
|
|
7
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
10
8
|
maxCacheSize: number;
|
|
11
|
-
}) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank
|
|
12
|
-
getCacheStats: () =>
|
|
9
|
+
}) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank>;
|
|
10
|
+
getCacheStats: () => {
|
|
13
11
|
count: number;
|
|
14
12
|
totalSize: number;
|
|
15
|
-
}
|
|
16
|
-
clearAll: (logLevel:
|
|
13
|
+
};
|
|
14
|
+
clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
|
|
17
15
|
};
|
|
18
16
|
export declare const audioManager: {
|
|
19
17
|
getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
|
|
@@ -21,10 +19,29 @@ export declare const audioManager: {
|
|
|
21
19
|
timeInSeconds: number;
|
|
22
20
|
audioSampleSink: import("mediabunny").AudioSampleSink;
|
|
23
21
|
isMatroska: boolean;
|
|
24
|
-
actualMatroskaTimestamps:
|
|
25
|
-
|
|
22
|
+
actualMatroskaTimestamps: {
|
|
23
|
+
observeTimestamp: (startTime: number) => void;
|
|
24
|
+
getRealTimestamp: (observedTimestamp: number) => number | null;
|
|
25
|
+
};
|
|
26
|
+
logLevel: "error" | "info" | "trace" | "verbose" | "warn";
|
|
26
27
|
maxCacheSize: number;
|
|
27
|
-
}) => Promise<
|
|
28
|
+
}) => Promise<{
|
|
29
|
+
src: string;
|
|
30
|
+
getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
|
|
31
|
+
waitForCompletion: () => Promise<boolean>;
|
|
32
|
+
canSatisfyRequestedTime: (timestamp: number) => boolean;
|
|
33
|
+
logOpenFrames: () => void;
|
|
34
|
+
getCacheStats: () => {
|
|
35
|
+
count: number;
|
|
36
|
+
size: number;
|
|
37
|
+
};
|
|
38
|
+
getLastUsed: () => number;
|
|
39
|
+
prepareForDeletion: () => void;
|
|
40
|
+
startTimestamp: number;
|
|
41
|
+
clearBeforeThreshold: (threshold: number) => void;
|
|
42
|
+
getOldestTimestamp: () => number;
|
|
43
|
+
getNewestTimestamp: () => number | null;
|
|
44
|
+
}>;
|
|
28
45
|
getCacheStats: () => {
|
|
29
46
|
count: number;
|
|
30
47
|
totalSize: number;
|
|
@@ -47,11 +64,11 @@ export declare const audioManager: {
|
|
|
47
64
|
getNewestTimestamp: () => number | null;
|
|
48
65
|
} | null;
|
|
49
66
|
logOpenFrames: () => void;
|
|
50
|
-
deleteDuplicateIterators: (logLevel:
|
|
67
|
+
deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
|
|
51
68
|
};
|
|
52
|
-
export declare const getTotalCacheStats: () =>
|
|
69
|
+
export declare const getTotalCacheStats: () => {
|
|
53
70
|
count: number;
|
|
54
71
|
totalSize: number;
|
|
55
|
-
}
|
|
56
|
-
export declare const getMaxVideoCacheSize: (logLevel:
|
|
57
|
-
export declare const useMaxMediaCacheSize: (logLevel:
|
|
72
|
+
};
|
|
73
|
+
export declare const getMaxVideoCacheSize: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number;
|
|
74
|
+
export declare const useMaxMediaCacheSize: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const applyVolume: (array: Int16Array
|
|
1
|
+
export declare const applyVolume: (array: Int16Array<ArrayBufferLike>, volume: number) => void;
|
|
@@ -2,8 +2,8 @@ export declare const TARGET_NUMBER_OF_CHANNELS = 2;
|
|
|
2
2
|
export declare const TARGET_SAMPLE_RATE = 48000;
|
|
3
3
|
export declare const resampleAudioData: ({ srcNumberOfChannels, sourceChannels, destination, targetFrames, chunkSize, }: {
|
|
4
4
|
srcNumberOfChannels: number;
|
|
5
|
-
sourceChannels: Int16Array
|
|
6
|
-
destination: Int16Array
|
|
5
|
+
sourceChannels: Int16Array<ArrayBufferLike>;
|
|
6
|
+
destination: Int16Array<ArrayBufferLike>;
|
|
7
7
|
targetFrames: number;
|
|
8
8
|
chunkSize: number;
|
|
9
9
|
}) => void;
|
|
@@ -1,11 +1,89 @@
|
|
|
1
|
-
import type { AudioIteratorManager } from '../audio-iterator-manager';
|
|
2
|
-
import type { VideoIteratorManager } from '../video-iterator-manager';
|
|
3
1
|
export declare const drawPreviewOverlay: ({ context, audioTime, audioContextState, audioSyncAnchor, playing, audioIteratorManager, videoIteratorManager, }: {
|
|
4
|
-
context:
|
|
2
|
+
context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
|
|
5
3
|
audioTime: number | null;
|
|
6
4
|
audioContextState: AudioContextState | null;
|
|
7
5
|
audioSyncAnchor: number;
|
|
8
6
|
playing: boolean;
|
|
9
|
-
audioIteratorManager:
|
|
10
|
-
|
|
7
|
+
audioIteratorManager: {
|
|
8
|
+
startAudioIterator: ({ nonce, playbackRate, startFromSecond, getIsPlaying, scheduleAudioNode, }: {
|
|
9
|
+
startFromSecond: number;
|
|
10
|
+
nonce: import("../nonce-manager").Nonce;
|
|
11
|
+
playbackRate: number;
|
|
12
|
+
getIsPlaying: () => boolean;
|
|
13
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => void;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
resumeScheduledAudioChunks: ({ playbackRate, scheduleAudioNode, }: {
|
|
16
|
+
playbackRate: number;
|
|
17
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => void;
|
|
18
|
+
}) => void;
|
|
19
|
+
pausePlayback: () => void;
|
|
20
|
+
getAudioBufferIterator: () => {
|
|
21
|
+
destroy: () => void;
|
|
22
|
+
getNext: () => Promise<IteratorResult<import("mediabunny").WrappedAudioBuffer, void>>;
|
|
23
|
+
isDestroyed: () => boolean;
|
|
24
|
+
addQueuedAudioNode: (node: AudioBufferSourceNode, timestamp: number, buffer: AudioBuffer) => void;
|
|
25
|
+
removeQueuedAudioNode: (node: AudioBufferSourceNode) => void;
|
|
26
|
+
getAndClearAudioChunksForAfterResuming: () => {
|
|
27
|
+
buffer: AudioBuffer;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
}[];
|
|
30
|
+
getQueuedPeriod: () => {
|
|
31
|
+
from: number;
|
|
32
|
+
until: number;
|
|
33
|
+
} | null;
|
|
34
|
+
tryToSatisfySeek: (time: number, allowWait: import("../audio/allow-wait").AllowWait | null, onBufferScheduled: (buffer: import("mediabunny").WrappedAudioBuffer) => void) => Promise<{
|
|
35
|
+
type: "not-satisfied";
|
|
36
|
+
reason: string;
|
|
37
|
+
} | {
|
|
38
|
+
type: "ended";
|
|
39
|
+
} | {
|
|
40
|
+
type: "satisfied";
|
|
41
|
+
}>;
|
|
42
|
+
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number) => void;
|
|
43
|
+
moveQueuedChunksToPauseQueue: () => void;
|
|
44
|
+
getNumberOfChunksAfterResuming: () => number;
|
|
45
|
+
} | null;
|
|
46
|
+
destroyIterator: () => void;
|
|
47
|
+
seek: ({ newTime, nonce, fps, playbackRate, getIsPlaying, scheduleAudioNode, bufferState, }: {
|
|
48
|
+
newTime: number;
|
|
49
|
+
nonce: import("../nonce-manager").Nonce;
|
|
50
|
+
fps: number;
|
|
51
|
+
playbackRate: number;
|
|
52
|
+
getIsPlaying: () => boolean;
|
|
53
|
+
bufferState: import("remotion").UseBufferState;
|
|
54
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => void;
|
|
55
|
+
}) => Promise<void>;
|
|
56
|
+
getAudioIteratorsCreated: () => number;
|
|
57
|
+
setMuted: (newMuted: boolean) => void;
|
|
58
|
+
setVolume: (volume: number) => void;
|
|
59
|
+
scheduleAudioChunk: ({ buffer, mediaTimestamp, playbackRate, scheduleAudioNode, }: {
|
|
60
|
+
buffer: AudioBuffer;
|
|
61
|
+
mediaTimestamp: number;
|
|
62
|
+
playbackRate: number;
|
|
63
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => void;
|
|
64
|
+
}) => void;
|
|
65
|
+
} | null;
|
|
66
|
+
videoIteratorManager: {
|
|
67
|
+
startVideoIterator: (timeToSeek: number, nonce: import("../nonce-manager").Nonce) => Promise<void>;
|
|
68
|
+
getVideoIteratorsCreated: () => number;
|
|
69
|
+
seek: ({ newTime, nonce }: {
|
|
70
|
+
newTime: number;
|
|
71
|
+
nonce: import("../nonce-manager").Nonce;
|
|
72
|
+
}) => Promise<void>;
|
|
73
|
+
destroy: () => void;
|
|
74
|
+
getVideoFrameIterator: () => {
|
|
75
|
+
destroy: () => void;
|
|
76
|
+
getNext: () => Promise<IteratorResult<import("mediabunny").WrappedCanvas, void>>;
|
|
77
|
+
isDestroyed: () => boolean;
|
|
78
|
+
tryToSatisfySeek: (time: number) => Promise<{
|
|
79
|
+
type: "not-satisfied";
|
|
80
|
+
reason: string;
|
|
81
|
+
} | {
|
|
82
|
+
type: "satisfied";
|
|
83
|
+
frame: import("mediabunny").WrappedCanvas;
|
|
84
|
+
}>;
|
|
85
|
+
} | null;
|
|
86
|
+
drawFrame: (frame: import("mediabunny").WrappedCanvas) => void;
|
|
87
|
+
getFramesRendered: () => number;
|
|
88
|
+
} | null;
|
|
11
89
|
}) => void;
|