From e678bd25fc53ea2076555806ad0d63578dc69be0 Mon Sep 17 00:00:00 2001 From: dumbmoron <log@riseup.net> Date: Sat, 17 Aug 2024 13:45:58 +0000 Subject: [PATCH] web/lib/libav: clean up extension handling --- web/src/lib/libav.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/web/src/lib/libav.ts b/web/src/lib/libav.ts index 819ceaaf..6ff172ad 100644 --- a/web/src/lib/libav.ts +++ b/web/src/lib/libav.ts @@ -62,19 +62,26 @@ export default class LibAVWrapper { return JSON.parse(text) as FfprobeData; } + static getExtensionFromType(blob: Blob) { + const extensions = mime.getAllExtensions(blob.type); + const overrides = ['mp3', 'mov']; + + if (!extensions) + return; + + for (const override of overrides) + if (extensions?.has(override)) + return override; + + return [...extensions][0]; + } + async render({ blob, output, args }: RenderParams) { if (!this.libav) throw new Error("LibAV wasn't initialized"); const libav = await this.libav; const inputKind = blob.type.split("/")[0]; - let inputExtension; + const inputExtension = LibAVWrapper.getExtensionFromType(blob); - const extensions = mime.getAllExtensions(blob.type); - if (extensions?.has('mp3')) { - inputExtension = 'mp3'; - } else if (extensions) { - inputExtension = [...extensions][0]; - } - console.log(extensions, blob); if (inputKind !== "video" && inputKind !== "audio") return; if (!inputExtension) return;