• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Codecs
  • Assigned To
    Andree Buschmann
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.4
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Andree Buschmann - 2010-03-05
Last edited by Andree Buschmann - 2010-03-07

FS#11079 - musepack sv8 support

This patch exchanges the current svn musepack decoder against the current official decoder from (r458). With this patch musepack sv8 is supported in addition to svn’s sv7 – including playback and seek. For better performance r458 was merged against rockbox svn to use the already highly optimized filterbanks.

1) Building with this patch will throw several warnings. I am working on this.
2) Tested on pcsim and arm. Results on coldfire are still needed, appreciated and helpful.
3) Decoding is still slower than svn for now (arm svn ~22MHz, arm patched ~27MHz).
4) The metadata check does still use dummy results for sv8 streams.

sv7 and sv8 streams for testing can be found at

Closed by  Andree Buschmann
2010-03-07 20:30
Reason for closing:  Accepted
Additional comments about closing:  

Committed with r25057.

Andree Buschmann commented on 2010-03-06 00:18

Next patch version:
- removed tabs
- removed compile warnings (3 warnings were inserted as reminder)
- put some more stuff to iram

Speed on iPod Video is decent now: 22.6 MHz.
Speed on other targets will need some more work as a major data structure could not been moved to iram yet.

Andree Buschmann commented on 2010-03-06 13:31

Final (?) patch version:
- reformated lots of tables
- moved some more tables to iram
- rearranged decoder's data structure to fit it into iram on most targets
- adapted handling of first frame (cutting first samples) to non-interleaved sample format
- fully implemented metadata for mpc sv8

Andree Buschmann commented on 2010-03-06 18:55

Important change in sv8 calculation of replay gain.

Andree Buschmann commented on 2010-03-06 22:32

Works on pcsim, arm (iPod 5G) and coldfire (H140, tested by AlexP on irc).
Still slower as svn for coldfire (svn: ~25 MHz, patch: ~32 MHz).

Andree Buschmann commented on 2010-03-07 13:57

Rearranged demux data structure to be able to move parts of it to IRAM. This speeds up the decoding on coldfire.

Speed on arm (iPod 5.5G) is 22.5 MHz (svn: 22.2 MHz).
Speed on coldfire (h130) is 29.7 MHz (svn: 25.3 MHz).

Measurements by AlexP on irc showed clearly that the main difference in speed on coldfire is located in the bitstream demuxing only (new decoder is about 4 MHz slower in this area). A major change of the new decoder is that it does uses a byte bitstream buffer instead of dword bitstream buffer.

Andree Buschmann commented on 2010-03-07 17:50

Theory about Coldfire issues with the demux code was correct. I wrote a wrapping function to optimize the performance on Coldfire (see mpc_bits_reader.h), other targets are untouched.

Speed on Coldfire (h130) is 26.3 MHz now (svn: 25.3 MHz).

Andree Buschmann commented on 2010-03-07 19:08

Cosmetic changes in comments (do not use 'AB', but 'rockbox').


Available keyboard shortcuts


Task Details

Task Editing