Skip to content

v0.5.1 — Bug fix release

Choose a tag to compare

@serrebidev serrebidev released this 05 Sep 18:24
· 25 commits to master since this release

v0.5.1 — Bug fix release

Fixed

  • AirPlay pause now works correctly. Previously, pausing a video/IPTV stream on AirPlay killed the RAOP session entirely (heard as "Paused." then "Finished."), and pausing a direct-audio stream kept playing silently. The runner now waits on wake when paused, and pause cancels the stream task for non-ffmpeg sources.
  • Sleep timer and auto-reconnect now fire for URL and file casts. They previously only worked for screen/window captures because _cast_started was only set in _cast_capture.
  • Multi-room relay teardown no longer kills every relay when one device fails. Error paths now pass their specific relay to _stop_relay(only=) instead of calling the blanket teardown.
  • Multi-device Stop now disconnects all Chromecasts and AirPlay sessions, not just the most recent one. Added per-device tracking via _casts and _atvs dicts.
  • Endless WAV stream RIFF size no longer overflows signed 32-bit. ENDLESS_WAV_BYTES is now 44 bytes short of the signed ceiling so the RIFF field and Content-Length header both stay non-negative for receivers that parse sizes as signed int32 (Sonos).
  • Codec probing now happens once per relay instead of on every ffmpeg spawn. _make_relay probes once; supervisor restarts reuse the cached answer.
  • Unknown content types are no longer classified as audio. probe_media leaves is_audio=None when nothing identifies the type.
  • live.m3u8 query strings no longer bypass the trailing-edge playlist view.
  • Missing do_HEAD on HlsFileHandler caused playlist Content-Length mismatch with GET body.
  • Supervisor race after stop() guarded: _spawn_ffmpeg bails if self.root is None.
  • Dead branch head.startswith(b"ftyp") removed (ftyp is always at offset 4).
  • Two Cast devices sharing a name no longer collapse into one entry (appends IP to disambiguate).