Skip to content

Audio-only live stream resumes using outdated buffer, then frequently fails

Platform:

  • MacOS 11.6.5 (intel)

Versions tried:

Procedure:

  1. Create a playlist with an audio-only live stream URL, such as http://ais-sa3.cdnstream1.com/2606_128.aac the history of which can be found here: https://live.mystreamplayer.com/bagel
  2. Begin playback in VLC and let it go for a few minutes.
  3. Stop playback.
  4. Wait a least five minutes.
  5. Resume playback.
  6. On rare occasions, playback resumes at the current point in live time. If so, wait a few minutes and return to Step 3.
  7. If playback has resumed using the old buffer, let it continue.
  8. After about 30 seconds, one of these things will happen:
    1. Fresh audio data will be fetched, and playback will suddenly catch up with "live" once more
    2. or playback will stop with errors like these in the log:
prefetch debug: resuming
main debug: toggling pause
prefetch debug: end of stream
macosx debug: Activated assertion NoIdleSleepAssertion through IOKit (35093)
main debug: EOF reached
faad warning: Unexpected channel configuration change
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: waiting decoder fifos to empty
main debug: killing decoder fourcc `mp4a'
main debug: removing module "faad"
main debug: removing module "samplerate"
main debug: removing module "scaletempo"
auhal debug: Stopping the auhal module
main debug: removing module "float_mixer"
main debug: keeping audio output
main debug: removing module "es"
main debug: removing module "mpeg4audio"
main debug: removing module "record"
main debug: removing module "prefetch"
main debug: removing module "http"
main debug: Program doesn't contain anymore ES
main debug: dead input
main debug: changing item without a request (current 1/2)
main debug: nothing to play
macosx debug: Playback has been ended
macosx debug: Releasing IOKit system sleep blocker (35093)

In my opinion, neither of the two outcomes in Step 8 is good. I think that if a live stream's buffer is several minutes out of date, it should be discarded before playback resumes.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information