From 9332c95721b9c67b451cc67681b939ddae19872c Mon Sep 17 00:00:00 2001 From: Maya Date: Wed, 11 Feb 2026 09:25:25 +0300 Subject: [PATCH] feat: apng & video to webp support --- src/lib/components/functional/FormatDropdown.svelte | 6 ++++++ src/lib/converters/vertd.svelte.ts | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/components/functional/FormatDropdown.svelte b/src/lib/components/functional/FormatDropdown.svelte index 1f6845b..d2c5b3a 100644 --- a/src/lib/components/functional/FormatDropdown.svelte +++ b/src/lib/components/functional/FormatDropdown.svelte @@ -90,7 +90,13 @@ cat === rootCategory || categories[rootCategory!]?.canConvertTo?.includes(cat), ); + + // handle special cases if (from === ".gif") finalCategories.push("video"); + if (from === ".apng") { + //finalCategories.push("image"); // -- buggy, magick can't convert from or to apng properly + finalCategories = finalCategories.filter((cat) => cat !== "audio"); + } // filter out categories that can't handle large files (due to browser/device limitations) if (file && file.isLarge()) { diff --git a/src/lib/converters/vertd.svelte.ts b/src/lib/converters/vertd.svelte.ts index 4003ac9..321fe8d 100644 --- a/src/lib/converters/vertd.svelte.ts +++ b/src/lib/converters/vertd.svelte.ts @@ -264,6 +264,8 @@ export class VertdConverter extends Converter { new FormatInfo("wmv", true, true), new FormatInfo("mov", true, true), new FormatInfo("gif", true, true), + new FormatInfo("apng", true, true), + new FormatInfo("webp", false, true), // for some odd reasons, ffmpeg only supports encoding webp and not decoding -- https://trac.ffmpeg.org/ticket/4907 new FormatInfo("mts", true, true), new FormatInfo("ts", true, true), new FormatInfo("m2ts", true, true), @@ -379,7 +381,9 @@ export class VertdConverter extends Converter { ws.onopen = () => { const speed = Settings.instance.settings.vertdSpeed; const keepMetadata = Settings.instance.settings.metadata; - this.log(`opened ws connection to vertd for file ${input.name}`); + this.log( + `opened ws connection to vertd for file ${input.name}`, + ); const msg: StartJobMessage = { type: "startJob", data: {