Michael Niedermayer said: > Hi > > On Fri, Jan 26, 2007 at 02:10:16PM -0000, M?ns Rullg?rd wrote: >> >> Thomas Raivio said: >> > Hi, >> > >> > llrint() is not defined in Cygwin and the function is used in >> > libavcodec/mpegaudiodec.c. I propose changing llrint() to rint() in this >> > case. >> >> This needs to be fixed, but using rint() is not the correct solution. >> >> Could someone please investigate the actual range of the values involved? >> Also, what is the correct rounding for these numbers? The rint() family of >> functions will round differently depending on application settings. >> >> It is quite possible that a simple (uint32_t)(x + 0.5) will do the right thing. > > no, not alone the current code rounds values up to 2241526806663124992.000000 > these entries in the LUT are likely never accessed but i dont have the time > nor interrest to check which is the last which might be accessed by a valid > (or even invalid) mp3 file Well, anything that needs values outside the 32-bit range will be incorrectly decoded with the current code. > also note someone now thinking of finding the max for his mp3 collection no > it wont be accepted this has to be checked by figuring out which values can > be reached by looking at the code and or mp3 spec Agreed. Nevertheless, testing with a large number of files might turn up one that does need a large value, rendering a thorough investigation unnecessary. -- M?ns Rullg?rd mru at inprovide.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4