Skip to content

Live 1080p50 H.264 TS: intermittent freezes, AVPlayer reports -12888 (playlist unchanged > 1.5 × target duration) and client "running thin" #670

Description

@Simpendaal

What happened?

On live MPEG-TS streams (H.264 1080p50, AAC), playback through AetherEngine freezes briefly every so often; the host OSD pops up because the player drops out of the playing state for a moment. The same stream plays without any issue in KSPlayer (a 34 min session in the same log: 0 dropped frames at 49.99 fps) and in QuickTime. VLC on Mac shows similar freezes.

In the log, the live HLS producer cuts segments against a 0.5 s cut target, but the actual segments come out at 1.0 to 2.4 s (GOP-bound). TARGETDURATION is then sealed at 1 to 3 s. AVPlayer repeatedly reports CoreMediaErrorDomain -12888 ("Playlist File unchanged for longer than 1.5 * target duration") on the local media.m3u8, and #524 fires 287 times with only about 1.5 to 2 s of fetched runway. At the same moments AVSampleBufferVideoRenderer toggles readyForDisplay NO → YES, which matches the visible freezes.

Steps to reproduce

Play a live H.264 1080p50 MPEG-TS stream (sample capture available, see below) through AetherEngine on tvOS.
Watch for a few minutes.
The picture freezes briefly at irregular intervals; -12888 and #524 show up in the log at the same moments.

AetherEngine version or commit SHA

7.17.1

Host app

Custom / my own integration

Platform

tvOS

OS version

27

Device / chip

Apple Tv

Playback path

Native AVPlayer

Source media (for playback bugs)

Live MPEG-TS over HTTP, H.264 High@4.2 1920x1080, 50 fps, SDR, fieldOrder=1, AAC ADTS (stream-copied). A 53 MB TS capture of the stream is available on request.

Error codes / log lines

[HLSSegmentProducer] init OK (baseIndex=0, segments=0, targetDur=0.500s, srcVideoTb=1/90000) audio=stream-copy inTb=1/90000
[HLSVideoEngine] live TARGETDURATION sealed at 1s (holdback 3.000s): max EXTINF 1.000s, 1.5 x cut target 0.750s, no measured floor (segments are cut here, not ingested)
[HLSSegmentProducer] live seg-67 finalized: start=68.040s dur=1.120s
[NativeAVPlayerHost] #9 errorLog code=-12888 domain=CoreMediaErrorDomain uri=http://127.0.0.1:52900/.../media.m3u8 'Playlist File unchanged for longer than 1.5 * target duration'
[AetherEngine] #524 the client is running thin: it holds 1.48s of fetched runway, playhead 5421.82s against a seekable edge of 5436.58s (which already carries the holdback)

-12888 appeared 188 times over three sessions; #524 appeared 287 times.

Anything else

The TARGETDURATION sealed at 1 s is exceeded by later segments (for example 1.120 s), and with a 0.75 s staleness basis the playlist can easily look "unchanged" to AVPlayer whenever a GOP runs long.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions