Files
XC_VM/src/Streaming
Divarion_D 5200a66d6a refactor(streaming): E3 — daemon-only client HLS + send-message overlay via the daemon
Complete the client cutover: HLS is now served to clients ONLY by the daemon, and
the admin "send message" text overlay (previously burned in by the PHP byte path)
moves to the daemon so the cutover doesn't regress it.

E3 (client HLS = daemon-only):
- live.php m3u8 arm: drop the legacy generateHLS fallback — a fed stream serves the
  daemon's in-RAM playlist (plain or AES-128), else not-on-air (like the TS arm).
- segment.php: LIVE segments must be daemon tokens ("<id>_d<seq>.ts") → X-Accel to
  the daemon; a non-daemon LIVE segment now 404s instead of serving on-disk tmpfs.
  Removed the dead legacy LIVE branch (encrypt-on-read + /xc_hls/) and its orphaned
  SignalSender/LegacyInitializer/AsyncFileOperations imports; kept the ARCHIVE
  (timeshift) path untouched. Cleaned empty-if/else guard artifacts along the way.
- On-disk HLS stays (Phase F cancelled) only for timeshift/thumb/.analyse/Monitor —
  never served to clients.

Send-message overlay via the daemon (feature parity — see the daemon's 0.9.0):
- FanoutClient::sendSignal → control POST /signal/<uuid>; InternalApiController's
  signal_send pushes there (legacy tmpfs signal file kept as a harmless no-op).
- segment.php passes ?c=<uuid>&vc=<codec> and live.php passes &vc=<codec> so the
  daemon can burn the banner onto that viewer's HLS segment / TS window.
- service launches the daemon with -ffmpeg (newest bundled) + -font free-sans.ttf.

php -l + make gates green.
2026-08-20 19:23:23 +03:00
..