GNOME Bugzilla – Bug 346287
shows wrong song playing
Last modified: 2006-12-13 07:09:22 UTC
Please describe the problem: every once a while rhythmbox will again play the same song it has just played, but update the UI for the next one already. I haven't found a pattern to this yet. attaching a screenshot. Steps to reproduce: I can't really reproduce it. Actual results: Expected results: Does this happen every time? Other information:
Created attachment 68218 [details] screenshot showing rhythmbox playing forgot to mention in the report that the *list* actually shows the correct song as indicated by the playing arrow.
Created attachment 75664 [details] Screenshot showing bug on my computer I am also having this issue. I have attached one screenshot illustrating this, although I have another which shows the same bug with a different song.
Steps to reproduce: 1. Choose a relatively small set of tracks. 2. Turn on 'Repeat' and 'Shuffle'. 3. Drag the slider through each song, and let it play the last few seconds, so that it switches tracks itself. Eventually, Rhythmbox will play the same song twice in a row, but the words at the top will change to a different song. (I'm using CVS HEAD.)
*** Bug 367713 has been marked as a duplicate of this bug. ***
Mark as still in HEAD (as per comment #3).
I've stepped through it with gdb. When the song gets repeated, rb_history_append is called with the correct (repeated) song. After this, however, rb_history_current returns a null pointer. Hence, in rb_random_play_order_go_next, the first song in the history is marked as playing, not the one that actually *is* playing. So, check the history code.
Created attachment 75904 [details] [review] Correct the history's current song, when appending repeat. Yes, when appending a repeat of the current song, hist->priv->current will be set to the end pointer. This patch checks for that case, and points it to the last song of the history instead. Now, this will produce unexpected behaviour if hist->priv->current is in the middle of the history at the time. Will that ever happen? Also, I removed an assertion that is no longer true in this case; that might not be the right thing to do...
I've been using this patch against 0.9.6, and it seems to work finely. Thanks.
Sorry for taking so long to look at this, I've committed it to cvs. Thanks.