What happened?
I load a live MPEG-TS channel whose audio PID arrives with an unknown codec at open time; the probe then settles on mp3. The payload is actually DTS-HD (core sync 7F FE 80 01 + extension substream 64 58 20 25). Every packet fails in mp3float with Header missing, the AudioBridge never emits a packet (fed=64 decoded=0 rejected=64), and the session sits in waitingToPlay / stalls after the first frame. The sample rate / channel count the bridge is initialised with changes per run (16000, 32000, 44100 Hz mono, once 48000 stereo), which also points at misdetection. Other players (and KSPlayer after I added byte sniffing on my side) play the same channel with sound. I expected the engine to recognise the real codec, or at least fall back to video-only instead of stalling.
Steps to reproduce
engine.load(url:) on the live .ts stream of this channel (IPTV provider, channel "24/7: Breaking Bad"; I can share the URL privately)
Observe [Demuxer] stream[1] type=audio codec=mp3 0x0 and continuous [mp3float] Header missing
AudioBridge logs AE#396 (no encoded audio), native host stalls
AetherEngine version or commit SHA
7.15.1
Host app
Custom / my own integration
Platform
tvOS
OS version
27
Device / chip
ATV 4K Gen3
Playback path
Native AVPlayer
Source media (for playback bugs)
Source media (for playback bugs) Live MPEG-TS, H.264 High 4.1 1920x1080 23.976, audio PID signalled/probed as mp3 but carrying DTS-HD: core frame 2012 B (48 kHz, 5 ch, 512 samples) + extension 1728 B = 3740 B per frame. First audio bytes: 7f fe 80 01 fc 3c 7d b2 77 00 0d 3b 80 09 ef 7b.
Error codes / log lines
[Demuxer] stream[1] type=audio codec=mp3 0x0
[HLSVideoEngine] audio: codec=mp3 (bridge required), decoding + FLAC re-encode
[AudioBridge] init: mode=surroundCompat encoder=flac srcCodec=86017 sampleRate=32000 sourceChannels=1 encoderChannels=1 bitRate=VBR (source=container, container=1, decoder=1)
Last message repeated 2178 times: [mp3float @ 0x133880340] [error] Header missing
[AudioBridge] ERROR: AE#396 the bridge has produced no encoded audio at all (mode=surroundCompat, encoder=flac, frame=2304): fed=64 decoded=0 enqueued=0 emitted=0 rejected=64 lastDecodeError=Invalid data found when processing input (-1094995529).
[NativeAVPlayerHost] #1 playbackStalled
Anything else
On the KSPlayer side I fixed this by collecting ~24 KB of the rejected audio payload, looking for a chain of ≥3 valid frames per candidate codec (ADTS, LATM, AC3, E-AC3, MP2, MP3, DTS/DTS-HD where the frame length is the distance to the next core sync), and reopening the decoder with the detected codec plus its parser. Timestamps of the parser-split frames then needed smoothing (±24 ms jitter otherwise). Happy to share the code or a raw audio sample.
What happened?
I load a live MPEG-TS channel whose audio PID arrives with an unknown codec at open time; the probe then settles on mp3. The payload is actually DTS-HD (core sync 7F FE 80 01 + extension substream 64 58 20 25). Every packet fails in mp3float with Header missing, the AudioBridge never emits a packet (fed=64 decoded=0 rejected=64), and the session sits in waitingToPlay / stalls after the first frame. The sample rate / channel count the bridge is initialised with changes per run (16000, 32000, 44100 Hz mono, once 48000 stereo), which also points at misdetection. Other players (and KSPlayer after I added byte sniffing on my side) play the same channel with sound. I expected the engine to recognise the real codec, or at least fall back to video-only instead of stalling.
Steps to reproduce
engine.load(url:) on the live .ts stream of this channel (IPTV provider, channel "24/7: Breaking Bad"; I can share the URL privately)
Observe [Demuxer] stream[1] type=audio codec=mp3 0x0 and continuous [mp3float] Header missing
AudioBridge logs AE#396 (no encoded audio), native host stalls
AetherEngine version or commit SHA
7.15.1
Host app
Custom / my own integration
Platform
tvOS
OS version
27
Device / chip
ATV 4K Gen3
Playback path
Native AVPlayer
Source media (for playback bugs)
Source media (for playback bugs) Live MPEG-TS, H.264 High 4.1 1920x1080 23.976, audio PID signalled/probed as mp3 but carrying DTS-HD: core frame 2012 B (48 kHz, 5 ch, 512 samples) + extension 1728 B = 3740 B per frame. First audio bytes: 7f fe 80 01 fc 3c 7d b2 77 00 0d 3b 80 09 ef 7b.
Error codes / log lines
Anything else
On the KSPlayer side I fixed this by collecting ~24 KB of the rejected audio payload, looking for a chain of ≥3 valid frames per candidate codec (ADTS, LATM, AC3, E-AC3, MP2, MP3, DTS/DTS-HD where the frame length is the distance to the next core sync), and reopening the decoder with the detected codec plus its parser. Timestamps of the parser-split frames then needed smoothing (±24 ms jitter otherwise). Happy to share the code or a raw audio sample.