From 1aac50a649549b1add289758f90ffdf7bded103e Mon Sep 17 00:00:00 2001 From: Maya Date: Sun, 1 Mar 2026 12:52:57 +0300 Subject: [PATCH] feat: codec compatibility object will use later --- src/lib/converters/mediabunny.svelte.ts | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/lib/converters/mediabunny.svelte.ts b/src/lib/converters/mediabunny.svelte.ts index fb2680d..22c610e 100644 --- a/src/lib/converters/mediabunny.svelte.ts +++ b/src/lib/converters/mediabunny.svelte.ts @@ -23,6 +23,33 @@ import { Converter, FormatInfo, type WorkerStatus } from "./converter.svelte"; import { ToastManager } from "$lib/util/toast.svelte"; import { error, log } from "$lib/util/logger"; +// codec compatibility object, based on docs +// https://mediabunny.dev/guide/supported-formats-and-codecs#compatibility-table +const codecCompatibility = { + video: { + mp4: ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + m4v: ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + f4v: ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + '3gp': ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + '3g2': ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + mkv: ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + webm: ['vp8', 'vp9', 'av1'], + mov: ['avc', 'hevc', 'vp8', 'vp9', 'av1'], + ts: ['avc', 'hevc'], + }, + audio: { + mp4: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'], + m4v: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'], + f4v: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'], + '3gp': ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'], + '3g2': ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f64'], + mkv: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-u8', 'pcm-s16', 'pcm-s24', 'pcm-s32', 'pcm-f32', 'pcm-f64'], + webm: ['opus', 'vorbis'], + mov: ['aac', 'opus', 'mp3', 'vorbis', 'flac', 'ac3', 'eac3', 'pcm-u8', 'pcm-s8', 'pcm-s16', 'pcm-s16be', 'pcm-s24', 'pcm-s24be', 'pcm-s32', 'pcm-s32be', 'pcm-f32', 'pcm-f32be', 'pcm-f64', 'ulaw', 'alaw'], + ts: ['aac', 'mp3', 'ac3', 'eac3'], + }, +} as const; + export class MediabunnyConverter extends Converter { public name = "mediabunny"; public status: WorkerStatus = $state("ready");