perf(capture): add SceneLens GPU streams and retained scene reuse
Use persistent privacy-filtered capture targets and client-owned GPU buffers with fence completion, backpressure, negotiated frame rates and shared-memory fallback. Invalidate output views on scene changes while preserving inactive-window callbacks and capture revocation. Include OBS memory-mask negotiation and native pixel, transport and recording regressions.
This commit is contained in:
1 parent
f49f62583d
commit
533cd74c94
40 files changed
+4704
-704
No files matched your search
@@ -10,8 +10,8 @@ workspace = true
|
||||
|
||||
[features]
|
||||
default = ["client", "server"]
|
||||
client = ["dep:wayland-client", "wayland-protocols-wlr/client"]
|
||||
server = ["dep:wayland-server", "wayland-protocols-wlr/server"]
|
||||
client = ["dep:wayland-client", "wayland-protocols-wlr/client", "wayland-protocols/client"]
|
||||
server = ["dep:wayland-server", "wayland-protocols-wlr/server", "wayland-protocols/server"]
|
||||
|
||||
[dependencies]
|
||||
bitflags.workspace = true
|
||||
@@ -20,3 +20,5 @@ wayland-client = { workspace = true, optional = true }
|
||||
wayland-scanner.workspace = true
|
||||
wayland-server = { workspace = true, optional = true }
|
||||
wayland-protocols-wlr.workspace = true
|
||||
|
||||
wayland-protocols = { version = "0.32", features = ["staging"] }
|
||||
@@ -195,10 +195,12 @@ pub mod window_capture {
|
||||
pub mod client {
|
||||
use wayland_client;
|
||||
use wayland_client::protocol::*;
|
||||
use wayland_protocols::ext::image_capture_source::v1::client::*;
|
||||
use wayland_protocols_wlr::screencopy::v1::client::*;
|
||||
|
||||
pub mod __interfaces {
|
||||
use wayland_client::protocol::__interfaces::*;
|
||||
use wayland_protocols::ext::image_capture_source::v1::client::__interfaces::*;
|
||||
use wayland_protocols_wlr::screencopy::v1::client::__interfaces::*;
|
||||
|
||||
wayland_scanner::generate_interfaces!(
|
||||
@@ -214,11 +216,13 @@ pub mod window_capture {
|
||||
|
||||
#[cfg(feature = "server")]
|
||||
pub mod server {
|
||||
use wayland_protocols::ext::image_capture_source::v1::server::*;
|
||||
use wayland_protocols_wlr::screencopy::v1::server::*;
|
||||
use wayland_server;
|
||||
use wayland_server::protocol::*;
|
||||
|
||||
pub mod __interfaces {
|
||||
use wayland_protocols::ext::image_capture_source::v1::server::__interfaces::*;
|
||||
use wayland_protocols_wlr::screencopy::v1::server::__interfaces::*;
|
||||
use wayland_server::protocol::__interfaces::*;
|
||||
|
||||
|
||||
Reference in new issue
Block a user