@remotion/media 4.0.431 → 4.0.432
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 +1 -0
- package/dist/audio/audio-preview-iterator.d.ts +16 -9
- package/dist/audio/props.d.ts +1 -0
- package/dist/audio-iterator-manager.d.ts +24 -13
- package/dist/debug-overlay/preview-overlay.d.ts +24 -14
- package/dist/esm/index.mjs +755 -537
- package/dist/make-iterator-with-priming.d.ts +6 -0
- package/dist/media-player.d.ts +12 -7
- package/dist/prewarm-iterator-for-looping.d.ts +3 -2
- package/dist/set-global-time-anchor.d.ts +11 -0
- package/dist/shared-audio-context-for-media-player.d.ts +8 -0
- package/dist/use-common-effects.d.ts +32 -0
- package/dist/video/props.d.ts +1 -0
- package/dist/video/video-for-preview.d.ts +1 -0
- package/package.json +4 -4
- package/dist/audio/allow-wait.d.ts +0 -6
- 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 -42
- 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-network-error.d.ts +0 -6
- package/dist/is-network-error.js +0 -17
- package/dist/is-type-of-error.js +0 -20
- package/dist/looped-frame.js +0 -10
- package/dist/media-player.js +0 -431
- 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 -331
- 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
|
@@ -25,6 +25,7 @@ type InnerAudioProps = {
|
|
|
25
25
|
readonly toneFrequency?: number;
|
|
26
26
|
readonly audioStreamIndex?: number;
|
|
27
27
|
readonly fallbackHtml5AudioProps?: FallbackHtml5AudioProps;
|
|
28
|
+
readonly debugAudioScheduling?: boolean;
|
|
28
29
|
readonly onError?: MediaOnError;
|
|
29
30
|
};
|
|
30
31
|
export declare const AudioForPreview: React.FC<InnerAudioProps>;
|
|
@@ -4,24 +4,31 @@ export type QueuedNode = {
|
|
|
4
4
|
node: AudioBufferSourceNode;
|
|
5
5
|
timestamp: number;
|
|
6
6
|
buffer: AudioBuffer;
|
|
7
|
-
|
|
7
|
+
scheduledTime: number;
|
|
8
|
+
playbackRate: number;
|
|
8
9
|
};
|
|
9
|
-
export declare const makeAudioIterator: (startFromSecond: number, cache: {
|
|
10
|
-
prewarmIteratorForLooping: ({ timeToSeek }: {
|
|
10
|
+
export declare const makeAudioIterator: (startFromSecond: number, maximumTimestamp: number, cache: {
|
|
11
|
+
prewarmIteratorForLooping: ({ timeToSeek, maximumTimestamp, }: {
|
|
11
12
|
timeToSeek: number;
|
|
13
|
+
maximumTimestamp: number;
|
|
12
14
|
}) => void;
|
|
13
|
-
makeIteratorOrUsePrewarmed: (timeToSeek: number) => AsyncGenerator<WrappedAudioBuffer, void, unknown>;
|
|
14
|
-
destroy: () => void;
|
|
15
|
-
}) => {
|
|
15
|
+
makeIteratorOrUsePrewarmed: (timeToSeek: number, maximumTimestamp: number) => AsyncGenerator<WrappedAudioBuffer, void, unknown>;
|
|
16
16
|
destroy: () => void;
|
|
17
|
+
}, debugAudioScheduling: boolean) => {
|
|
18
|
+
destroy: (audioContext: AudioContext) => void;
|
|
17
19
|
getNext: () => Promise<IteratorResult<WrappedAudioBuffer, void>>;
|
|
18
20
|
isDestroyed: () => boolean;
|
|
19
|
-
addQueuedAudioNode: (node
|
|
21
|
+
addQueuedAudioNode: ({ node, timestamp, buffer, scheduledTime, playbackRate, }: {
|
|
22
|
+
node: AudioBufferSourceNode;
|
|
23
|
+
timestamp: number;
|
|
24
|
+
buffer: AudioBuffer;
|
|
25
|
+
scheduledTime: number;
|
|
26
|
+
playbackRate: number;
|
|
27
|
+
}) => void;
|
|
20
28
|
removeQueuedAudioNode: (node: AudioBufferSourceNode) => void;
|
|
21
29
|
getAndClearAudioChunksForAfterResuming: () => {
|
|
22
30
|
buffer: AudioBuffer;
|
|
23
31
|
timestamp: number;
|
|
24
|
-
maxDuration: number | null;
|
|
25
32
|
}[];
|
|
26
33
|
getQueuedPeriod: () => {
|
|
27
34
|
from: number;
|
|
@@ -42,7 +49,7 @@ export declare const makeAudioIterator: (startFromSecond: number, cache: {
|
|
|
42
49
|
} | {
|
|
43
50
|
type: "max-reached";
|
|
44
51
|
}>;
|
|
45
|
-
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number
|
|
52
|
+
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number) => void;
|
|
46
53
|
moveQueuedChunksToPauseQueue: () => void;
|
|
47
54
|
getNumberOfChunksAfterResuming: () => number;
|
|
48
55
|
};
|
package/dist/audio/props.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { InputAudioTrack, WrappedAudioBuffer } from 'mediabunny';
|
|
2
|
+
import { type ScheduleAudioNodeResult } from 'remotion';
|
|
2
3
|
import type { DelayPlaybackIfNotPremounting } from './delay-playback-if-not-premounting';
|
|
3
4
|
import type { Nonce } from './nonce-manager';
|
|
5
|
+
type ScheduleAudioNode = (node: AudioBufferSourceNode, mediaTimestamp: number) => ScheduleAudioNodeResult;
|
|
4
6
|
export declare const audioIteratorManager: ({ audioTrack, delayPlaybackHandleIfNotPremounting, sharedAudioContext, getIsLooping, getEndTime, getStartTime, initialMuted, drawDebugOverlay, }: {
|
|
5
7
|
audioTrack: InputAudioTrack;
|
|
6
8
|
delayPlaybackHandleIfNotPremounting: () => DelayPlaybackIfNotPremounting;
|
|
@@ -11,28 +13,35 @@ export declare const audioIteratorManager: ({ audioTrack, delayPlaybackHandleIfN
|
|
|
11
13
|
initialMuted: boolean;
|
|
12
14
|
drawDebugOverlay: () => void;
|
|
13
15
|
}) => {
|
|
14
|
-
startAudioIterator: ({ nonce, playbackRate, startFromSecond, getIsPlaying, scheduleAudioNode, }: {
|
|
16
|
+
startAudioIterator: ({ nonce, playbackRate, startFromSecond, getIsPlaying, scheduleAudioNode, debugAudioScheduling, }: {
|
|
15
17
|
startFromSecond: number;
|
|
16
18
|
nonce: Nonce;
|
|
17
19
|
playbackRate: number;
|
|
18
20
|
getIsPlaying: () => boolean;
|
|
19
|
-
scheduleAudioNode:
|
|
21
|
+
scheduleAudioNode: ScheduleAudioNode;
|
|
22
|
+
debugAudioScheduling: boolean;
|
|
20
23
|
}) => Promise<void>;
|
|
21
|
-
resumeScheduledAudioChunks: ({ playbackRate, scheduleAudioNode, }: {
|
|
24
|
+
resumeScheduledAudioChunks: ({ playbackRate, scheduleAudioNode, debugAudioScheduling, }: {
|
|
22
25
|
playbackRate: number;
|
|
23
|
-
scheduleAudioNode:
|
|
26
|
+
scheduleAudioNode: ScheduleAudioNode;
|
|
27
|
+
debugAudioScheduling: boolean;
|
|
24
28
|
}) => void;
|
|
25
29
|
pausePlayback: () => void;
|
|
26
30
|
getAudioBufferIterator: () => {
|
|
27
|
-
destroy: () => void;
|
|
31
|
+
destroy: (audioContext: AudioContext) => void;
|
|
28
32
|
getNext: () => Promise<IteratorResult<WrappedAudioBuffer, void>>;
|
|
29
33
|
isDestroyed: () => boolean;
|
|
30
|
-
addQueuedAudioNode: (node
|
|
34
|
+
addQueuedAudioNode: ({ node, timestamp, buffer, scheduledTime, playbackRate, }: {
|
|
35
|
+
node: AudioBufferSourceNode;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
buffer: AudioBuffer;
|
|
38
|
+
scheduledTime: number;
|
|
39
|
+
playbackRate: number;
|
|
40
|
+
}) => void;
|
|
31
41
|
removeQueuedAudioNode: (node: AudioBufferSourceNode) => void;
|
|
32
42
|
getAndClearAudioChunksForAfterResuming: () => {
|
|
33
43
|
buffer: AudioBuffer;
|
|
34
44
|
timestamp: number;
|
|
35
|
-
maxDuration: number | null;
|
|
36
45
|
}[];
|
|
37
46
|
getQueuedPeriod: () => {
|
|
38
47
|
from: number;
|
|
@@ -53,27 +62,29 @@ export declare const audioIteratorManager: ({ audioTrack, delayPlaybackHandleIfN
|
|
|
53
62
|
} | {
|
|
54
63
|
type: "max-reached";
|
|
55
64
|
}>;
|
|
56
|
-
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number
|
|
65
|
+
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number) => void;
|
|
57
66
|
moveQueuedChunksToPauseQueue: () => void;
|
|
58
67
|
getNumberOfChunksAfterResuming: () => number;
|
|
59
68
|
} | null;
|
|
60
69
|
destroyIterator: () => void;
|
|
61
|
-
seek: ({ newTime, nonce, playbackRate, getIsPlaying, scheduleAudioNode, }: {
|
|
70
|
+
seek: ({ newTime, nonce, playbackRate, getIsPlaying, scheduleAudioNode, debugAudioScheduling, }: {
|
|
62
71
|
newTime: number;
|
|
63
72
|
nonce: Nonce;
|
|
64
73
|
playbackRate: number;
|
|
65
74
|
getIsPlaying: () => boolean;
|
|
66
|
-
scheduleAudioNode:
|
|
75
|
+
scheduleAudioNode: ScheduleAudioNode;
|
|
76
|
+
debugAudioScheduling: boolean;
|
|
67
77
|
}) => Promise<void>;
|
|
68
78
|
getAudioIteratorsCreated: () => number;
|
|
69
79
|
setMuted: (newMuted: boolean) => void;
|
|
70
80
|
setVolume: (volume: number) => void;
|
|
71
|
-
scheduleAudioChunk: ({ buffer, mediaTimestamp, playbackRate, scheduleAudioNode,
|
|
81
|
+
scheduleAudioChunk: ({ buffer, mediaTimestamp, playbackRate, scheduleAudioNode, debugAudioScheduling, }: {
|
|
72
82
|
buffer: AudioBuffer;
|
|
73
83
|
mediaTimestamp: number;
|
|
74
84
|
playbackRate: number;
|
|
75
|
-
scheduleAudioNode:
|
|
76
|
-
|
|
85
|
+
scheduleAudioNode: ScheduleAudioNode;
|
|
86
|
+
debugAudioScheduling: boolean;
|
|
77
87
|
}) => void;
|
|
78
88
|
};
|
|
79
89
|
export type AudioIteratorManager = ReturnType<typeof audioIteratorManager>;
|
|
90
|
+
export {};
|
|
@@ -2,31 +2,40 @@ export declare const drawPreviewOverlay: ({ context, audioTime, audioContextStat
|
|
|
2
2
|
context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
|
|
3
3
|
audioTime: number | null;
|
|
4
4
|
audioContextState: AudioContextState | null;
|
|
5
|
-
audioSyncAnchor:
|
|
5
|
+
audioSyncAnchor: {
|
|
6
|
+
value: number;
|
|
7
|
+
} | null;
|
|
6
8
|
playing: boolean;
|
|
7
9
|
audioIteratorManager: {
|
|
8
|
-
startAudioIterator: ({ nonce, playbackRate, startFromSecond, getIsPlaying, scheduleAudioNode, }: {
|
|
10
|
+
startAudioIterator: ({ nonce, playbackRate, startFromSecond, getIsPlaying, scheduleAudioNode, debugAudioScheduling, }: {
|
|
9
11
|
startFromSecond: number;
|
|
10
12
|
nonce: import("../nonce-manager").Nonce;
|
|
11
13
|
playbackRate: number;
|
|
12
14
|
getIsPlaying: () => boolean;
|
|
13
|
-
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number
|
|
15
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => import("remotion").ScheduleAudioNodeResult;
|
|
16
|
+
debugAudioScheduling: boolean;
|
|
14
17
|
}) => Promise<void>;
|
|
15
|
-
resumeScheduledAudioChunks: ({ playbackRate, scheduleAudioNode, }: {
|
|
18
|
+
resumeScheduledAudioChunks: ({ playbackRate, scheduleAudioNode, debugAudioScheduling, }: {
|
|
16
19
|
playbackRate: number;
|
|
17
|
-
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number
|
|
20
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => import("remotion").ScheduleAudioNodeResult;
|
|
21
|
+
debugAudioScheduling: boolean;
|
|
18
22
|
}) => void;
|
|
19
23
|
pausePlayback: () => void;
|
|
20
24
|
getAudioBufferIterator: () => {
|
|
21
|
-
destroy: () => void;
|
|
25
|
+
destroy: (audioContext: AudioContext) => void;
|
|
22
26
|
getNext: () => Promise<IteratorResult<import("mediabunny").WrappedAudioBuffer, void>>;
|
|
23
27
|
isDestroyed: () => boolean;
|
|
24
|
-
addQueuedAudioNode: (node
|
|
28
|
+
addQueuedAudioNode: ({ node, timestamp, buffer, scheduledTime, playbackRate, }: {
|
|
29
|
+
node: AudioBufferSourceNode;
|
|
30
|
+
timestamp: number;
|
|
31
|
+
buffer: AudioBuffer;
|
|
32
|
+
scheduledTime: number;
|
|
33
|
+
playbackRate: number;
|
|
34
|
+
}) => void;
|
|
25
35
|
removeQueuedAudioNode: (node: AudioBufferSourceNode) => void;
|
|
26
36
|
getAndClearAudioChunksForAfterResuming: () => {
|
|
27
37
|
buffer: AudioBuffer;
|
|
28
38
|
timestamp: number;
|
|
29
|
-
maxDuration: number | null;
|
|
30
39
|
}[];
|
|
31
40
|
getQueuedPeriod: () => {
|
|
32
41
|
from: number;
|
|
@@ -47,27 +56,28 @@ export declare const drawPreviewOverlay: ({ context, audioTime, audioContextStat
|
|
|
47
56
|
} | {
|
|
48
57
|
type: "max-reached";
|
|
49
58
|
}>;
|
|
50
|
-
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number
|
|
59
|
+
addChunkForAfterResuming: (buffer: AudioBuffer, timestamp: number) => void;
|
|
51
60
|
moveQueuedChunksToPauseQueue: () => void;
|
|
52
61
|
getNumberOfChunksAfterResuming: () => number;
|
|
53
62
|
} | null;
|
|
54
63
|
destroyIterator: () => void;
|
|
55
|
-
seek: ({ newTime, nonce, playbackRate, getIsPlaying, scheduleAudioNode, }: {
|
|
64
|
+
seek: ({ newTime, nonce, playbackRate, getIsPlaying, scheduleAudioNode, debugAudioScheduling, }: {
|
|
56
65
|
newTime: number;
|
|
57
66
|
nonce: import("../nonce-manager").Nonce;
|
|
58
67
|
playbackRate: number;
|
|
59
68
|
getIsPlaying: () => boolean;
|
|
60
|
-
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number
|
|
69
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => import("remotion").ScheduleAudioNodeResult;
|
|
70
|
+
debugAudioScheduling: boolean;
|
|
61
71
|
}) => Promise<void>;
|
|
62
72
|
getAudioIteratorsCreated: () => number;
|
|
63
73
|
setMuted: (newMuted: boolean) => void;
|
|
64
74
|
setVolume: (volume: number) => void;
|
|
65
|
-
scheduleAudioChunk: ({ buffer, mediaTimestamp, playbackRate, scheduleAudioNode,
|
|
75
|
+
scheduleAudioChunk: ({ buffer, mediaTimestamp, playbackRate, scheduleAudioNode, debugAudioScheduling, }: {
|
|
66
76
|
buffer: AudioBuffer;
|
|
67
77
|
mediaTimestamp: number;
|
|
68
78
|
playbackRate: number;
|
|
69
|
-
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number
|
|
70
|
-
|
|
79
|
+
scheduleAudioNode: (node: AudioBufferSourceNode, mediaTimestamp: number) => import("remotion").ScheduleAudioNodeResult;
|
|
80
|
+
debugAudioScheduling: boolean;
|
|
71
81
|
}) => void;
|
|
72
82
|
} | null;
|
|
73
83
|
videoIteratorManager: {
|