aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--src/decoder/DecoderThread.cxx6
2 files changed, 6 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 03400d83a..b77559f56 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ ver 0.19.10 (not yet released)
- smbclient: fix DFF playback
* decoder
- ffmpeg: improve seeking accuracy
+ - fix stuck stream tags
* encoder
- opus: fix bogus granulepos
* output
diff --git a/src/decoder/DecoderThread.cxx b/src/decoder/DecoderThread.cxx
index dd5518b98..b4362a548 100644
--- a/src/decoder/DecoderThread.cxx
+++ b/src/decoder/DecoderThread.cxx
@@ -380,7 +380,11 @@ decoder_run_song(DecoderControl &dc,
const DetachedSong &song, const char *uri, Path path_fs)
{
Decoder decoder(dc, dc.start_time.IsPositive(),
- new Tag(song.GetTag()));
+ /* pass the song tag only if it's
+ authoritative, i.e. if it's a local file -
+ tags on "stream" songs are just remembered
+ from the last time we played it*/
+ song.IsFile() ? new Tag(song.GetTag()) : nullptr);
int ret;
dc.state = DecoderState::START;