This fix addresses compatibility issues with Xtream Codes compatible apps
that were causing:
1. "Checking server" infinite loop - missing active_cons field
2. App crash on login - incorrect data types and extra fields
Changes:
- Add missing 'active_cons' field to user_info
- Convert numeric fields to strings (is_trial, active_cons, created_at,
max_connections, port, https_port, rtmp_port) to match XC API format
- Add 'process: true' to server_info (required by some apps)
- Remove 'xui' and 'version' fields from server_info (not in XC API)
- Set timezone to empty string (matches XC API behavior)
Tested against working Xtream Codes server to verify response format.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEM:
Some MPEG-TS streams have corrupted PMT (Program Map Table) where
ffprobe incorrectly reports the audio codec as AC3 with sample_rate=0
and channels=0, when the actual audio is AAC ADTS. This caused
streams to fail to start.
SOLUTION:
1. skip_ffprobe: Skip codec detection via ffprobe and assume h264/aac
2. force_input_acodec: Force FFmpeg to interpret audio as a specific codec
CHANGES:
Backend:
- Added skip_ffprobe logic in CoreUtilities.php to bypass ffprobe
- Creates synthetic codec info (h264 video, aac audio) when enabled
Database:
- Added argument ID 20 (force_input_acodec) to streams_arguments
- Added argument ID 21 (skip_ffprobe) to streams_arguments
- Created migration file for existing installations
Admin UI:
- Added Skip FFProbe checkbox to stream edit form
- Added Force Input Audio Codec text field to stream edit form
- Added save logic for both options in admin_api.php (radio + live)
USAGE:
- Enable Skip FFProbe for streams with corrupted PMT metadata
- Set Force Input Audio Codec to 'aac' or 'ac3' as needed
- Streams using skip_ffprobe should have enable_transcode=0