mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-17 10:11:01 +03:00
seperate video decoding thread for each display (#9968)
* seperate video decoding thread for each display 1. Separate Video Decoding Thread for Each Display 2. Fix Decode Errors When Clearing the Queue Previously, on-flight frames after clearing the queue could not be decoded successfully. This issue can be resolved by setting a discard_queue flag when sending a refresh message. The flag will be reset upon receiving a keyframe. Signed-off-by: 21pages <sunboeasy@gmail.com> * update video format along with fps to flutter Signed-off-by: 21pages <sunboeasy@gmail.com> * Fix keyframe interval when auto record outgoing sessions Signed-off-by: 21pages <sunboeasy@gmail.com> --------- Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
@@ -728,13 +728,7 @@ fn setup_encoder(
|
||||
);
|
||||
Encoder::set_fallback(&encoder_cfg);
|
||||
let codec_format = Encoder::negotiated_codec();
|
||||
let recorder = get_recorder(
|
||||
c.width,
|
||||
c.height,
|
||||
&codec_format,
|
||||
record_incoming,
|
||||
display_idx,
|
||||
);
|
||||
let recorder = get_recorder(record_incoming, display_idx);
|
||||
let use_i444 = Encoder::use_i444(&encoder_cfg);
|
||||
let encoder = Encoder::new(encoder_cfg.clone(), use_i444)?;
|
||||
Ok((encoder, encoder_cfg, codec_format, use_i444, recorder))
|
||||
@@ -816,13 +810,7 @@ fn get_encoder_config(
|
||||
}
|
||||
}
|
||||
|
||||
fn get_recorder(
|
||||
width: usize,
|
||||
height: usize,
|
||||
codec_format: &CodecFormat,
|
||||
record_incoming: bool,
|
||||
display: usize,
|
||||
) -> Arc<Mutex<Option<Recorder>>> {
|
||||
fn get_recorder(record_incoming: bool, display: usize) -> Arc<Mutex<Option<Recorder>>> {
|
||||
#[cfg(windows)]
|
||||
let root = crate::platform::is_root();
|
||||
#[cfg(not(windows))]
|
||||
|
||||
Reference in New Issue
Block a user