FS#13060 - Seeking in long opus files leads to crash on Sansa Clip+

When seeking in large opus files, rockbox crashes.Using git bisect, I found commit 9b7ec42 to be the first one showing this behavior.

The crash screen for the latest git revision d57e651 looks as follows:

*PANIC*Stkov codecpc:3006008C sp:30803B{cut of due to screenspace ending. Next character could possibly be a ‘3’}

A: 3008728C

bt end

If I interpret the map-file correctly (and I totally might not), that would put the Program Counter somewhere in cancel_cpu_boost (thread.o).

for 9b7ec42 it is pc:3005E264, A: 3005E2BC. Stackpointer is the same.Here the pc appears to be in check_tmo_threads (thread.o)

I haven’t quite figured out where exactly “large” starts, but it does happen with 4 hour long files (~60MB), but not with 1 hour long files (~20MB). It also does not happen in the Simulator, only on the actual hardware.

Update: it no longer crashes when seeking manually, but still crashes when resuming a bookmark (version bfd04df from 2017-03-22)pc: 30064618sp: 30803B{again cut of due to screenspace ending. Next character could still possibly be a '3'}A: 3008C020

I fiddled a bit with the stack size of the decoder thread³ and bumping it by just another 1KiB resolves the issue for me.As memory is quite limited on this device it would be better to save stack space if possible, but that required a lot more effort at understanding seeking in the opus codec.