From 4da95e0a2be592f45f1f6bd81f27bf84f038b8cd Mon Sep 17 00:00:00 2001 From: wukko Date: Thu, 19 Jun 2025 23:58:30 +0600 Subject: [PATCH] web/libav: disable wasm multithreading on old ios --- web/src/lib/libav.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/web/src/lib/libav.ts b/web/src/lib/libav.ts index e888926a..64aa59b8 100644 --- a/web/src/lib/libav.ts +++ b/web/src/lib/libav.ts @@ -5,6 +5,12 @@ import EncodeLibAV from "@imput/libav.js-encode-cli"; import type { FfprobeData } from "fluent-ffmpeg"; import type { FFmpegProgressCallback, FFmpegProgressEvent, FFmpegProgressStatus, RenderParams } from "$lib/types/libav"; +const ua = navigator.userAgent.toLowerCase(); +const iPhone = ua.includes("iphone os"); +const iPad = !iPhone && ua.includes("mac os") && navigator.maxTouchPoints > 0; +const iOS = iPhone || iPad; +const modernIOS = iOS && Number(ua.match(/iphone os (\d+)_/)?.[1]) >= 18; + export default class LibAVWrapper { libav: Promise | null; concurrency: number; @@ -32,7 +38,7 @@ export default class LibAVWrapper { this.libav = constructor({ ...options, variant: undefined, - yesthreads: true, + yesthreads: !iOS || modernIOS, base: '/_libav' }); }