From ecbe11244f9e46f6e8019c5dd240a5a4ced992b8 Mon Sep 17 00:00:00 2001 From: pigeatgarlic Date: Fri, 12 Jun 2026 11:40:09 +0700 Subject: [PATCH] display pinning --- src/main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 70743d11..497d8ffc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -116,6 +116,7 @@ int main(int argc, char *argv[]) { std::string ivshmem_path; std::string shm_name; + std::string capture_display; for (int i = 1; i < argc; ++i) { std::string arg = argv[i]; @@ -125,6 +126,8 @@ int main(int argc, char *argv[]) { ivshmem_path = argv[++i]; } else if (arg == "--shm"sv && i + 1 < argc) { shm_name = argv[++i]; + } else if (arg == "--capture-display"sv && i + 1 < argc) { + capture_display = argv[++i]; } } @@ -463,7 +466,14 @@ int main(int argc, char *argv[]) { }; { - auto displays = platf::display_names(platf::mem_type_e::dxgi); + std::vector displays; + if (!capture_display.empty()) { + BOOST_LOG(info) << "Pinned capture display: "sv << capture_display; + displays.emplace_back(capture_display); + } else { + displays = platf::display_names(platf::mem_type_e::dxgi); + } + for (int i = 0; i < displays.size(); i++) { auto codec = memory->video[i].metadata.codec; auto capture = std::thread{video_capture, mail, displays.at(i), codec};