Simple playlists w/cuesheet as FIRST entry not handled correctly (patch included)
Audacious will fail to play and may show incorrect title for a cuesheet if it is the FIRST entry in a "simple" playlist (ie. .m3u, .pls, etc. that do not contain detailed info.), however as long as the first entry is NOT a cuesheet, all entries are handled properly. Bug can also be avoided by starting audacious with "-e" (so that the first item does not immediately start playing), leading me to believe that it's a threading/scanning issue.
I was able to fix the issue by forcing a partial rescan of cuesheet entries (but without replacing the actual tuple data, as that replaces the tuple info. (ie. title, artist) from the cuesheet with that of the tags contained in the actual song). The patches included show the changes I found needed to address this issue. Please review, as you may be able to better address the issue.
Steps to reproduce:
1) Create simple .m3u playlist with valid cuesheet reference (xxx.cue?#) as first entry followed by one or more entries (cuesheet or otherwise).
2) Run audacious ($>audacious myplaylist.m3u)
3) First entry (the cuesheet entry) may/may not start playing and may/may not have correct title shown.
4) Advance to next/another entry, which will play correctly.
5) Try to play the first entry again, should fail ("Error reading metadata") and start playing next entry.
6) [Playlist].[Refresh] playlist, and all then seems to be well.
#2 Updated by Jim Turner about 1 year ago
- File xbug.m3u xbug.m3u added
- File DarkSideOfTheMoon_PinkFloyd.cue DarkSideOfTheMoon_PinkFloyd.cue added
You will need to change the names and paths of the songs to some music files on your system. I tested several cases, but here's one attached:
#3 Updated by John Lindgren about 1 year ago
- % Done changed from 0 to 100
- Target version set to 4.0
- Status changed from New to Closed
- Category set to libaudcore
- Affects version 3.10.1 added
- Affects version deleted (
Thanks for the test case. The scanner.cc patch was somewhat along the right lines. I simplified it a bit: