• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by wtachi - 2011-06-02
Last edited by nls - 2011-06-05

FS#12146 - Fix libcook bugs introduced in r22055

r22055 introduced two subtle bugs in libcook.

First, libcook’s fixp_mult_su was replaced with a call to MULT31_SHIFT15. However, MULT31_SHIFT15 shifts the product 15 bits, while fixp_mult_su effectively shifted it 16 bits. The symptom is louder treble and changed stereo width.

Second, the shift amount in scalar_dequant_math was divided by two, overlooking the fact that the lowest bit is needed in the line immediately afterwards. The symptom is an odd noise added to some steady notes.

Both problems can be heard in the attached file, as compared to ffmpeg’s decoder.

Closed by  nls
2011-06-05 13:13
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

comitted with a small tweak to the cf asm, thanks!

nls commented on 2011-06-03 08:48

This will not work for arm and cf targets that use the inline asm functions since you added MULT31_SHIFT16 to the header that is only used if the asm functions aren’t present.

MULT31_SHIFT16 added for ARM and Coldfire. It works on ARM; I can’t test on Coldfire.


Available keyboard shortcuts


Task Details

Task Editing