From e3b66af8af619b713194cf6f607aa5300bdf3819 Mon Sep 17 00:00:00 2001 From: fufesou Date: Fri, 28 Apr 2023 12:03:44 +0800 Subject: [PATCH] fix build Signed-off-by: fufesou --- src/client.rs | 2 +- src/flutter.rs | 8 ++++---- src/ui/remote.rs | 4 ++-- src/ui_session_interface.rs | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/client.rs b/src/client.rs index 563b09b27..17036e1a2 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1753,7 +1753,7 @@ pub fn start_video_audio_threads( Arc, ) where - F: 'static + FnMut(&scrap::ImageRgb) + Send, + F: 'static + FnMut(&mut scrap::ImageRgb) + Send, { let (video_sender, video_receiver) = mpsc::channel::(); let video_queue = Arc::new(ArrayQueue::::new(VIDEO_QUEUE_SIZE)); diff --git a/src/flutter.rs b/src/flutter.rs index c2e51d342..91962d5ea 100644 --- a/src/flutter.rs +++ b/src/flutter.rs @@ -224,7 +224,7 @@ impl VideoRenderer { self.height = height; } - pub fn on_rgba(&self, rgba: &scrap::ImageRgb) { + pub fn on_rgba(&self, rgba: &mut scrap::ImageRgb) { if self.ptr == usize::default() { return; } @@ -500,7 +500,7 @@ impl InvokeUiSession for FlutterHandler { #[inline] #[cfg(not(feature = "flutter_texture_render"))] - fn on_rgba(&self, rgba: &scrap::ImageRgb) { + fn on_rgba(&self, rgba: &mut scrap::ImageRgb) { // If the current rgba is not fetched by flutter, i.e., is valid. // We give up sending a new event to flutter. if self.rgba_valid.load(Ordering::Relaxed) { @@ -508,7 +508,7 @@ impl InvokeUiSession for FlutterHandler { } self.rgba_valid.store(true, Ordering::Relaxed); // Return the rgba buffer to the video handler for reusing allocated rgba buffer. - std::mem::swap::>(rgba.raw, &mut *self.rgba.write().unwrap()); + std::mem::swap::>(&mut rgba.raw, &mut *self.rgba.write().unwrap()); if let Some(stream) = &*self.event_stream.read().unwrap() { stream.add(EventToUI::Rgba); } @@ -516,7 +516,7 @@ impl InvokeUiSession for FlutterHandler { #[inline] #[cfg(feature = "flutter_texture_render")] - fn on_rgba(&self, rgba: &scrap::ImageRgb) { + fn on_rgba(&self, rgba: &mut scrap::ImageRgb) { self.renderer.read().unwrap().on_rgba(rgba); if *self.notify_rendered.read().unwrap() { return; diff --git a/src/ui/remote.rs b/src/ui/remote.rs index abc27e49c..26f7af148 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -223,12 +223,12 @@ impl InvokeUiSession for SciterHandler { self.call("adaptSize", &make_args!()); } - fn on_rgba(&self, rgba: &scrap::ImageRgb) { + fn on_rgba(&self, rgba: &mut scrap::ImageRgb) { VIDEO .lock() .unwrap() .as_mut() - .map(|v| v.render_frame(rgba.raw).ok()); + .map(|v| v.render_frame(&rgba.raw).ok()); } fn set_peer_info(&self, pi: &PeerInfo) { diff --git a/src/ui_session_interface.rs b/src/ui_session_interface.rs index 58b83a3a7..8a6a30803 100644 --- a/src/ui_session_interface.rs +++ b/src/ui_session_interface.rs @@ -926,7 +926,7 @@ pub trait InvokeUiSession: Send + Sync + Clone + 'static + Sized + Default { fn update_block_input_state(&self, on: bool); fn job_progress(&self, id: i32, file_num: i32, speed: f64, finished_size: f64); fn adapt_size(&self); - fn on_rgba(&self, rgba: &scrap::ImageRgb); + fn on_rgba(&self, rgba: &mut scrap::ImageRgb); fn msgbox(&self, msgtype: &str, title: &str, text: &str, link: &str, retry: bool); #[cfg(any(target_os = "android", target_os = "ios"))] fn clipboard(&self, content: String); @@ -1207,7 +1207,7 @@ pub async fn io_loop(handler: Session) { let frame_count_cl = frame_count.clone(); let ui_handler = handler.ui_handler.clone(); let (video_sender, audio_sender, video_queue, decode_fps) = - start_video_audio_threads(move |data: &scrap::ImageRgb| { + start_video_audio_threads(move |data: &mut scrap::ImageRgb| { frame_count_cl.fetch_add(1, Ordering::Relaxed); ui_handler.on_rgba(data); });