On Sat, Apr 18, 2015 at 12:55:08AM +0200, Andreas Cadhalpun wrote: > On 17.04.2015 23:39, Luca Barbato wrote: > > On 17/04/15 16:08, Andreas Cadhalpun wrote: > >> On 17.04.2015 02:01, Luca Barbato wrote: > >>> is band->thr = 0.0f a valid value? > >> > >> Come to think of it, that's probably invalid. > > I retract that, it seems band->thr = 0.0f is valid. > > >> It can happen if coeffs[g].ath is not positive. > > > > ath() returns easily Inf and negative values... > > It returns Inf for 0 and Inf, though that's not the > problem here. Neither is that it can return negative > values, because the minimum of the ath() function is > (or rather should be) subtracted: > coeffs[g].ath = minscale - minath; > > The problem is that minath is not the minimum, only close: > minath = ath(3410, ATH_ADD) = -5.24237967 > ath(3407, ATH_ADD) = -5.24241638
the exact location of the minimum depends on teh "add" value its around 3410 for add=0 and around 3407 for add=4 for fun, 3407.080774800152 is even closer than 3407 for add=4 but the "add" parameter should probably be user selectable also if you want to prevent coeffs[].ath from becoming negative then you have to check coeffs[].ath, as float rounding and optimizations can differ between platforms you cannot even know for sure that ath(3407, ATH_ADD) == ath(i, ATH_ADD) when i == 3407 the value calculated with a constant can be calculated at build time but in the loop the code could have been optimized/factored/whatever by the compiler and produce different values as a result [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Avoid a single point of failure, be that a person or equipment.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel