This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Feature requests · Rockbox frontpage
FS#8455 - Some songs do not get played in whole.
Attached to Project:
Rockbox
Opened by Ian D. (GuitarRocker2562) - Sunday, 13 January 2008, 20:47 GMT+2
Last edited by Steve Bavin (pondlife) - Sunday, 09 March 2008, 10:30 GMT+2
Opened by Ian D. (GuitarRocker2562) - Sunday, 13 January 2008, 20:47 GMT+2
Last edited by Steve Bavin (pondlife) - Sunday, 09 March 2008, 10:30 GMT+2
|
DetailsI have had this problem with most if not all of the more recent rockbox builds (last couple of months). Right now I am using version r16053 from the 11th of January, 2008. The problem I am having is that sometimes, for no reason the first 5 seconds of a song play and then rockbox skips to the next track. The other day I had this happen for a whole album (Sublime - 40 oz. to Freedom). I have had this problem on OGG, MP3, AAC, and FLAC coded songs, and so it seems the type of file doesn't make a difference. I have an 80GB iPod video, but this problem may or may not happen on other platforms, see if it happens to you. Attatched is a copy of my settings.
|
This task depends upon
Closed by Steve Bavin (pondlife)
Sunday, 09 March 2008, 10:30 GMT+2
Reason for closing: Fixed
Additional comments about closing: (we think)
Sunday, 09 March 2008, 10:30 GMT+2
Reason for closing: Fixed
Additional comments about closing: (we think)
Maybe watching the buffering thread debug screen could be informative.
- Play an album (or playlist) from the start. It will play through to, say, track 7 fine.
- Track 8 plays partway through, then rebuffering occurs and track 8 starts playing from the beginning again!
- The WPS displays the ID3 data etc. for track 8 (and 9 as next track) correctly.
- The playlist index is actually track 9, and displays as, say 9 of 13.
Occasionally, playback will proceed fine, but most of the time this happens when natural playback through an album is allowed.
Very occasionally, rather than restarting the current track, it will skip forward many tracks (e.g. to track 18). In this case the resultant playlist index is still one too high.
I'm using the H300 sim, with album art on Cabbiev2.
- r16422 will play through albums fine (tested 4 times, worked 4 times)
- r16424 was fine (tested 3 times, worked 3 times)
- r16425 shows the above symptoms (tested once, failed once)
- r16426 shows the above symptoms (tested 3 times, failed 3 times)
- playback_update_lpo_late.patch seems to fix the problem I've been having where rebuffering causes playback to go screwy. The idea is that whilst we want most of the track transition to happen asap (for a responsive UI), we don't want to update last_peek_offset until we have completed transition, so buffering won't attempt to overwrite the currently playing data.
- playback_scrap_les.patch attempts to get rid of the lowbuffer_event_sent variable, instead using queue functions to prevent multiple Q_AUDIO_FILL_BUFFER entries. I don't think this changes the functionality, but it is simpler and less use of global variables is normally a good thing.
I reserve the right to have grabbed the wrong end of the stick here, but if Nico_P, Lear and any other people who really understand playback.c could have a look this might be helpful. And of course, if people could test them that would be good too. In particular check (a) rapid manual track skipping, (b) use of auto-change dir.
playback_scrap_les.patch might still be a good idea, perhaps jhMikeS and Nico_P could comment.
The nature of the failure has chanegd somewhat. Where before your fix, on reaching the watermark, the buffering thread would pull in data up to the end of that file and then pause until complete exhausion, with remaining stuck at zero, and then playback would snap to the wrong track, now the buffering thread pulls in subsequent files as it's supposed to.
It just doesn't seem to pull in the *right* subsequent files.
Ian, Steve or Nick - If could you can come up with a better recipe (or even just a complete re-description of the problem), that might be useful. Does the problem occur when buffering starts, or during, or on completion?
Are you using album art? Do you have dircache enabled? How about scrobbling or gather runtime data? Does it happen with the default config?
Does it happen in the simulator, or only on target?
In case you didn't know, if you go onto the buffering debug screen, you can use the up and down keys to skip tracks.
When it happens I've seen twice track count = 3. And it was not in the middle of buffering. I think each time I've seen it I had done a fwd or back skip within a couple of tracks of where the problem manifests itself. All the times I've seen the problem I was using album art, dircache, and runtime data. No scrobbling and I don't know about the default config.
I can't easily change the config to a great extent or simulate things until next week, when I'll be back around a machine with a compiler and USB support; but I'm reading through the playback.c / buffering.c code, and will post more if I see anything suspicious.
My bug sounds identical to the bug pondlife@ is describing, and quite different from the one that originated this bug.