- Force PipeWire quantum=512 via NODE_FORCE_QUANTUM (48000/512=93Hz scheduling) - Switch to libx264 ultrafast/zerolatency with 6 threads - Use two-phase poll_and_encode: blocking recv_timeout for first frame, non-blocking try_recv drain for subsequent frames - Remove fps_limit from portal path (PW already rate-limits via quantum/KWin; fps_limit's min_interval was silently dropping ~10% of valid frames) - Remove diagnostic instrumentation (TIMING/PIPEWIRE logs, timing fields, pw_stats counters) - Add lightweight production stats: per-10s fps log + shutdown summary - Prefer libx264 over libopenh264 (better quality at same speed)
28 lines
895 B
TOML
28 lines
895 B
TOML
[package]
|
|
name = "wl-webrtc"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Wayland screen capture and encoding tool"
|
|
|
|
[dependencies]
|
|
wayland-client = "0.31"
|
|
wayland-protocols = { version = "0.32", features = ["client", "unstable"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
ffmpeg-next = "8"
|
|
mio = { version = "1.0", features = ["os-poll", "os-ext"] }
|
|
signal-hook = "0.3"
|
|
signal-hook-mio = { version = "0.2", features = ["support-v1_0"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = "0.3"
|
|
anyhow = "1"
|
|
drm = "0.12"
|
|
drm-fourcc = "2"
|
|
libc = "0.2"
|
|
ashpd = { version = "0.13", features = ["tokio", "screencast"] }
|
|
zbus = { version = "5", default-features = false, features = ["tokio"] }
|
|
tokio = { version = "1", features = ["rt"] }
|
|
pipewire = { version = "0.9", features = ["v0_3_45"] }
|
|
libspa = "0.9"
|
|
crossbeam-channel = "0.5"
|