FS#8667 - Disk spins unnecessarily while playing a playlist with dircache disabled

Attached to Project: Rockbox
Opened by Nils Wallménius (nls) - Saturday, 01 March 2008, 11:10 GMT
Last edited by Nils Wallménius (nls) - Friday, 07 March 2008, 17:02 GMT
Task Type Bugs
Category Music playback
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


If I play a regular m3u playlist on my h320 the disk is spun up shortly at each automatic trackchange. It doesn't happen if dircache is enabled nor does it happen if I just play a directory. Trying with the simulator it opens the next file in the playlist at the transition while playing the playlist.
This task depends upon

Closed by  Nils Wallménius (nls)
Friday, 07 March 2008, 17:02 GMT
Reason for closing:  Duplicate
Additional comments about closing:  Duplicate of  FS#8601 
Comment by Paul Louden (Llorean) - Saturday, 01 March 2008, 17:58 GMT
Which SVN revision is the most recent you've tested this with? As this doesn't happen to everyone, can you also give more specific directions for how to reproduce it with current SVN? Have you tried resetting your settings?
Comment by Nils Wallménius (nls) - Sunday, 02 March 2008, 01:13 GMT
This happens with r16460 (official build from the site) playing oggs in a playlist, with all settings reset to their defaults.
So a recipe would be:
* reset settings
* restart
* play a playlist
Comment by Jonathan Gordon (jdgordon) - Sunday, 02 March 2008, 01:16 GMT
is it only oggs which do it? or all tracks?
Comment by Nils Wallménius (nls) - Sunday, 02 March 2008, 01:17 GMT
I only have oggs on the player right now but will do more testing in the morning :)
Comment by Nils Wallménius (nls) - Sunday, 02 March 2008, 09:29 GMT
mp3 behaves exactly the same, looking at the buffering debug screen during a track transition, pcm falls quickly (usefl, alloc and real are almost full) while the disk spins up and sometimes gets to 0 so this seems to be a likely cause for stuttering I have been hearing in the transitions for some time...

Edit: did a binary search for the commit that this behavior started with, r16019 is the offending one.

Edit 2: The cause seems to be the added call to playlist_peak() inside audio_check_new_track().
Comment by Steve Bavin (pondlife) - Tuesday, 04 March 2008, 11:09 GMT
Could playlist_check() be used instead of playlist_peek() ?
Comment by Nils Wallménius (nls) - Tuesday, 04 March 2008, 14:24 GMT
playlist_check() always returns true in dirplay mode (playlist.c:2494) so that will not work :(