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;