feat: add wivrn vulkan video encoder

This commit is contained in:
Sapphire 2024-10-31 14:16:27 -05:00
parent 91f61e5c4a
commit b88fc879d2
No known key found for this signature in database
GPG key ID: 642911AA4025C8CC
2 changed files with 6 additions and 3 deletions

View file

@ -16,6 +16,7 @@ pub enum Encoder {
X264,
Nvenc,
Vaapi,
Vulkan,
}
impl Display for Encoder {
@ -24,17 +25,18 @@ impl Display for Encoder {
Self::X264 => "x264",
Self::Nvenc => "NVEnc",
Self::Vaapi => "VAAPI",
Self::Vulkan => "Vulkan",
})
}
}
impl Encoder {
pub fn iter() -> Iter<'static, Self> {
[Self::X264, Self::Nvenc, Self::Vaapi].iter()
[Self::X264, Self::Nvenc, Self::Vaapi, Self::Vulkan].iter()
}
pub fn as_vec() -> Vec<Self> {
vec![Self::X264, Self::Nvenc, Self::Vaapi]
vec![Self::X264, Self::Nvenc, Self::Vaapi, Self::Vulkan]
}
}
@ -44,6 +46,7 @@ impl From<&Encoder> for u32 {
Encoder::X264 => 0,
Encoder::Nvenc => 1,
Encoder::Vaapi => 2,
Encoder::Vulkan => 3,
}
}
}

View file

@ -57,7 +57,7 @@ impl AsyncFactoryComponent for WivrnEncoderModel {
},
add: encoder_combo = &combo_row(
"Encoder",
Some("x264: CPU based h264 encoding\nNVEnc: Nvidia GPU encoding\nVAAPI: Intel or AMD GPU encoding"),
Some("x264: CPU based h264 encoding\nNVEnc: Nvidia GPU encoding\nVAAPI: Intel or AMD GPU encoding\nVulkan: Vulkan Video encoding (h264 only)"),
&self.encoder_conf.encoder.to_string(),
Encoder::iter().map(Encoder::to_string).collect::<Vec<String>>(),
{