[FFmpeg-devel] [PATCH 7/9] avcodec/mdct_template: use lrint instead of floor hack

Ganesh Ajjanagadde gajjanagadde at gmail.com
Sun Dec 6 14:20:46 CET 2015


On Tue, Dec 1, 2015 at 7:27 PM, Ganesh Ajjanagadde
<gajjanagadde at gmail.com> wrote:
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavcodec/mdct_template.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/mdct_template.c b/libavcodec/mdct_template.c
> index e7e5f62..ecdeb54 100644
> --- a/libavcodec/mdct_template.c
> +++ b/libavcodec/mdct_template.c
> @@ -23,6 +23,7 @@
>  #include <string.h>
>  #include "libavutil/common.h"
>  #include "libavutil/mathematics.h"
> +#include "libavutil/libm.h"
>  #include "fft.h"
>  #include "fft-internal.h"
>
> @@ -82,8 +83,8 @@ av_cold int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale)
>      for(i=0;i<n4;i++) {
>          alpha = 2 * M_PI * (i + theta) / n;
>  #if FFT_FIXED_32
> -        s->tcos[i*tstep] = (FFTSample)floor(-cos(alpha) * 2147483648.0 + 0.5);
> -        s->tsin[i*tstep] = (FFTSample)floor(-sin(alpha) * 2147483648.0 + 0.5);
> +        s->tcos[i*tstep] = lrint(-cos(alpha) * 2147483648.0);
> +        s->tsin[i*tstep] = lrint(-sin(alpha) * 2147483648.0);
>  #else
>          s->tcos[i*tstep] = FIX15(-cos(alpha) * scale);
>          s->tsin[i*tstep] = FIX15(-sin(alpha) * scale);
> --
> 2.6.2
>

Ping for this one, it is relatively important among the lrint patches
as this is frequently used and table may be large, making speed
benefit somewhat useful.
I have noted the header alphabetical include order mistake above.


More information about the ffmpeg-devel mailing list