From 564fc652971db9bb57c666eb419b95dfcc452d08 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 12 Feb 2025 13:19:13 +0600 Subject: [PATCH] web/workers/remux: init libav only once, terminate after usage --- web/src/lib/workers/remux.ts | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/web/src/lib/workers/remux.ts b/web/src/lib/workers/remux.ts index 9f2dc60e..281b2594 100644 --- a/web/src/lib/workers/remux.ts +++ b/web/src/lib/workers/remux.ts @@ -11,26 +11,24 @@ const error = (code: string) => { }) } -const ff = new LibAVWrapper((progress) => { - self.postMessage({ - cobaltRemuxWorker: { - progress: { - durationProcessed: progress.out_time_sec, - speed: progress.speed, - size: progress.total_size, - currentFrame: progress.frame, - fps: progress.fps, - } - } - }) -}); - -ff.init(); - const remux = async (files: CobaltFileReference[], args: string[], output: FileInfo) => { if (!(files && output && args)) return; - await ff.init(); + const ff = new LibAVWrapper((progress) => { + self.postMessage({ + cobaltRemuxWorker: { + progress: { + durationProcessed: progress.out_time_sec, + speed: progress.speed, + size: progress.total_size, + currentFrame: progress.frame, + fps: progress.fps, + } + } + }) + }); + + ff.init(); try { // probing just the first file in files array (usually audio) for duration progress @@ -84,6 +82,8 @@ const remux = async (files: CobaltFileReference[], args: string[], output: FileI return error("incorrect input or output"); } + await ff.terminate(); + self.postMessage({ cobaltRemuxWorker: { render