adafruit / Adafruit_MP3

mp3 decoding on arduino
40 stars 17 forks source link

Restore sample clipping #16

Closed jepler closed 4 years ago

jepler commented 4 years ago

In #9 an optimization of the recurring code snippet ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS); was implemented. However, the new function SAR64_Clip didn't actually function the same as the original, because they differ in how out-of-range values are treated: SAR64_Clip actually just masks off the high bits, while ClipToShort clips out of bound values to the minimum and maximum.

This closes #12.

Testing performed: ran the standalone test and did NOT see any reports of "likely overflows". Listened to the "Carpeter" track in a custom build of CircuitPython with this version of the mp3 library and it sounded right too.

ladyada commented 4 years ago

@jepler yay mystery solved!

@bitbank2 FYI