feat: add wivrn vulkan video encoder

This commit is contained in:
Sapphire 2024-10-31 14:16:27 -05:00
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, X264,
Nvenc, Nvenc,
Vaapi, Vaapi,
Vulkan,
} }
impl Display for Encoder { impl Display for Encoder {
@ -24,17 +25,18 @@ impl Display for Encoder {
Self::X264 => "x264", Self::X264 => "x264",
Self::Nvenc => "NVEnc", Self::Nvenc => "NVEnc",
Self::Vaapi => "VAAPI", Self::Vaapi => "VAAPI",
Self::Vulkan => "Vulkan",
}) })
} }
} }
impl Encoder { impl Encoder {
pub fn iter() -> Iter<'static, Self> { 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> { 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::X264 => 0,
Encoder::Nvenc => 1, Encoder::Nvenc => 1,
Encoder::Vaapi => 2, Encoder::Vaapi => 2,
Encoder::Vulkan => 3,
} }
} }
} }

View file

@ -57,7 +57,7 @@ impl AsyncFactoryComponent for WivrnEncoderModel {
}, },
add: encoder_combo = &combo_row( add: encoder_combo = &combo_row(
"Encoder", "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(), &self.encoder_conf.encoder.to_string(),
Encoder::iter().map(Encoder::to_string).collect::<Vec<String>>(), Encoder::iter().map(Encoder::to_string).collect::<Vec<String>>(),
{ {