diff --git a/plugins/src/webrtcsink/imp.rs b/plugins/src/webrtcsink/imp.rs index d2d3ef545..d8e7ae9b5 100644 --- a/plugins/src/webrtcsink/imp.rs +++ b/plugins/src/webrtcsink/imp.rs @@ -336,6 +336,9 @@ fn configure_encoder(enc: &gst::Element) { enc.set_property_from_str("rc-mode", "cbr-ld-hq"); enc.set_property("zerolatency", true); } + "vaapih264enc" => { + enc.set_property("bitrate", 2048u32); + } _ => (), } } @@ -516,8 +519,8 @@ impl VideoEncoder { fn bitrate(&self) -> i32 { match self.factory_name.as_str() { "vp8enc" | "vp9enc" => self.element.property::("target-bitrate"), - "x264enc" | "nvh264enc" => (self.element.property::("bitrate") * 1000) as i32, - _ => unreachable!(), + "x264enc" | "nvh264enc" | "vaapih264enc" => (self.element.property::("bitrate") * 1000) as i32, + factory => unreachable!("Factory {} is currently not supported", factory), } } @@ -538,10 +541,10 @@ impl VideoEncoder { fn set_bitrate(&mut self, element: &super::WebRTCSink, bitrate: i32) { match self.factory_name.as_str() { "vp8enc" | "vp9enc" => self.element.set_property("target-bitrate", bitrate), - "x264enc" | "nvh264enc" => self + "x264enc" | "nvh264enc" | "vaapih264enc" => self .element .set_property("bitrate", (bitrate / 1000) as u32), - _ => unreachable!(), + factory => unreachable!("Factory {} is currently not supported", factory), } let current_caps = self.filter.property::("caps");