[FFmpeg-devel] [PATCH] Yet more ALAC cleanup (#define removal)

Aurelien Jacobs aurel
Thu Aug 16 00:14:05 CEST 2007


On Wed, 15 Aug 2007 22:31:25 +0200
Michael Niedermayer <michaelni at gmx.at> wrote:

> Hi
> 
> On Wed, Aug 15, 2007 at 08:50:05PM +0200, Vitor Sessak wrote:
> > Hi
> >
> > Reimar D?ffinger wrote:
> >> Hello,
> >> On Wed, Aug 15, 2007 at 08:22:59PM +0200, Vitor Sessak wrote:
> >>> -#define SIGN_ONLY(v) \
> >>> -                     ((v < 0) ? (-1) : \
> >>> -                                ((v > 0) ? (1) : \
> >>> -                                           (0)))
> >>> +static inline int sign_only(int v)
> >>> +{
> >>> +    if (v < 0)
> >>> +        return -1;
> >>> +    else if (v > 0)
> >>> +        return 1;
> >>> +    else
> >>> +        return 0;
> >>> +}
> >> Since you change it anyway, I'd suggest
> >> if (v == 0) return 0;
> >> return FFSIGN(v);
> >> Though benchmarking it might be a good idea unless it is really
> >> uncritical.
> >> Greetings,
> >> Reimar D?ffinger
> >
> > Nice suggestion, but I don't think it is worth benchmarking. Unless the 
> > compiler is very stupid, 
> 
> anyone did a IQ test with gcc lately?
> 
> anyway, if you benchmark it, also try
> (v>>31)-((-v)>>31)

And maybe also this similar solution:
  !!v | v>>31

Aurel




More information about the ffmpeg-devel mailing list