diff options
Diffstat (limited to 'src/decoder_api.c')
-rw-r--r-- | src/decoder_api.c | 18 |
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); |