diff --git a/libs/hbb_common/protos/message.proto b/libs/hbb_common/protos/message.proto index 61f739343..273e7a6c5 100644 --- a/libs/hbb_common/protos/message.proto +++ b/libs/hbb_common/protos/message.proto @@ -471,7 +471,7 @@ message OptionMessage { BoolOption show_remote_cursor = 3; BoolOption privacy_mode = 4; BoolOption block_input = 5; - uint32 custom_image_quality = 6; + int32 custom_image_quality = 6; BoolOption disable_audio = 7; BoolOption disable_clipboard = 8; BoolOption enable_file_transfer = 9; diff --git a/libs/scrap/src/common/dxgi.rs b/libs/scrap/src/common/dxgi.rs index c0b4130bb..1a8c39885 100644 --- a/libs/scrap/src/common/dxgi.rs +++ b/libs/scrap/src/common/dxgi.rs @@ -1,5 +1,6 @@ use crate::dxgi; use std::io::ErrorKind::{NotFound, TimedOut, WouldBlock}; +use std::time::Duration; use std::{io, ops}; pub struct Capturer { @@ -40,8 +41,8 @@ impl Capturer { self.height } - pub fn frame<'a>(&'a mut self, timeout_ms: u32) -> io::Result> { - match self.inner.frame(timeout_ms) { + pub fn frame<'a>(&'a mut self, timeout_ms: Duration) -> io::Result> { + match self.inner.frame(timeout_ms.as_millis() as _) { Ok(frame) => Ok(Frame(frame)), Err(ref error) if error.kind() == TimedOut => Err(WouldBlock.into()), Err(error) => Err(error), @@ -135,7 +136,7 @@ impl CapturerMag { pub fn get_rect(&self) -> ((i32, i32), usize, usize) { self.inner.get_rect() } - pub fn frame<'a>(&'a mut self, _timeout_ms: u32) -> io::Result> { + pub fn frame<'a>(&'a mut self, _timeout_ms: Duration) -> io::Result> { self.inner.frame(&mut self.data)?; Ok(Frame(&self.data)) } diff --git a/libs/scrap/src/common/hwcodec.rs b/libs/scrap/src/common/hwcodec.rs index ec4e7082c..076304067 100644 --- a/libs/scrap/src/common/hwcodec.rs +++ b/libs/scrap/src/common/hwcodec.rs @@ -140,6 +140,10 @@ impl EncoderApi for HwEncoder { fn use_yuv(&self) -> bool { false } + + fn set_bitrate(&mut self, bitrate: u32) -> ResultType<()> { + todo!() + } } impl HwEncoder { diff --git a/src/client.rs b/src/client.rs index adeabda66..ca5352ae4 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1005,7 +1005,7 @@ impl LoginConfigHandler { msg_out } - pub fn save_custom_image_quality(&mut self, custom_image_quality: u32) -> Message { + pub fn save_custom_image_quality(&mut self, custom_image_quality: i32) -> Message { let mut misc = Misc::new(); misc.set_option(OptionMessage { custom_image_quality, diff --git a/src/server/connection.rs b/src/server/connection.rs index 8f04841c2..77d41d4e0 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -1117,7 +1117,7 @@ impl Connection { let mut image_quality = None; if let ImageQuality::NotSet = q { if o.custom_image_quality > 0 { - image_quality = Some(o.custom_image_quality); + image_quality = Some(o.custom_image_quality as _); } } else { image_quality = Some(q.value() as _) diff --git a/src/server/video_service.rs b/src/server/video_service.rs index fa0b77fc7..8113ffee3 100644 --- a/src/server/video_service.rs +++ b/src/server/video_service.rs @@ -385,7 +385,7 @@ impl TraitCapturer for Capturer { #[cfg(windows)] impl TraitCapturer for scrap::CapturerMag { - fn frame<'a>(&'a mut self, _timeout_ms: u32) -> Result> { + fn frame<'a>(&'a mut self, _timeout_ms: Duration) -> Result> { self.frame(_timeout_ms) } diff --git a/src/ui/remote.rs b/src/ui/remote.rs index 1abd4eb2a..22ae5f505 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -569,7 +569,7 @@ impl Handler { .lc .write() .unwrap() - .save_custom_image_quality(custom_image_quality as u32); + .save_custom_image_quality(custom_image_quality); self.send(Data::Message(msg)); }