From 183e34c2178144907df94f3e57a3d97f19dadfe5 Mon Sep 17 00:00:00 2001 From: Thomas Heck Date: Fri, 15 Jan 2021 21:18:27 +0100 Subject: [PATCH] add flac encoding format --- src/config.rs | 11 +++++++++++ src/main.rs | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/src/config.rs b/src/config.rs index e57ad47..1699318 100644 --- a/src/config.rs +++ b/src/config.rs @@ -32,6 +32,12 @@ pub enum Transcode { bitrate_type: BitrateType, }, + #[serde(rename = "flac")] + Flac { + #[serde(default = "default_flac_compression")] + compression: u8, + }, + #[serde(rename = "mp3")] Mp3 { #[serde(default = "default_mp3_bitrate")] @@ -46,6 +52,7 @@ impl Transcode { pub fn extension(&self) -> &'static str { match self { Transcode::Opus { .. } => "opus", + Transcode::Flac { .. } => "flac", Transcode::Mp3 { .. } => "mp3", } } @@ -55,6 +62,10 @@ fn default_opus_bitrate() -> u16 { 160 } +fn default_flac_compression() -> u8 { + 5 +} + fn bitrate_type_vbr() -> BitrateType { BitrateType::Vbr } diff --git a/src/main.rs b/src/main.rs index 250252f..d6542b9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -352,6 +352,13 @@ async fn transcode( dest_elems.push(encoder); dest_elems.push(gmake("oggmux")?); } + + config::Transcode::Flac { compression } => { + let encoder: Element = gmake("flacenc")?; + encoder.set_property_from_str("quality", &compression.to_string()); + dest_elems.push(encoder); + } + config::Transcode::Mp3 { bitrate, bitrate_type,