Merge pull request #3974 from 21pages/fix
fix fps control refresh flicking
This commit is contained in:
commit
17fc5e1688
@ -852,7 +852,6 @@ impl<T: InvokeUiSession> Remote<T> {
|
||||
if len < debounce || decode_fps == 0 {
|
||||
return;
|
||||
}
|
||||
let mut refresh = false;
|
||||
// First setting , or the length of the queue still increases after setting, or exceed the size of the last setting again
|
||||
if ctl.set_times < 10 // enough
|
||||
&& (ctl.set_times == 0
|
||||
@ -875,14 +874,14 @@ impl<T: InvokeUiSession> Remote<T> {
|
||||
ctl.last_queue_size = len;
|
||||
ctl.set_times += 1;
|
||||
ctl.last_set_instant = Instant::now();
|
||||
refresh = true;
|
||||
}
|
||||
// send refresh
|
||||
if ctl.refresh_times < 10 // enough
|
||||
&& (refresh
|
||||
|| (len > self.video_queue.len() / 2
|
||||
&& ctl.last_refresh_instant.elapsed().as_secs() > 30))
|
||||
&& (len > self.video_queue.capacity() / 2
|
||||
&& (ctl.refresh_times == 0 || ctl.last_refresh_instant.elapsed().as_secs() > 30))
|
||||
{
|
||||
// Refresh causes client set_display, left frames cause flickering.
|
||||
while let Some(_) = self.video_queue.pop() {}
|
||||
self.handler.refresh_video();
|
||||
ctl.refresh_times += 1;
|
||||
ctl.last_refresh_instant = Instant::now();
|
||||
|
Loading…
x
Reference in New Issue
Block a user