diff --git a/packages/aac-encoder/src/encode.worker.ts b/packages/aac-encoder/src/encode.worker.ts index 76fea2f..5627280 100644 --- a/packages/aac-encoder/src/encode.worker.ts +++ b/packages/aac-encoder/src/encode.worker.ts @@ -192,3 +192,7 @@ if (parentPort) { } else { self.addEventListener('message', event => onMessage(event.data as { id: number; command: WorkerCommand })); } + +// Prevents the worker for being randomly closed by Firefox +// https://github.com/Vanilagy/mediabunny/issues/435 +setInterval(() => {}, 1000); diff --git a/packages/ac3/src/codec.worker.ts b/packages/ac3/src/codec.worker.ts index 8bfc2fa..e474da1 100644 --- a/packages/ac3/src/codec.worker.ts +++ b/packages/ac3/src/codec.worker.ts @@ -304,3 +304,7 @@ if (parentPort) { } else { self.addEventListener('message', event => onMessage(event.data as { id: number; command: WorkerCommand })); } + +// Prevents the worker for being randomly closed by Firefox +// https://github.com/Vanilagy/mediabunny/issues/435 +setInterval(() => {}, 1000); diff --git a/packages/ac3/src/worker-client.ts b/packages/ac3/src/worker-client.ts index 74a8bab..15c6b8f 100644 --- a/packages/ac3/src/worker-client.ts +++ b/packages/ac3/src/worker-client.ts @@ -46,6 +46,7 @@ export const unrefWorker = async () => { if (worker) { if (worker.unref) { worker.unref(); // If we don't do this, then the Node process never terminates by itself + // Keep the worker around tho } else if (typeof window === 'undefined') { // Non-browser environment without unref - terminate instead worker.terminate(); diff --git a/packages/flac-encoder/src/encode.worker.ts b/packages/flac-encoder/src/encode.worker.ts index fe881d3..cfd6484 100644 --- a/packages/flac-encoder/src/encode.worker.ts +++ b/packages/flac-encoder/src/encode.worker.ts @@ -192,3 +192,7 @@ if (parentPort) { } else { self.addEventListener('message', event => onMessage(event.data as { id: number; command: WorkerCommand })); } + +// Prevents the worker for being randomly closed by Firefox +// https://github.com/Vanilagy/mediabunny/issues/435 +setInterval(() => {}, 1000); diff --git a/packages/mp3-encoder/src/encode.worker.ts b/packages/mp3-encoder/src/encode.worker.ts index ee24db8..715816d 100644 --- a/packages/mp3-encoder/src/encode.worker.ts +++ b/packages/mp3-encoder/src/encode.worker.ts @@ -219,3 +219,7 @@ if (parentPort) { } else { self.addEventListener('message', event => onMessage(event.data as { id: number; command: WorkerCommand })); } + +// Prevents the worker for being randomly closed by Firefox +// https://github.com/Vanilagy/mediabunny/issues/435 +setInterval(() => {}, 1000);