mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-05-11 18:36:11 +02:00
Allow to explicitly increase the bitrate massively
This has the benefit - over direct connections - to be able to send a lot more data. In particular fast moving frames may avoid fps drops with a higher target bitrate.
This commit is contained in:
parent
029e6a015e
commit
4b58f0b4dd
3 changed files with 14 additions and 7 deletions
|
@ -1078,7 +1078,7 @@ impl PeerConfig {
|
|||
D: de::Deserializer<'de>,
|
||||
{
|
||||
let v: Vec<i32> = de::Deserialize::deserialize(deserializer)?;
|
||||
if v.len() == 1 && v[0] >= 10 && v[0] <= 100 {
|
||||
if v.len() == 1 && v[0] >= 10 && v[0] <= 0xFFF {
|
||||
Ok(v)
|
||||
} else {
|
||||
Ok(Self::default_custom_image_quality())
|
||||
|
@ -1402,7 +1402,7 @@ impl UserDefaultConfig {
|
|||
"codec-preference" => {
|
||||
self.get_string(key, "auto", vec!["vp8", "vp9", "av1", "h264", "h265"])
|
||||
}
|
||||
"custom_image_quality" => self.get_double_string(key, 50.0, 10.0, 100.0),
|
||||
"custom_image_quality" => self.get_double_string(key, 50.0, 10.0, 0xFFF as f64),
|
||||
"custom-fps" => self.get_double_string(key, 30.0, 5.0, 120.0),
|
||||
_ => self
|
||||
.options
|
||||
|
|
|
@ -299,9 +299,9 @@ impl VideoQoS {
|
|||
} else if q == ImageQuality::Best.value() {
|
||||
Quality::Best
|
||||
} else {
|
||||
let mut b = (q >> 8 & 0xFF) * 2;
|
||||
b = std::cmp::max(b, 10);
|
||||
b = std::cmp::min(b, 200);
|
||||
let mut b = (q >> 8 & 0xFFF) * 2;
|
||||
b = std::cmp::max(b, 20);
|
||||
b = std::cmp::min(b, 8000);
|
||||
Quality::Custom(b as u32)
|
||||
}
|
||||
};
|
||||
|
|
|
@ -424,10 +424,17 @@ class Header: Reactor.Component {
|
|||
function handle_custom_image_quality() {
|
||||
var tmp = handler.get_custom_image_quality();
|
||||
var bitrate = (tmp[0] || 50);
|
||||
msgbox("custom", "Custom Image Quality", "<div .form> \
|
||||
<div><input type=\"hslider\" style=\"width: 50%\" name=\"bitrate\" max=\"100\" min=\"10\" value=\"" + bitrate + "\"/ buddy=\"bitrate-buddy\"><b #bitrate-buddy>x</b>% Bitrate</div> \
|
||||
var extendedBitrate = bitrate > 100;
|
||||
var maxRate = extendedBitrate ? 4000 : 100;
|
||||
msgbox("custom-image-quality", "Custom Image Quality", "<div .form> \
|
||||
<div><input #bitrate-slider type=\"hslider\" style=\"width: 50%\" name=\"bitrate\" max=\"" + maxRate + "\" min=\"10\" value=\"" + bitrate + "\"/ buddy=\"bitrate-buddy\"><b #bitrate-buddy>x</b>% Bitrate <button|checkbox #extended-slider .custom-event " + (extendedBitrate ? "checked" : "") + ">More</button></div> \
|
||||
</div>", "", function(res=null) {
|
||||
if (!res) return;
|
||||
if (res.id === "extended-slider") {
|
||||
var slider = res.parent.$(#bitrate-slider)
|
||||
slider.slider.max = res.checked ? 4000 : 100;
|
||||
return;
|
||||
}
|
||||
if (!res.bitrate) return;
|
||||
handler.save_custom_image_quality(res.bitrate);
|
||||
toggleMenuState();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue