From f99d3af0a15523d9ed8b639403ef00cf93913f57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2025 08:43:32 -0500 Subject: [PATCH 01/12] build(deps): bump third-party/libdisplaydevice from `53a0ea5` to `591387c` (#3643) build(deps): bump third-party/libdisplaydevice Bumps [third-party/libdisplaydevice](https://github.com/LizardByte/libdisplaydevice) from `53a0ea5` to `591387c`. - [Release notes](https://github.com/LizardByte/libdisplaydevice/releases) - [Commits](https://github.com/LizardByte/libdisplaydevice/compare/53a0ea5317279406eaa2bb2cf441ae971ed5f692...591387c58465376540fc9f505e938860e08fd47e) --- updated-dependencies: - dependency-name: third-party/libdisplaydevice dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third-party/libdisplaydevice | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third-party/libdisplaydevice b/third-party/libdisplaydevice index 53a0ea53..591387c5 160000 --- a/third-party/libdisplaydevice +++ b/third-party/libdisplaydevice @@ -1 +1 @@ -Subproject commit 53a0ea5317279406eaa2bb2cf441ae971ed5f692 +Subproject commit 591387c58465376540fc9f505e938860e08fd47e From d777b724216da2a41ab271d258768212fd71e7ce Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Fri, 7 Feb 2025 18:38:52 -0500 Subject: [PATCH 02/12] build(deps): bump vite from 4.5.2 to 4.5.9 (#3645) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 666acfcd..067195f4 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@vitejs/plugin-vue": "4.6.2", "serve": "14.2.3", - "vite": "4.5.2", + "vite": "4.5.9", "vite-plugin-ejs": "1.6.4" } } From ac2fc482888409f04baa72e86ed4b4de136e8f87 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:35:45 -0500 Subject: [PATCH 03/12] ci(homebrew): fix python install (#3646) --- .github/workflows/CI.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 945d2d53..7ffcd306 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -554,12 +554,16 @@ jobs: rm '/usr/local/bin/2to3-3.12' rm '/usr/local/bin/idle3' rm '/usr/local/bin/idle3.12' + rm '/usr/local/bin/idle3.13' rm '/usr/local/bin/pydoc3' rm '/usr/local/bin/pydoc3.12' + rm '/usr/local/bin/pydoc3.13' rm '/usr/local/bin/python3' - rm '/usr/local/bin/python3-config' rm '/usr/local/bin/python3.12' + rm '/usr/local/bin/python3.13' + rm '/usr/local/bin/python3-config' rm '/usr/local/bin/python3.12-config' + rm '/usr/local/bin/python3.13-config' brew install python - name: Setup python From ff0ed25e471e78ff549963bf9611dbb60d66f177 Mon Sep 17 00:00:00 2001 From: ABeltramo Date: Sun, 9 Feb 2025 18:18:25 +0000 Subject: [PATCH 04/12] fix(linux/inputtino): DualSense native support without Steam Input (#3600) --- third-party/inputtino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third-party/inputtino b/third-party/inputtino index 8065aeb4..311fd2de 160000 --- a/third-party/inputtino +++ b/third-party/inputtino @@ -1 +1 @@ -Subproject commit 8065aeb46e5e5980e700d9c1f1be3c4f7ec29630 +Subproject commit 311fd2deea8743c2d87aec5274978d1523de90fa From 3a88ddc6392044a54ffa1fae39fac3aaa52015f8 Mon Sep 17 00:00:00 2001 From: Utkarsh Dalal Date: Mon, 10 Feb 2025 01:30:29 +0530 Subject: [PATCH 05/12] feat: Add Max Bitrate option (#3628) --- docs/configuration.md | 23 +++++++++++++++++++ src/config.cpp | 4 +++- src/config.h | 1 + src/video.cpp | 3 ++- src_assets/common/assets/web/config.html | 1 + .../tabs/audiovideo/DisplayModesSettings.vue | 7 ++++++ 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index f5e31f72..1f31d74c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1316,6 +1316,29 @@ editing the `conf` file in a text editor. Use the examples as reference. +### max_bitrate + + + + + + + + + + + + + + +
Description + The maximum bitrate (in Kbps) that Sunshine will encode the stream at. If set to 0, it will always use the bitrate requested by Moonlight. +
Default@code{} + 0 + @endcode
Example@code{} + max_bitrate = 5000 + @endcode
+ ### min_fps_factor diff --git a/src/config.cpp b/src/config.cpp index 5809fc16..e97de9f5 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -509,7 +509,8 @@ namespace config { {} // wa }, // display_device - 1 // min_fps_factor + 1, // min_fps_factor + 0 // max_bitrate }; audio_t audio { @@ -1138,6 +1139,7 @@ namespace config { bool_f(vars, "dd_wa_hdr_toggle", video.dd.wa.hdr_toggle); int_between_f(vars, "min_fps_factor", video.min_fps_factor, {1, 3}); + int_f(vars, "max_bitrate", video.max_bitrate); path_f(vars, "pkey", nvhttp.pkey); path_f(vars, "cert", nvhttp.cert); diff --git a/src/config.h b/src/config.h index 7b06e234..fe6629da 100644 --- a/src/config.h +++ b/src/config.h @@ -138,6 +138,7 @@ namespace config { } dd; int min_fps_factor; // Minimum fps target, determines minimum frame time + int max_bitrate; // Maximum bitrate, sets ceiling in kbps for bitrate requested from client }; struct audio_t { diff --git a/src/video.cpp b/src/video.cpp index f06e2360..f75cfa34 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -1687,7 +1687,8 @@ namespace video { } } - auto bitrate = config.bitrate * 1000; + auto bitrate = ((config::video.max_bitrate > 0) ? std::min(config.bitrate, config::video.max_bitrate) : config.bitrate) * 1000; + BOOST_LOG(info) << "Max bitrate is " << config::video.max_bitrate; ctx->rc_max_rate = bitrate; ctx->bit_rate = bitrate; diff --git a/src_assets/common/assets/web/config.html b/src_assets/common/assets/web/config.html index 3b74b922..8fd43c41 100644 --- a/src_assets/common/assets/web/config.html +++ b/src_assets/common/assets/web/config.html @@ -179,6 +179,7 @@ "dd_mode_remapping": {"mixed": [], "resolution_only": [], "refresh_rate_only": []}, "dd_wa_hdr_toggle": "disabled", "min_fps_factor": 1, + "max_bitrate": 0, }, }, { diff --git a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue index c74d4a6c..2bf997ba 100644 --- a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue +++ b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayModesSettings.vue @@ -17,6 +17,13 @@ const config = ref(props.config)
{{ $t('config.min_fps_factor_desc') }}
+ + +
+ + +
{{ $t("config.max_bitrate_desc") }}
+