From 0c3ccb3f60eca6b9bdb329faf1d00cf09b91ceb8 Mon Sep 17 00:00:00 2001 From: fufesou Date: Fri, 3 Mar 2023 10:47:31 +0800 Subject: [PATCH] Differentiate stride align between encoding and decoding Signed-off-by: fufesou --- src/client.rs | 4 ++-- src/common.rs | 4 ++-- src/flutter.rs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/client.rs b/src/client.rs index 66eccfe20..2249c98e4 100644 --- a/src/client.rs +++ b/src/client.rs @@ -49,7 +49,7 @@ use scrap::{ }; use crate::{ - common::{self, is_keyboard_mode_supported, STRIDE_ALIGN}, + common::{self, is_keyboard_mode_supported, STRIDE_ALIGN_RGBA_OUTPUT}, server::video_service::{SCRAP_X11_REF_URL, SCRAP_X11_REQUIRED}, }; @@ -944,7 +944,7 @@ impl VideoHandler { } match &vf.union { Some(frame) => { - let res = self.decoder.handle_video_frame(frame, STRIDE_ALIGN, ImageFormat::ARGB, &mut self.rgb); + let res = self.decoder.handle_video_frame(frame, STRIDE_ALIGN_RGBA_OUTPUT, ImageFormat::ARGB, &mut self.rgb); if self.record { self.recorder .lock() diff --git a/src/common.rs b/src/common.rs index 181f283e1..c781d3eaf 100644 --- a/src/common.rs +++ b/src/common.rs @@ -42,9 +42,9 @@ pub const SYNC_PEER_INFO_DISPLAYS: i32 = 1; #[cfg(all(target_os = "macos", feature = "flutter_texture_render"))] // https://developer.apple.com/forums/thread/712709 // Memory alignment should be multiple of 64. -pub const STRIDE_ALIGN: usize = 64; +pub const STRIDE_ALIGN_RGBA_OUTPUT: usize = 64; #[cfg(not(all(target_os = "macos", feature = "flutter_texture_render")))] -pub const STRIDE_ALIGN: usize = 1; +pub const STRIDE_ALIGN_RGBA_OUTPUT: usize = 1; // the executable name of the portable version pub const PORTABLE_APPNAME_RUNTIME_ENV_KEY: &str = "RUSTDESK_APPNAME"; diff --git a/src/flutter.rs b/src/flutter.rs index 76583eb3d..03949f89d 100644 --- a/src/flutter.rs +++ b/src/flutter.rs @@ -206,7 +206,7 @@ impl VideoRenderer { self.width = width; self.height = height; self.data_len = if width > 0 && height > 0 { - let sa1 = crate::common::STRIDE_ALIGN - 1; + let sa1 = crate::common::STRIDE_ALIGN_RGBA_OUTPUT - 1; let row_bytes = (width as usize * 4 + sa1) & !sa1; row_bytes * height as usize } else { @@ -226,7 +226,7 @@ impl VideoRenderer { rgba.len() as _, self.width as _, self.height as _, - crate::common::STRIDE_ALIGN as _, + crate::common::STRIDE_ALIGN_RGBA_OUTPUT as _, ) }; }