fix: time out a stalled portal and sample motion across segments
Hyprland's portal sometimes creates the session and never answers source selection, before any picker appears. Recording now fails if the portal has not reached its picker within 10 s; time in the picker is not limited. The motion check uses the segment with the most motion, since capture can start late.
This commit is contained in:
+18
-1
@@ -9,7 +9,7 @@ pass/fail results.
|
||||
| Where | Script | Status |
|
||||
| --- | --- | --- |
|
||||
| Linux, headless rig (Wayland portal + Xwayland) | `scripts/validate/linux-rig.sh` | All 9 scenarios pass on devbox (Intel UHD 770, VA-API) |
|
||||
| Linux, real session (CachyOS, Hyprland, RX 9070 XT, 1440p60) | `scripts/validate/linux-hardware.sh` | First run 2026-10-08: H.264, HEVC and AV1 all usable; restore token still to confirm |
|
||||
| Linux, real session (CachyOS, Hyprland, RX 9070 XT, 1440p60) | `scripts/validate/linux-hardware.sh` | 2026-10-08: H.264, HEVC and AV1 usable; restore token works; portal stall fix awaiting re-run |
|
||||
| Windows (Game Capture, NVENC/AMF/QSV) | `scripts/validate/windows.ps1` | Not run yet; script untested |
|
||||
|
||||
## Probe commands
|
||||
@@ -77,6 +77,20 @@ CachyOS 7.2.9, Hyprland, RX 9070 XT, 1440p60, OBS 32.0.4:
|
||||
the PipeWire stream `streaming` and OBS repeats the window's last frame.
|
||||
See findings.
|
||||
|
||||
### Second hardware run (2026-10-08)
|
||||
|
||||
- The restore token works: the restored run started recording in 2 s without
|
||||
showing the picker.
|
||||
- The portal stalled silently on one run again: it created the session but
|
||||
never answered `SelectSources`, before any picker. Recording now fails if
|
||||
the portal has not reached its picker 10 s after the request
|
||||
(`StatusTracker::PORTAL_RESPONSE_LIMIT`); time spent in the picker itself
|
||||
is not limited.
|
||||
- The motion check sampled a segment from before capture started (the user
|
||||
took 16 s in the picker); it now uses the segment with the most motion.
|
||||
- A portrait monitor (Hyprland transform 3) is captured as 1440x2560 and
|
||||
pillarboxed in the 2560x1440 canvas.
|
||||
|
||||
## Windows
|
||||
|
||||
Run `scripts/validate/windows.ps1 -GameWindow "<title>:<class>:<exe>"` with a
|
||||
@@ -133,6 +147,9 @@ Windows status:
|
||||
has a picture, so a source that never arrives produces black segments. The
|
||||
session timeline should show that time as missing footage, or the output
|
||||
should start only once capture is usable.
|
||||
- **Canvas orientation.** The output canvas is fixed by the configured
|
||||
resolution, so portrait or other-aspect sources are letterboxed. Decide
|
||||
whether the canvas should follow the captured source.
|
||||
- **Audio capture failures are not detected yet.** When the PulseAudio server
|
||||
was unreachable, recording continued with a silent track.
|
||||
- **Linux runtime dependencies.** The Linux OBS build links the system's
|
||||
|
||||
Reference in New Issue
Block a user