Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
player/Thread: merge tag for songs have range instead of replacing wi…
…th `chunk->tag` While playing first track of cue file on satellite setup, the tag of currentsong will loss. This is due to `chunk->tag` overwriting song tag in `PlayerControl::PlayChunk`. In local cue files, `song_tag` is used to form `stream_tag` and merged into `chunk->tag`, but `song_tag` only works for local files. So the `chunk->tag` is decided by decoded tag from audio files, which in cue's case is the whole album file and doesn't contain track metadata. This commit fixes the issue by merging song's tag with `chunk->tag` (`chunk->tag` prioritized) in `PlayerControl::LockUpdateSongTag`, only when the song's `end_time` is not zero. As the `end_time` will only be set on cue virtual songs or with `rangeid` command, the impact to current behaviour is minimized: changes only happen when user uses `rangeid` command on a remote song, and it's expected that song tags in database should beoverwritten with tags provided by remote stream instead of merged.
- Loading branch information