diff --git a/cmake/compile_definitions/common.cmake b/cmake/compile_definitions/common.cmake index 502c9d63d2a..5da44de37b4 100644 --- a/cmake/compile_definitions/common.cmake +++ b/cmake/compile_definitions/common.cmake @@ -79,6 +79,8 @@ if(WIN32) "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_d3d11_native.cpp" "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_d3d11_on_cuda.cpp" "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_dynamic_factory_impl.cpp" + "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_reconfigure.cpp" + "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_reconfigure.h" "${CMAKE_SOURCE_DIR}/src/nvenc/nvenc_utils.cpp" ) @@ -155,11 +157,15 @@ set(SUNSHINE_TARGET_FILES "${CMAKE_SOURCE_DIR}/src/input.h" "${CMAKE_SOURCE_DIR}/src/audio.cpp" "${CMAKE_SOURCE_DIR}/src/audio.h" + "${CMAKE_SOURCE_DIR}/src/adaptive_bitrate.cpp" + "${CMAKE_SOURCE_DIR}/src/adaptive_bitrate.h" "${CMAKE_SOURCE_DIR}/src/platform/common.h" "${CMAKE_SOURCE_DIR}/src/process.cpp" "${CMAKE_SOURCE_DIR}/src/process.h" "${CMAKE_SOURCE_DIR}/src/network.cpp" "${CMAKE_SOURCE_DIR}/src/network.h" + "${CMAKE_SOURCE_DIR}/src/network_metrics.cpp" + "${CMAKE_SOURCE_DIR}/src/network_metrics.h" "${CMAKE_SOURCE_DIR}/src/move_by_copy.h" "${CMAKE_SOURCE_DIR}/src/system_tray.cpp" "${CMAKE_SOURCE_DIR}/src/system_tray.h" diff --git a/docs/configuration.md b/docs/configuration.md index ed503973a4b..e563bf2a1eb 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1397,6 +1397,34 @@ editing the `conf` file in a text editor. Use the examples as reference. +### adaptive_bitrate + +
| Description | ++ Allow supported Moonlight sessions to reduce the video bitrate during sustained network loss. Runtime + bitrate changes are currently supported by the Windows native NVENC backend. Recovery is gradual and + requires both a quiet period without new loss pressure and a fresh, healthy ENet RTT sample produced by a + reliable acknowledgement from Moonlight; the absence of FEC reports alone never permits an increase. The + controller never exceeds the bitrate requested by Moonlight or the configured `max_bitrate` ceiling. + Unsupported clients and encoders continue to use their fixed effective bitrate. + | +|
| Default | +@code{} + disabled + @endcode | +|
| Example | +@code{} + adaptive_bitrate = enabled + @endcode | +|