@remotion/media 4.0.506 → 4.0.508

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.
@@ -7,5 +7,6 @@ export declare const makeAudioCache: () => {
7
7
  getOldestTimestamp: () => number;
8
8
  getNewestTimestamp: () => number | null;
9
9
  getOpenTimestamps: () => number[];
10
+ getTotalSize: () => number;
10
11
  };
11
12
  export type AudioCache = ReturnType<typeof makeAudioCache>;
@@ -1,5 +1,10 @@
1
1
  import type { AudioSampleSink } from 'mediabunny';
2
- export declare const makeAudioManager: () => {
2
+ export declare const makeAudioManager: ({ getTotalCacheStats, }: {
3
+ getTotalCacheStats: () => {
4
+ count: number;
5
+ totalSize: number;
6
+ };
7
+ }) => {
3
8
  getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
4
9
  src: string;
5
10
  timeInSeconds: number;
@@ -51,4 +56,6 @@ export declare const makeAudioManager: () => {
51
56
  } | null;
52
57
  logOpenFrames: () => void;
53
58
  deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
59
+ clearAll: () => void;
60
+ dispose: () => void;
54
61
  };
@@ -1,4 +1,5 @@
1
1
  import { type LogLevel } from 'remotion';
2
+ import type { MediaCache } from '../caches';
2
3
  import type { PcmS16AudioData } from '../convert-audiodata/convert-audiodata';
3
4
  import type { MediaRequestInit } from '../request-init';
4
5
  type ExtractAudioParams = {
@@ -15,6 +16,7 @@ type ExtractAudioParams = {
15
16
  maxCacheSize: number;
16
17
  credentials: RequestCredentials | undefined;
17
18
  requestInit?: MediaRequestInit;
19
+ mediaCache: MediaCache;
18
20
  };
19
21
  export declare const extractAudio: (params: ExtractAudioParams) => Promise<"cannot-decode" | "network-error" | "unknown-container-format" | {
20
22
  data: PcmS16AudioData | null;
package/dist/caches.d.ts CHANGED
@@ -1,4 +1,194 @@
1
+ import { getMaxVideoCacheSize } from './max-cache-size';
1
2
  export declare const getSafeWindowOfMonotonicity: (fps: number) => number;
3
+ export declare const makeMediaCache: () => {
4
+ sinkManager: {
5
+ getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{
6
+ getVideo: () => Promise<import("./video-extraction/get-frames-since-keyframe").VideoSinkResult>;
7
+ getAudio: (index: number | null) => Promise<import("./video-extraction/get-frames-since-keyframe").AudioSinkResult>;
8
+ actualMatroskaTimestamps: {
9
+ observeTimestamp: (startTime: number) => void;
10
+ getRealTimestamp: (observedTimestamp: number) => number | null;
11
+ };
12
+ isMatroska: boolean;
13
+ getDuration: () => Promise<number>;
14
+ }>;
15
+ dispose: () => void;
16
+ };
17
+ keyframeManager: {
18
+ requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: {
19
+ timestamp: number;
20
+ videoSampleSink: import("mediabunny").VideoSampleSink;
21
+ src: string;
22
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
23
+ maxCacheSize: number;
24
+ fps: number;
25
+ }) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank | null>;
26
+ getCacheStats: () => {
27
+ count: number;
28
+ totalSize: number;
29
+ };
30
+ clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
31
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
32
+ };
33
+ audioManager: {
34
+ getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
35
+ src: string;
36
+ timeInSeconds: number;
37
+ audioSampleSink: import("mediabunny").AudioSampleSink;
38
+ isMatroska: boolean;
39
+ actualMatroskaTimestamps: {
40
+ observeTimestamp: (startTime: number) => void;
41
+ getRealTimestamp: (observedTimestamp: number) => number | null;
42
+ };
43
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
44
+ maxCacheSize: number;
45
+ }) => Promise<{
46
+ src: string;
47
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
48
+ waitForCompletion: () => Promise<boolean>;
49
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
50
+ logOpenFrames: () => void;
51
+ getCacheStats: () => {
52
+ count: number;
53
+ size: number;
54
+ };
55
+ getLastUsed: () => number;
56
+ prepareForDeletion: () => void;
57
+ startTimestamp: number;
58
+ clearBeforeThreshold: (threshold: number) => void;
59
+ getOldestTimestamp: () => number;
60
+ getNewestTimestamp: () => number | null;
61
+ }>;
62
+ getCacheStats: () => {
63
+ count: number;
64
+ totalSize: number;
65
+ };
66
+ getIteratorMostInThePast: () => {
67
+ src: string;
68
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
69
+ waitForCompletion: () => Promise<boolean>;
70
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
71
+ logOpenFrames: () => void;
72
+ getCacheStats: () => {
73
+ count: number;
74
+ size: number;
75
+ };
76
+ getLastUsed: () => number;
77
+ prepareForDeletion: () => void;
78
+ startTimestamp: number;
79
+ clearBeforeThreshold: (threshold: number) => void;
80
+ getOldestTimestamp: () => number;
81
+ getNewestTimestamp: () => number | null;
82
+ } | null;
83
+ logOpenFrames: () => void;
84
+ deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
85
+ clearAll: () => void;
86
+ dispose: () => void;
87
+ };
88
+ getTotalCacheStats: () => {
89
+ count: number;
90
+ totalSize: number;
91
+ };
92
+ isDisposed: () => boolean;
93
+ queueFrameExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
94
+ queueAudioExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
95
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
96
+ };
97
+ export type MediaCache = ReturnType<typeof makeMediaCache>;
98
+ export declare const globalMediaCache: {
99
+ sinkManager: {
100
+ getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{
101
+ getVideo: () => Promise<import("./video-extraction/get-frames-since-keyframe").VideoSinkResult>;
102
+ getAudio: (index: number | null) => Promise<import("./video-extraction/get-frames-since-keyframe").AudioSinkResult>;
103
+ actualMatroskaTimestamps: {
104
+ observeTimestamp: (startTime: number) => void;
105
+ getRealTimestamp: (observedTimestamp: number) => number | null;
106
+ };
107
+ isMatroska: boolean;
108
+ getDuration: () => Promise<number>;
109
+ }>;
110
+ dispose: () => void;
111
+ };
112
+ keyframeManager: {
113
+ requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: {
114
+ timestamp: number;
115
+ videoSampleSink: import("mediabunny").VideoSampleSink;
116
+ src: string;
117
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
118
+ maxCacheSize: number;
119
+ fps: number;
120
+ }) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank | null>;
121
+ getCacheStats: () => {
122
+ count: number;
123
+ totalSize: number;
124
+ };
125
+ clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
126
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
127
+ };
128
+ audioManager: {
129
+ getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
130
+ src: string;
131
+ timeInSeconds: number;
132
+ audioSampleSink: import("mediabunny").AudioSampleSink;
133
+ isMatroska: boolean;
134
+ actualMatroskaTimestamps: {
135
+ observeTimestamp: (startTime: number) => void;
136
+ getRealTimestamp: (observedTimestamp: number) => number | null;
137
+ };
138
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
139
+ maxCacheSize: number;
140
+ }) => Promise<{
141
+ src: string;
142
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
143
+ waitForCompletion: () => Promise<boolean>;
144
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
145
+ logOpenFrames: () => void;
146
+ getCacheStats: () => {
147
+ count: number;
148
+ size: number;
149
+ };
150
+ getLastUsed: () => number;
151
+ prepareForDeletion: () => void;
152
+ startTimestamp: number;
153
+ clearBeforeThreshold: (threshold: number) => void;
154
+ getOldestTimestamp: () => number;
155
+ getNewestTimestamp: () => number | null;
156
+ }>;
157
+ getCacheStats: () => {
158
+ count: number;
159
+ totalSize: number;
160
+ };
161
+ getIteratorMostInThePast: () => {
162
+ src: string;
163
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
164
+ waitForCompletion: () => Promise<boolean>;
165
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
166
+ logOpenFrames: () => void;
167
+ getCacheStats: () => {
168
+ count: number;
169
+ size: number;
170
+ };
171
+ getLastUsed: () => number;
172
+ prepareForDeletion: () => void;
173
+ startTimestamp: number;
174
+ clearBeforeThreshold: (threshold: number) => void;
175
+ getOldestTimestamp: () => number;
176
+ getNewestTimestamp: () => number | null;
177
+ } | null;
178
+ logOpenFrames: () => void;
179
+ deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
180
+ clearAll: () => void;
181
+ dispose: () => void;
182
+ };
183
+ getTotalCacheStats: () => {
184
+ count: number;
185
+ totalSize: number;
186
+ };
187
+ isDisposed: () => boolean;
188
+ queueFrameExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
189
+ queueAudioExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
190
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
191
+ };
2
192
  export declare const keyframeManager: {
3
193
  requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: {
4
194
  timestamp: number;
@@ -7,14 +197,14 @@ export declare const keyframeManager: {
7
197
  logLevel: "error" | "info" | "trace" | "verbose" | "warn";
8
198
  maxCacheSize: number;
9
199
  fps: number;
10
- }) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank>;
200
+ }) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank | null>;
11
201
  getCacheStats: () => {
12
202
  count: number;
13
203
  totalSize: number;
14
204
  };
15
205
  clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
16
- };
17
- export declare const audioManager: {
206
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
207
+ }, audioManager: {
18
208
  getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
19
209
  src: string;
20
210
  timeInSeconds: number;
@@ -66,10 +256,105 @@ export declare const audioManager: {
66
256
  } | null;
67
257
  logOpenFrames: () => void;
68
258
  deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
69
- };
70
- export declare const getTotalCacheStats: () => {
259
+ clearAll: () => void;
260
+ dispose: () => void;
261
+ }, getTotalCacheStats: () => {
71
262
  count: number;
72
263
  totalSize: number;
73
264
  };
74
- export declare const getMaxVideoCacheSize: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number;
265
+ export declare const useRenderMediaCache: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => {
266
+ sinkManager: {
267
+ getSink: (src: string, logLevel: "error" | "info" | "trace" | "verbose" | "warn", credentials: RequestCredentials | undefined, requestInit: import("./request-init").MediaRequestInit | undefined) => Promise<{
268
+ getVideo: () => Promise<import("./video-extraction/get-frames-since-keyframe").VideoSinkResult>;
269
+ getAudio: (index: number | null) => Promise<import("./video-extraction/get-frames-since-keyframe").AudioSinkResult>;
270
+ actualMatroskaTimestamps: {
271
+ observeTimestamp: (startTime: number) => void;
272
+ getRealTimestamp: (observedTimestamp: number) => number | null;
273
+ };
274
+ isMatroska: boolean;
275
+ getDuration: () => Promise<number>;
276
+ }>;
277
+ dispose: () => void;
278
+ };
279
+ keyframeManager: {
280
+ requestKeyframeBank: ({ timestamp, videoSampleSink, src, logLevel, maxCacheSize, fps, }: {
281
+ timestamp: number;
282
+ videoSampleSink: import("mediabunny").VideoSampleSink;
283
+ src: string;
284
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
285
+ maxCacheSize: number;
286
+ fps: number;
287
+ }) => Promise<import("./video-extraction/keyframe-bank").KeyframeBank | null>;
288
+ getCacheStats: () => {
289
+ count: number;
290
+ totalSize: number;
291
+ };
292
+ clearAll: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
293
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
294
+ };
295
+ audioManager: {
296
+ getIterator: ({ src, timeInSeconds, audioSampleSink, isMatroska, actualMatroskaTimestamps, logLevel, maxCacheSize, }: {
297
+ src: string;
298
+ timeInSeconds: number;
299
+ audioSampleSink: import("mediabunny").AudioSampleSink;
300
+ isMatroska: boolean;
301
+ actualMatroskaTimestamps: {
302
+ observeTimestamp: (startTime: number) => void;
303
+ getRealTimestamp: (observedTimestamp: number) => number | null;
304
+ };
305
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
306
+ maxCacheSize: number;
307
+ }) => Promise<{
308
+ src: string;
309
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
310
+ waitForCompletion: () => Promise<boolean>;
311
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
312
+ logOpenFrames: () => void;
313
+ getCacheStats: () => {
314
+ count: number;
315
+ size: number;
316
+ };
317
+ getLastUsed: () => number;
318
+ prepareForDeletion: () => void;
319
+ startTimestamp: number;
320
+ clearBeforeThreshold: (threshold: number) => void;
321
+ getOldestTimestamp: () => number;
322
+ getNewestTimestamp: () => number | null;
323
+ }>;
324
+ getCacheStats: () => {
325
+ count: number;
326
+ totalSize: number;
327
+ };
328
+ getIteratorMostInThePast: () => {
329
+ src: string;
330
+ getSamples: (ts: number, dur: number) => Promise<import("mediabunny").AudioSample[]>;
331
+ waitForCompletion: () => Promise<boolean>;
332
+ canSatisfyRequestedTime: (timestamp: number) => boolean;
333
+ logOpenFrames: () => void;
334
+ getCacheStats: () => {
335
+ count: number;
336
+ size: number;
337
+ };
338
+ getLastUsed: () => number;
339
+ prepareForDeletion: () => void;
340
+ startTimestamp: number;
341
+ clearBeforeThreshold: (threshold: number) => void;
342
+ getOldestTimestamp: () => number;
343
+ getNewestTimestamp: () => number | null;
344
+ } | null;
345
+ logOpenFrames: () => void;
346
+ deleteDuplicateIterators: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
347
+ clearAll: () => void;
348
+ dispose: () => void;
349
+ };
350
+ getTotalCacheStats: () => {
351
+ count: number;
352
+ totalSize: number;
353
+ };
354
+ isDisposed: () => boolean;
355
+ queueFrameExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
356
+ queueAudioExtraction: <T>(extract: () => Promise<T>) => Promise<T>;
357
+ dispose: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => void;
358
+ };
359
+ export { getMaxVideoCacheSize };
75
360
  export declare const useMaxMediaCacheSize: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number;