Rockbox

Tasklist

FS#11476 - Fast Forward makes Musepack (SV8) "data abort"

Attached to Project: Rockbox
Opened by Leo Witt (some-xtc) - Tuesday, 13 July 2010, 19:41 GMT
Last edited by Andree Buschmann (Buschel) - Saturday, 02 October 2010, 17:44 GMT
Task Type Bugs
Category Music playback
Status Closed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

1. Player: Sansa Clip+ 8gb
2. Player Sansa Fuze V1 2gb
Version: 27409-100713
microSD: 8gb

Hello,

this is my first bugreport.

I have some strange behaviours when I want to play Musepack (SV8).

Sometimes, when I fast-forward (even a little) a .mpc-track, my Clip+ & Fuze V1 goes "data abort".

For example my Clip+ says this:
Data abort
at 30006638
(domain 0, fault 8)
address 0xFBFAF60C

And my Fuze V1 says this:
Prefetch abort
at BB06574
FSR 0xFF
(domain 15, fault 15)

I've also tried the official 3.6 release for Fuve V1, but this is what happened too:
Data abort
at 30801020
FSR 0x8
(domain 0, fault 8)
adress 0xD106D033

or:

Data abort
at 30801020
FSR 0x8
(domain 0, fault 8)
adress 0ACFC87EF

And this is what I get sometimes with the 3.6 release, when I just wanted to start a .mpc :
Undefined instruction
at 2F900000


Hopefully, you guys can fix this.


Greetings
This task depends upon

Closed by  Andree Buschmann (Buschel)
Saturday, 02 October 2010, 17:44 GMT
Reason for closing:  Fixed
Additional comments about closing:  Submitted with r28197
Comment by Leo Witt (some-xtc) - Tuesday, 13 July 2010, 20:06 GMT
Additional information:
These "data aborts" appears basically at the end of a file, after I made a ffwd.
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 14:47 GMT
Okay,

the next surprise is, that Musepack SV7 works fine.
Testet on Sansa Clip+ 8gb & Fuze V1 2gb (Version: 27409-100713): no such problems occurs.

So the problem child is the Stream Version 8....
Comment by Andree Buschmann (Buschel) - Wednesday, 14 July 2010, 18:32 GMT
I have just checked the files from http://samples.mplayerhq.hu/A-codecs/musepack/sv8/ on PCsim an my iPod Video -- no problems at all. Could also please check those files and give an upate whether those show the same problems on your player?
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 19:25 GMT
There are no problems with the files from the site.
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 19:53 GMT
Hold on! ....it is the same problen with "Choral.mpc" for example:
Data abort
at 30006638
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 20:09 GMT
Additional information:
this problem only occurs when the next file on the playlist is "CPE.mpc"
Comment by Andree Buschmann (Buschel) - Wednesday, 14 July 2010, 20:41 GMT
Can you attach our config.cfg here? Maybe you are using some other settings that I do not use (e.g. crossfade).
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 21:04 GMT
this is the config.cfg from my Clip+
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 21:11 GMT
I have also testet this issue on my Sansa e260 & M:Robe 100 .... no problems at all.
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 21:13 GMT
Maybe this problem limit oneself to the Sansa AMS models?
Comment by Andree Buschmann (Buschel) - Wednesday, 14 July 2010, 21:27 GMT
Still not reproducible. The error adress points to a failure when using memset(). There are only few calls of memset in the decoder engine...
Are you able to build rockbox on your own?
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 21:29 GMT
No, sorry.
Comment by Andree Buschmann (Buschel) - Wednesday, 14 July 2010, 21:35 GMT
Please try to use the attached 4 versions (fuze v1 build). Rename each file from "mpc.codec.v0x" to "mpc.codec" and copy it to /.rockbox/codecs
Is there any difference in behaviour?

The codec was built against r27405.
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 22:25 GMT
with .v01 the same situation:
I play "Choral.mpc" and if I ffwd to the end or just even switch to the next track "CPE.mpc" I get this:
Data abort
at 30006760
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 22:37 GMT
with .v02 (same situation as above)

- ffwd to the end:
Data abort
at 30006760
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C

- just switch to the next track "CPE.mpc"
Data abort
at 300068D8
FSR 0x8
(domain 0, fault 8)
address 0x8BE11674
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 22:51 GMT
with .v03 the player randomly freeze after ffwd (and the current time shrugs).

sometimes I get this:
Data abort
at 30006760
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C
Comment by Leo Witt (some-xtc) - Wednesday, 14 July 2010, 23:01 GMT
with .v04 it is same like in .v02
I am unable to play "CPE.mpc":
Data abort
at 300068D8
FSR 0x8
(domain 0, fault 8)
address 0x8BE11674
Comment by Andree Buschmann (Buschel) - Thursday, 15 July 2010, 05:38 GMT
Hmm, now it does not crash in memset(), but in the buffering routines of rockbox. To me it seems like the seek (which will trigger data loading and buffering in rockbox's core code) raises a bug in the buffering code that will come up when the next track must be loaded.
Comment by Andree Buschmann (Buschel) - Monday, 30 August 2010, 22:37 GMT
Can you please re-check with r27950?
Comment by Leo Witt (some-xtc) - Tuesday, 31 August 2010, 14:34 GMT
unfortunately ... :(
with r27958 I get various messages, e.g.
Data abort
at 3000677C
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C

Comment by Andree Buschmann (Buschel) - Tuesday, 31 August 2010, 17:36 GMT
Bad... :/ And thanks for still supporting the debugging.

Let's see whether there will be some fixes in the buffering area. I'll keep this task open...

Edit: Btw, is this error happening when playing files from SD or internal Flash?
Comment by Leo Witt (some-xtc) - Thursday, 02 September 2010, 16:36 GMT
Thanks for still debugging!


Call me a nerd, but Musepack sounds just much better than other free codecs :D
__

The error happens on SD and internal Flash with the same Data abort.
Comment by Ivan Pesic (eevan) - Monday, 13 September 2010, 20:27 GMT
Hello to all!

Here's my data regarding this issue. I have Fuze V2. The problem occurs on track change, both on manual skip and when a player is about to play the next track in a playlist. Also, manual skip sometimes works, but maybe 1 in 10 times. Sometimes (but rarely) it freezes in the WPS when I start the playback and disk access icon stays on, without any message. I should say that Fuze V2 plays SV7 files without any problems. My c200v1 don't have these issues, it plays both SV7 and SV8.

When the backlight is on, WPS is displayed and player should play the next track in a playlist. It freezes with the following message:

Prefetch abort
at E1FD5F16
FSR 0x8
(domain 0, fault 8)

And if the backlight is off when the player should play next track it freezes with:

Undefined instruction
at 0006CD8

Also, sometimes the player freezes with the backlight still off, so I can't see the message. The only thing I can do is a hard reset.

Seeking within the file on my Fuze V2 works fine I guess, but I haven't tested with large files (CD images in mpc format for example).

Weinberg thought in his post (http://forums.rockbox.org/index.php?topic=25705.0) that maybe it has to do with album art, but I tested this both with and without album art in WPS, and it occurs anyway.
And I can also confirm that error happens when the files are on SD card, and internal flash.

Also some answers to Andree:
– It happens on track change. It can play the whole track without seeking, and it crashes on change to the next track in playlist. The error never occured when I fast forward on my player. But If I FF to near the end of a track, it plays until track change and then freezes...
–Files have only APEv2 tags. Nothing else.
–Yes, there is a file which crashes all the time.

I also put one Vorbis file in playlist after SV8 file, and the player didn't crash! The change from Vorbis to SV8 also passed without error, and there are some SV8 files that won't trigger it. It is quite irregular.

I also got:

Prefetch abort
at E1FD5F16
FSR 0xAA
(domain 10, fault 10)

when the player was playing MP3 file and was about to change to SV8, next in the playlist.

I hope this can help you some more...
Comment by Leo Witt (some-xtc) - Monday, 13 September 2010, 22:34 GMT
Hello Ivan,

I have also created a topic in the forum:
http://forums.rockbox.org/index.php?topic=25354.0

Your report (and you are the only one yet) confirms my assumption, that this is a SansaAMS-specific problem.

Maybe this is helpfull to isolate this problem, Andree?
Comment by Andree Buschmann (Buschel) - Wednesday, 29 September 2010, 21:24 GMT
Leo, here is a patch for you to test. Another user stated that this solved seek issues on his clip+.

As I remember you cannot compile for your own I have attached a codec file (to replace your players .rockbox/codecs/mpc.codec) that was built against r28184 for Sansa clip+.

This patch rolls back an optimization I did months ago to allow reasonable speed for seek forward. If this also solves your issue I need to further dig into the code to understand why this introduces errors on clip+ and for sv8 only.

Please let me know your test results,
Andree
Comment by Leo Witt (some-xtc) - Thursday, 30 September 2010, 09:15 GMT
unfortunately I don't have the build r28184, so I used the current (r28187):

The problem is still there on my clip+.
Data abort
at 30006788
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C
Comment by Leo Witt (some-xtc) - Thursday, 30 September 2010, 09:22 GMT
Or this here:
Data abort
at 39F8D6D4
FSR 0x8
(domain 0, fault 8)
address 0xEF54FC7F
Comment by Leo Witt (some-xtc) - Thursday, 30 September 2010, 09:31 GMT
I have also made some other observations:

The error is sometimes and somehow related to the WPS.
Normaly I use cabbiev2.
But when I change the WPS on startup, I get immediately a data abort with the files that previously are playable on cabbiev2.
Comment by Leo Witt (some-xtc) - Thursday, 30 September 2010, 10:04 GMT
For example look here:

with cabbiev2:
Data abort
at 30006788
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C


and with a simple WPS-code:

%wd
%?ia<%ia|%d(2)>
%?id<%id|%d(1)>
%?in<%(%in%) |>%?it<%it|%fn>

I get this:
Data abort
at 300068F0
FSR 0x8
(domain 0, fault 8)
address 0x8BE11674


Tested with the same files (from http://samples.mplayerhq.hu/A-codecs/musepack/sv8/ ), same build (r28187), with your mpc_sv8_seek_v01.patch
Comment by Leo Witt (some-xtc) - Thursday, 30 September 2010, 10:20 GMT
And here is the playlist.
I get always (realy always) a data abort on trackchange from "Choral.mpc" to "CPE.mpc"
Comment by Andree Buschmann (Buschel) - Thursday, 30 September 2010, 21:58 GMT
Another approach (clean-up of different buffering calls) built against r28188.

Please check with sv7 and sv8. Both play and seek fine on pc simulation.
Comment by Leo Witt (some-xtc) - Friday, 01 October 2010, 08:29 GMT
can you upload a compiled mpc.codec please?
Comment by Andree Buschmann (Buschel) - Friday, 01 October 2010, 09:18 GMT
silly me... I had it attached and then pushed the wrong button -- instead of adding a second file I have exchanged the codec-file wioth the patch :/
will add this this evening (in about 8 hours).

Here is the patch.
   mpc.codec (49.4 KiB)
Comment by Leo Witt (some-xtc) - Friday, 01 October 2010, 18:19 GMT
Play and seek works fine, but everytime on trackchange ;(

at 30006788
FSR 0x8
(domain 0, fault 8)
address 0x8BE1154C
Comment by Andree Buschmann (Buschel) - Friday, 01 October 2010, 20:50 GMT
Damn. The crash is happening somewhere in the buffering code, not in the codec part.
Comment by Andree Buschmann (Buschel) - Saturday, 02 October 2010, 16:34 GMT
After lots of printf-debugging I found out that sv8 contains a seek table at the very end of the bitstream. Your playlist contains two files whoms cumulative sze exceeds your buffer size (only 8 MB of RAM, files are > 8 MB). Therefore seeking to the end of the second file (to load this files seek table) forces rebuffering, than seeking back to beginning of the file (for playback) will again force rebuffering. Maybe this patch does the trick?
Comment by Leo Witt (some-xtc) - Saturday, 02 October 2010, 16:55 GMT
Yes!
It works!

Trackchange works without any data aborts on my clip+ !!
And the best: It's gapless :)

Thanks!
Comment by Ivan Pesic (eevan) - Saturday, 02 October 2010, 17:06 GMT
Great Andree!
Will the same patch be helpful for Fuze v2 data aborts?
Comment by Andree Buschmann (Buschel) - Saturday, 02 October 2010, 17:32 GMT
Ivan, I expect this fix to help on Fuze v2 as well :o)

\o/

I will submit this in the next hours.

Loading...