|
All checks were successful
continuous-integration/drone/push Build is passing
The /nowplaying handler called source.duration/source.elapsed on the live crossfaded source. Since it is polled every second by the web player, those cross-thread source queries contended with the crossfade's own clock during a transition and wedged the streaming clock — a few seconds of audio then a frozen buffer looping on air, only ever with a listener connected. Capture duration and the track start time in a synchronous on_metadata callback (which runs in the clock thread, where touching the source is safe) and have /nowplaying read those refs instead — position is just the wall-clock time since the track started. No handler touches the source outside its clock anymore, so the 3 s crossfade is safe again. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apple-touch-icon.png | ||
| Dockerfile | ||
| favicon.svg | ||
| icon-192.png | ||
| icon-512.png | ||
| icon-maskable-512.png | ||
| icon-maskable.svg | ||
| index.html | ||
| ingest_proxy.liq | ||
| manifest.webmanifest | ||
| radio.liq | ||
| sw.js | ||
| web.liq | ||