MCPcopy
hub / github.com/midrender/revideo / run

Method run

packages/core/src/app/Renderer.ts:223–351  ·  view source on GitHub ↗
(
    settings: RendererSettings,
    signal: AbortSignal,
  )

Source from the content-addressed store, hash-verified

221 }
222
223 private async run(
224 settings: RendererSettings,
225 signal: AbortSignal,
226 ): Promise<RendererResult> {
227 // Select exporter
228 // TODO(refactor): check if i want to keep it this way
229 const exporters: ExporterClass[] = [
230 FFmpegExporterClient,
231 ImageExporter,
232 WasmExporter,
233 ];
234
235 const exporterClass = exporters.find(
236 exporter => exporter.id === settings.exporter.name,
237 );
238
239 if (!exporterClass) {
240 this.project.logger.error(
241 `Could not find the "${settings.exporter.name}" exporter.`,
242 );
243 return RendererResult.Error;
244 }
245
246 // Instantiate exporter
247 this.exporter = await exporterClass.create(this.project, settings);
248 if (this.exporter.configuration) {
249 settings = {
250 ...settings,
251 ...((await this.exporter.configuration()) ?? {}),
252 };
253 }
254 this.stage.configure(settings);
255 this.playback.fps = settings.fps;
256 this.playback.state = PlaybackState.Rendering;
257 const from = this.status.secondsToFrames(settings.range[0]);
258 this.frame.current = from;
259
260 // Reset
261 await this.reloadScenes(settings);
262 await this.playback.recalculate();
263 await this.playback.reset();
264
265 const to = Math.min(
266 this.playback.duration,
267 this.status.secondsToFrames(settings.range[1]),
268 );
269 await this.playback.seek(from);
270 if (signal.aborted) return RendererResult.Aborted;
271
272 await this.exporter.start?.();
273 let lastRefresh = performance.now();
274 let result = RendererResult.Success;
275
276 const mediaByFrames = await this.getMediaByFrames(settings);
277
278 // Start audio export
279 let generateAudioPromise;
280 if (this.exporter && this.exporter.generateAudio) {

Callers 1

renderMethod · 0.95

Calls 15

reloadScenesMethod · 0.95
getMediaByFramesMethod · 0.95
exportFrameMethod · 0.95
clampRemapFunction · 0.90
configurationMethod · 0.80
secondsToFramesMethod · 0.80
seekMethod · 0.80
reportProgressMethod · 0.80
progressMethod · 0.80
createMethod · 0.65
recalculateMethod · 0.65
resetMethod · 0.65

Tested by

no test coverage detected