On Wed, Apr 20, 2016 at 05:50:46AM +0200, Luca Barbato wrote: > From: Mark Thompson <[email protected]> > > Fault introduced in f3fdef108eb06b1e71b29152bf6822519e787efe > > Use a straightforward expression instead of using bitmasks. > --- > > Your way seems fine to me. > > libavcodec/apedec.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c > index 85d26ae..a85ca9e 100644 > --- a/libavcodec/apedec.c > +++ b/libavcodec/apedec.c > @@ -1304,11 +1304,17 @@ static void do_apply_filter(APEContext *ctx, int > version, APEFilter *f, > > /* Update the adaption coefficients */ > absres = FFABS(res); > - if (absres) > - *f->adaptcoeffs = ((res & ((~0UL) << 31)) ^ ((~0UL) << 30)) > >> > - (25 + (absres <= f->avg*3) + (absres <= > f->avg*4/3)); > - else > + > + if (absres) { > + if (absres <= f->avg * 4 / 3) > + *f->adaptcoeffs = -FFSIGN(res) * 8; > + else if (absres <= f->avg * 3) > + *f->adaptcoeffs = -FFSIGN(res) * 16; > + else > + *f->adaptcoeffs = -FFSIGN(res) * 32; > + } else { > *f->adaptcoeffs = 0; > + }
Certainly is much less WTFy than before. This thing should be run through Oracle before you let it loose upon the world. probably OK Diego _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
