aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder_api.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/decoder_api.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/decoder_api.c b/src/decoder_api.c
index 93e4790c9..c777084c8 100644
--- a/src/decoder_api.c
+++ b/src/decoder_api.c
@@ -189,12 +189,18 @@ update_stream_tag(struct decoder *decoder, struct input_stream *is)
{
struct tag *tag;
- if (is == NULL)
- return false;
-
- tag = input_stream_tag(is);
- if (tag == NULL)
- return false;
+ tag = is != NULL
+ ? input_stream_tag(is)
+ : NULL;
+ if (tag == NULL) {
+ tag = decoder->song_tag;
+ if (tag == NULL)
+ return false;
+
+ /* no stream tag present - submit the song tag
+ instead */
+ decoder->song_tag = NULL;
+ }
if (decoder->stream_tag != NULL)
tag_free(decoder->stream_tag);