mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-09-30 20:02:06 +02:00
Phase C parity (ADR 0003): restore the legacy startProxy off-air behaviour for daemon-served proxy streams. After registering a proxy source, live.php calls FanoutClient::probe($id, on_demand_wait_time*1000) → daemon POST /probe/<id>, which prewarms the puller and waits for the source to produce data. If it stays dead, live.php shows the not-on-air page instead of X-Accel'ing the viewer onto an empty/hanging daemon stream. A warm stream (already producing) returns immediately, so only a cold/dead source pays the wait — same as the legacy path. Non-proxy off-air was already covered (the process block waits for the playlist, and A3 gates on isStreamFed/has_data). Box-validated: dead-source proxy → not-on-air video after on_demand_wait_time (20s here); live-source proxy → fast play via the daemon (4.4 MB valid TS). PHPStan clean, 11 FanoutClient tests. Refs ADR 0003 (Phase C). Daemon: XC_VM_Binaries 0.4.0.