From 36b7c3cbc6fe026f3befd59ffce39c804822cfad Mon Sep 17 00:00:00 2001 From: murgatt <12082276+murgatt@users.noreply.github.com> Date: Mon, 5 Feb 2024 20:21:20 +0100 Subject: [PATCH] feat(v2): add opus codec support --- schema/conversionSettings.schema.ts | 15 +++++++++++++-- .../ConversionSettingsForm/BitrateSelect.tsx | 1 + .../ConversionSettingsForm/ChannelsSelect.tsx | 1 + .../ConversionSettingsForm/SampleRateSelect.tsx | 1 + src/i18n/locales/en.json | 6 +++++- src/i18n/locales/fr.json | 6 +++++- 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/schema/conversionSettings.schema.ts b/schema/conversionSettings.schema.ts index 3a9356a..6c60f55 100644 --- a/schema/conversionSettings.schema.ts +++ b/schema/conversionSettings.schema.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; -export const codecSchema = z.enum(['default', 'aac', 'ac3', 'eac3']); +export const codecSchema = z.enum(['default', 'aac', 'ac3', 'eac3', 'libopus']); export type Codec = z.infer; export const bitrateSchema = z.enum([ @@ -22,7 +22,18 @@ export const bitrateSchema = z.enum([ ]); export type Bitrate = z.infer; -export const sampleRateSchema = z.enum(['default', '8000', '22050', '32000', '44100', '48000', '96000']); +export const sampleRateSchema = z.enum([ + 'default', + '8000', + '12000', + '16000', + '22050', + '24000', + '32000', + '44100', + '48000', + '96000', +]); export type SampleRate = z.infer; export const channelsSchema = z.enum(['default', '1', '2', '3', '4', '5', '6', '7', '8']); diff --git a/src/components/ConversionSettingsForm/BitrateSelect.tsx b/src/components/ConversionSettingsForm/BitrateSelect.tsx index e3a96c3..b03d26e 100644 --- a/src/components/ConversionSettingsForm/BitrateSelect.tsx +++ b/src/components/ConversionSettingsForm/BitrateSelect.tsx @@ -16,6 +16,7 @@ const bitrateByCodec: Record = { aac: ['default', '32k', '64k', '96k', '128k', '192k', '256k', '320k'], ac3: ['default', '128k', '192k', '256k', '320k', '384k', '448k', '512k', '640k'], eac3: ['default', '192k', '320k', '448k', '640k', '1024k', '2048k', '4096k'], + libopus: ['default', '32k', '64k', '96k', '128k', '192k', '256k', '320k', '448k'], }; export const BitrateSelect = ({ codec, isDisabled, value, onChange }: BitrateSelectProps) => { diff --git a/src/components/ConversionSettingsForm/ChannelsSelect.tsx b/src/components/ConversionSettingsForm/ChannelsSelect.tsx index e3cfc5a..51247bf 100644 --- a/src/components/ConversionSettingsForm/ChannelsSelect.tsx +++ b/src/components/ConversionSettingsForm/ChannelsSelect.tsx @@ -16,6 +16,7 @@ const channelsByCodec: Record = { aac: ['default', '1', '2', '3', '4', '5', '6', '7', '8'], ac3: ['default', '1', '2', '3', '4', '5', '6'], eac3: ['default', '1', '2', '3', '4', '5', '6'], + libopus: ['default', '1', '2', '3', '4', '5', '6', '7', '8'], }; export const ChannelsSelect = ({ isDisabled, codec, onChange, value }: ChannelsSelectProps) => { diff --git a/src/components/ConversionSettingsForm/SampleRateSelect.tsx b/src/components/ConversionSettingsForm/SampleRateSelect.tsx index 0c49e13..c0c2c56 100644 --- a/src/components/ConversionSettingsForm/SampleRateSelect.tsx +++ b/src/components/ConversionSettingsForm/SampleRateSelect.tsx @@ -16,6 +16,7 @@ const sampleRateByCodec: Record = { aac: ['default', '8000', '22050', '32000', '44100', '48000', '96000'], ac3: ['default', '8000', '22050', '32000', '44100', '48000'], eac3: ['default', '32000', '44100', '48000'], + libopus: ['default', '8000', '12000', '16000', '24000', '48000'], }; export const SampleRateSelect = ({ codec, isDisabled, onChange, value }: SampleRateSelectProps) => { diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 3bce378..d613da9 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -59,7 +59,8 @@ "default": "No re-encoding", "aac": "AAC", "ac3": "AC3", - "eac3": "EAC3" + "eac3": "EAC3", + "libopus": "Opus" } }, "sampleRate": { @@ -67,7 +68,10 @@ "values": { "default": "Same as source", "8000": "8000 Hz", + "12000": "12000 Hz", + "16000": "16000 Hz", "22050": "22050 Hz", + "24000": "24000 Hz", "32000": "32000 Hz", "44100": "44100 Hz", "48000": "48000 Hz", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index ac73b09..b530588 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -59,7 +59,8 @@ "default": "Pas de réencodage", "aac": "AAC", "ac3": "AC3", - "eac3": "EAC3" + "eac3": "EAC3", + "libopus": "Opus" } }, "sampleRate": { @@ -67,7 +68,10 @@ "values": { "default": "Identique à la source", "8000": "8000 Hz", + "12000": "12000 Hz", + "16000": "16000 Hz", "22050": "22050 Hz", + "24000": "24000 Hz", "32000": "32000 Hz", "44100": "44100 Hz", "48000": "48000 Hz",