feat: add OBS recording engine and validation probe

clipbin-obs starts the pinned libobs on a dedicated thread, opens exactly the
bundled plugin allowlist, and records official capture sources through one
hardware encoder into keyframe-aligned Matroska segments. Status reaches
Recording only once the source has a picture and the segment grows on disk.

clipbin-probe lists and verifies hardware encoders and records from a real
capture source, printing status, health and segment events for validation.
This commit is contained in:
2026-10-08 14:12:06 +02:00
parent 80b6abdb32
commit f2eb7139da
14 changed files with 2470 additions and 3 deletions
+10 -1
View File
@@ -1,5 +1,10 @@
[workspace]
members = ["crates/clipbin-core", "crates/clipbin-desktop"]
members = [
"crates/clipbin-core",
"crates/clipbin-desktop",
"crates/clipbin-obs",
"crates/clipbin-probe",
]
default-members = ["crates/clipbin-desktop"]
resolver = "3"
@@ -13,7 +18,11 @@ publish = false
[workspace.dependencies]
clipbin-core = { path = "crates/clipbin-core" }
clipbin-obs = { path = "crates/clipbin-obs" }
gpui = "=0.2.2"
# The tested OBS set: the libobs crate's bundled headers are OBS 32.0.4, matching
# scripts/obs/versions.env. Update them together.
libobs = "=5.0.1"
[workspace.lints.rust]
unsafe_code = "forbid"