๐ XC_VM v2.5.0
โจ Major Features
๐๏ธ Smart Activation Codes
- Added a complete Smart Activation Codes system for generating and managing pre-generated subscriber vouchers.
- Added automatic companion line creation with activation delayed until the code is first used.
- Added admin and reseller management, including generation wizard, batch management, mass editing and exports.
- Added an activation portal and public activation API.
- Added transactional credit handling and audit logging for reseller-generated codes.
- Added support for dedicated activation-code access routes and portal configuration.
๐ xc_fanout Encoder Supervision
- Added configurable encoder supervision by
xc_fanout, allowing the daemon to run and monitor live encoders instead of spawning a PHP watchdog for every stream. - Added the
fanout_supervisesetting with a safe default of disabled for existing installations. - Synchronized the supervision setting into the daemon configuration.
- Added automatic reconciliation of supervised streams back into the panel.
- Added health policies, source forcing and daemon-side supervision handling.
- Added stream command tracking that clearly identifies whether a stream is running under
xc_fanoutor local FFmpeg supervision. - Added stream management safeguards so stop, force and rogue-process cleanup correctly account for daemon-owned streams.
๐ก Reliable Fanout Ingest
- Added
IngestFeederfor reliable delivery of MPEG-TS data from PHP producers intoxc_fanout. - Prevented short non-blocking socket writes from silently dropping or tearing TS packets.
- Added buffered retry handling and reconnects after daemon restarts.
- Added packet-aligned recovery when an ingest connection fails mid-packet.
- Added bounded backlog management that drops complete old packets instead of blocking the producer.
- Added support for carrying HLS encryption key/IV information into the daemon ingest path.
๐ก Streaming & HLS
- Improved daemon delivery for delayed, LLOD and loopback channels.
- Added proper feed handling for PHP-based producers through the daemon ingest socket.
- Added enforcement of connection limits and viewer kicks for daemon-managed streams.
- Fixed VOD and catch-up HTTP byte ranges and seeking behavior.
- Fixed catch-up routing, proxy-only authentication checks and adaptive variant handling.
- Fixed live HLS playlists so segment numbers are not unnecessarily renumbered when segment durations exceed 10 seconds.
- Fixed on-demand startup waits to respect the configured
on_demand_wait_timeinstead of using a fixed delay. - Fixed stale PID and monitor state left behind by failed previous runs.
- Improved HLS sequence handling and stream state initialization.
- Added support for identifying the producer responsible for each live stream and preventing remuxing through an outdated daemon.
๐ก๏ธ Monitoring & Reliability
- Improved stream monitoring with FPS-drop based restarts.
- Improved priority backup source ordering and handling of failed probes.
- Added fanout health policy and supervision reconciliation.
- Fixed stream supervision state synchronization between the panel and daemon.
- Improved stream information population for supervised streams.
- Added producer, CPU and memory information to the admin streams page.
- Fixed connection limiting so the correct client connection/IP is used consistently.
- Improved cleanup of stale process state and asynchronous file operations.
- Fixed an asynchronous file-cache TTL bug that could keep stale data for far longer than intended.
- Fixed inotify waits that could block indefinitely when a file never appeared.
๐ Admin & Configuration
- Added Fanout Encoder Supervision to the admin Streaming settings.
- Moved On-Demand Probe Size configuration into the Streaming section.
- Improved stream management visibility by showing each stream's producer and resource usage.
- Fixed duplicate per-page selectors on mass delete/edit pages.
- Added safeguards preventing update and rollback operations from being executed without root privileges.
- Simplified value retrieval in
sourceContext.
๐ Logging & Diagnostics
- Error logs now record the panel version at the exact time the error occurred, making version-specific troubleshooting much easier.
- Improved stream diagnostics by explicitly recording whether a process belongs to
xc_fanoutor local FFmpeg execution. - Added documentation covering daemon feeds, viewer kicks, HLS keys and byte ranges.
- Added documentation for stream supervision and the native remuxer.
๐งช Testing & Development
- Added a shared test stream generator with a common TS encoder and keyframe-aligned joins.
- Added launcher support for synthetic stream testing.
- Added stronger assertions to fanout configuration tests.
- Expanded tests around encoder supervision and reliable daemon ingest.
- Removed obsolete DTS audio test helper scripts after consolidating the test-stream tooling.