mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-09-11 15:01:02 +03:00
Review follow-up: - An FP16 desktop is not necessarily HDR. Since Windows 11 22H2 an Advanced Color (WCG) SDR display is composed in FP16 scRGB too, and there 1.0 is the display's reference white, not 80 nits, so the SDRWhiteLevel scaling does not apply (Microsoft: "Reference white applies only to HDR displays"). Query IDXGIOutput6::GetDesc1 and treat the output as HDR only for DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020, the documented Win32 check; a non-HDR FP16 frame now gets just the scRGB -> sRGB transfer. Without IDXGIOutput6 (before Windows 10 1803) FP16 can only mean HDR. - The SDR white level is now Option: a failed query or a reported 0 is "unknown" on both the initial and the refresh path, an HDR output with an unknown level logs a warning and keeps the 80-nit assumption until the periodic re-query succeeds. DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL needs Windows 10 1709, not 1703 as an earlier message said. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLb1dNdhFqUQExJPANjo1F
79 lines
2.9 KiB
TOML
79 lines
2.9 KiB
TOML
[package]
|
|
name = "scrap"
|
|
description = "Screen capture made easy."
|
|
version = "0.5.0"
|
|
repository = "https://github.com/quadrupleslap/scrap"
|
|
documentation = "https://docs.rs/scrap"
|
|
keywords = ["screen", "capture", "record"]
|
|
license = "MIT"
|
|
authors = ["Ram <quadrupleslap@gmail.com>"]
|
|
edition = "2018"
|
|
|
|
[features]
|
|
wayland = ["gstreamer", "gstreamer-app", "gstreamer-video", "dbus", "tracing", "zbus"]
|
|
# `drm` is a pure runtime-dlopen backend: rustdesk loads `libdrmtap.so.0` at runtime (`drmtap_dl.rs`)
|
|
# and NEVER link-time links it, so the graceful PipeWire fallback when the .so or EGL is absent is
|
|
# preserved and the drm build pulls in no libdrm/seccomp/cap/EGL link-time deps. The .so is pinned by
|
|
# `DRMTAP_SHA` in build.py, which fetches that exact commit (libdrmtap v0.5.4). We deliberately do
|
|
# NOT depend on the `libdrmtap-sys` crate: its build.rs statically compiles the whole libdrmtap C tree
|
|
# and a CAP_SYS_ADMIN helper and emits `-ldrm -lseccomp -lcap`, which would defeat the dlopen model.
|
|
# Depends on `wayland`: the three drm modules live inside the `#[cfg(feature = "wayland")]` arm of
|
|
# common/mod.rs, so `scrap/drm` on its own would compile nothing. The root crate happens to always
|
|
# enable `scrap/wayland`, which is what hid this.
|
|
drm = ["wayland", "hbb_common/wayland_probe"]
|
|
mediacodec = ["ndk"]
|
|
linux-pkg-config = ["dep:pkg-config"]
|
|
hwcodec = ["dep:hwcodec"]
|
|
vram = ["hwcodec/vram"]
|
|
|
|
[dependencies]
|
|
cfg-if = "1.0"
|
|
num_cpus = "1.15"
|
|
lazy_static = "1.4"
|
|
hbb_common = { path = "../hbb_common" }
|
|
webm = { git = "https://github.com/rustdesk-org/rust-webm" }
|
|
serde = {version="1.0", features=["derive"]}
|
|
|
|
[dependencies.winapi]
|
|
version = "0.3"
|
|
default-features = true
|
|
features = ["dxgi", "dxgi1_2", "dxgi1_5", "dxgi1_6", "d3d11", "winuser", "winerror", "errhandlingapi", "libloaderapi"]
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
block = "0.1"
|
|
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
android_logger = "0.13"
|
|
jni = "0.21"
|
|
lazy_static = "1.4"
|
|
log = "0.4"
|
|
serde_json = "1.0"
|
|
ndk = { version = "0.7", features = ["media"], optional = true}
|
|
ndk-context = "0.1"
|
|
|
|
[target.'cfg(not(target_os = "android"))'.dev-dependencies]
|
|
repng = "0.2"
|
|
docopt = "1.1"
|
|
quest = "0.3"
|
|
|
|
[build-dependencies]
|
|
target_build_utils = "0.3"
|
|
bindgen = "0.72.1"
|
|
pkg-config = { version = "0.3.27", optional = true }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
dbus = { version = "0.9", optional = true }
|
|
tracing = { version = "0.1", optional = true }
|
|
gstreamer = { version = "0.16", optional = true }
|
|
gstreamer-app = { version = "0.16", features = ["v1_10"], optional = true }
|
|
gstreamer-video = { version = "0.16", optional = true }
|
|
zbus = { version = "3.15", optional = true }
|
|
|
|
[dependencies.hwcodec]
|
|
git = "https://github.com/rustdesk-org/hwcodec"
|
|
optional = true
|
|
|
|
[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies]
|
|
nokhwa = { git = "https://github.com/rustdesk-org/nokhwa.git", branch = "fix_from_raw_parts", features = ["input-native"] }
|
|
|