Merge pull request #4353 from 21pages/fix

fix andriod jni update
This commit is contained in:
RustDesk 2023-05-13 13:24:38 +08:00 committed by GitHub
commit 4d52edf46d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -49,10 +49,11 @@ impl FrameRaw {
self.enable = value; self.enable = value;
} }
fn update(&mut self, data: *mut u8) { fn update(&mut self, data: *mut u8, len: usize) {
if self.enable.not() { if self.enable.not() {
return; return;
} }
self.len = len;
self.ptr.store(data, SeqCst); self.ptr.store(data, SeqCst);
self.last_update = Instant::now(); self.last_update = Instant::now();
} }
@ -98,8 +99,9 @@ pub extern "system" fn Java_com_carriez_flutter_1hbb_MainService_onVideoFrameUpd
buffer: JObject, buffer: JObject,
) { ) {
let jb = JByteBuffer::from(buffer); let jb = JByteBuffer::from(buffer);
let slice = env.get_direct_buffer_address(&jb).unwrap(); let data = env.get_direct_buffer_address(&jb).unwrap();
VIDEO_RAW.lock().unwrap().update(slice); let len = env.get_direct_buffer_capacity(&jb).unwrap();
VIDEO_RAW.lock().unwrap().update(data, len);
} }
#[no_mangle] #[no_mangle]
@ -109,8 +111,9 @@ pub extern "system" fn Java_com_carriez_flutter_1hbb_MainService_onAudioFrameUpd
buffer: JObject, buffer: JObject,
) { ) {
let jb = JByteBuffer::from(buffer); let jb = JByteBuffer::from(buffer);
let slice = env.get_direct_buffer_address(&jb).unwrap(); let data = env.get_direct_buffer_address(&jb).unwrap();
AUDIO_RAW.lock().unwrap().update(slice); let len = env.get_direct_buffer_capacity(&jb).unwrap();
AUDIO_RAW.lock().unwrap().update(data, len);
} }
#[no_mangle] #[no_mangle]