add flac encoding format

This commit is contained in:
2021-01-15 21:18:27 +01:00
parent 755f5dbd1d
commit 183e34c217
2 changed files with 18 additions and 0 deletions

View File

@@ -32,6 +32,12 @@ pub enum Transcode {
bitrate_type: BitrateType, bitrate_type: BitrateType,
}, },
#[serde(rename = "flac")]
Flac {
#[serde(default = "default_flac_compression")]
compression: u8,
},
#[serde(rename = "mp3")] #[serde(rename = "mp3")]
Mp3 { Mp3 {
#[serde(default = "default_mp3_bitrate")] #[serde(default = "default_mp3_bitrate")]
@@ -46,6 +52,7 @@ impl Transcode {
pub fn extension(&self) -> &'static str { pub fn extension(&self) -> &'static str {
match self { match self {
Transcode::Opus { .. } => "opus", Transcode::Opus { .. } => "opus",
Transcode::Flac { .. } => "flac",
Transcode::Mp3 { .. } => "mp3", Transcode::Mp3 { .. } => "mp3",
} }
} }
@@ -55,6 +62,10 @@ fn default_opus_bitrate() -> u16 {
160 160
} }
fn default_flac_compression() -> u8 {
5
}
fn bitrate_type_vbr() -> BitrateType { fn bitrate_type_vbr() -> BitrateType {
BitrateType::Vbr BitrateType::Vbr
} }

View File

@@ -352,6 +352,13 @@ async fn transcode(
dest_elems.push(encoder); dest_elems.push(encoder);
dest_elems.push(gmake("oggmux")?); 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 { config::Transcode::Mp3 {
bitrate, bitrate,
bitrate_type, bitrate_type,