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.
In #9 an optimization of the recurring code snippet
ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS);
was implemented. However, the new functionSAR64_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.