rockbox/lib
Michael Giacomelli 34666474b8 wma: fix dropouts in files with LSP exponents
Where the LSP curve peaks, the value its -1/4 power is taken of is
far below one step of 16.16 and was rounded to zero. pow_m1_4() of
zero is enormous, the block's levels are taken relative to that
maximum, and so the whole block came out about 46 dB down. In
StutteringFile.wma (22 kHz mono, 20 kbps) this muted a block here
and there, which is heard as a stutter.

Pass the value to pow_m1_4() with all of its 38 fractional bits.

Checked with perfsim (Sansa e200v1 build) against ffmpeg's decode
of that file, in blocks of 46 ms: 11 of 841 were off by more than
1 dB, the worst by 10.6 dB; none are now, the worst by 0.4 dB.
Four other files with LSP exponents are unchanged or closer, and
files without them are byte-identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 21:21:27 -04:00
..
arm_support chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
fixedpoint chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
libsetjmp libsetjmp: fix unpredictable behavior warning on ARM Cortex-M 2025-04-19 11:24:01 -04:00
microtar chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mipsunwinder chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
rbcodec wma: fix dropouts in files with LSP exponents 2026-10-05 21:21:27 -04:00
skin_parser skin_parser: Fix regression in 0d5afa6d 2026-07-05 19:12:25 -04:00
tlsf chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
unwarminder chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
utf8proc utf8proc: Add utf8proc for normalizing UTF-8 strings 2026-03-01 08:26:00 -05:00