From b9d8e20b6bff6b51f73106b688bd6e5d98e08215 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 21 Apr 2025 20:36:34 +0200 Subject: new transcoding args system --- common/src/config.rs | 35 ++++++++++++++++------------------- common/src/stream.rs | 2 +- 2 files changed, 17 insertions(+), 20 deletions(-) (limited to 'common') diff --git a/common/src/config.rs b/common/src/config.rs index 522fa0f..4ec43eb 100644 --- a/common/src/config.rs +++ b/common/src/config.rs @@ -29,28 +29,25 @@ pub struct GlobalConfig { #[serde(default)] pub default_permission_set: PermissionSet, #[serde(default)] - pub encoders: EncoderArgs, + pub transcoder: TranscoderConfig, } +#[rustfmt::skip] #[derive(Debug, Deserialize, Serialize, Default)] -pub struct EncoderArgs { - pub avc: Option, - pub hevc: Option, - pub vp8: Option, - pub vp9: Option, - pub av1: Option, - pub generic: Option, -} - -#[derive(Debug, Deserialize, Serialize, Clone, Copy)] -#[serde(rename_all = "snake_case")] -pub enum EncoderClass { - Aom, - Svt, - X26n, - Vpx, - Vaapi, - Rkmpp, +pub struct TranscoderConfig { + #[serde(default)] pub offer_avc: bool, + #[serde(default)] pub offer_hevc: bool, + #[serde(default)] pub offer_vp8: bool, + #[serde(default)] pub offer_vp9: bool, + #[serde(default)] pub offer_av1: bool, + #[serde(default)] pub enable_rkmpp: bool, + #[serde(default)] pub enable_rkrga: bool, + #[serde(default)] pub use_svtav1: bool, + #[serde(default)] pub use_rav1e: bool, + pub svtav1_preset: Option, // 0..=13, high is fast + pub rav1e_preset: Option, // 0..=10 + pub aom_preset: Option, // 0..=8, high is fast + pub x264_preset: Option, } #[derive(Serialize, Deserialize, Debug, Default)] diff --git a/common/src/stream.rs b/common/src/stream.rs index 79cb380..81dd298 100644 --- a/common/src/stream.rs +++ b/common/src/stream.rs @@ -82,7 +82,7 @@ pub struct StreamTrackInfo { pub formats: Vec, } -#[derive(Debug, Copy, Clone, Deserialize, Serialize)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum TrackKind { Video, -- cgit v1.2.3-70-g09d2