Differentiate stride align between encoding and decoding

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou 2023-03-03 10:47:31 +08:00
parent c8ae6a3ba3
commit 0c3ccb3f60
3 changed files with 6 additions and 6 deletions

View File

@ -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()

View File

@ -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";

View File

@ -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 _,
)
};
}