FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
fft-internal.h File Reference
#include "fft.h"
#include "mathops.h"

Go to the source code of this file.

Macros

#define SCALE_FLOAT(a, bits)   lrint((a) * (double)(1 << (bits)))
 
#define FIX15(a)   av_clip(SCALE_FLOAT(a, 15), -32767, 32767)
 
#define sqrthalf   ((int16_t)((1<<15)*M_SQRT1_2))
 
#define BF(x, y, a, b)
 
#define CMULS(dre, dim, are, aim, bre, bim, sh)
 
#define CMUL(dre, dim, are, aim, bre, bim)   CMULS(dre, dim, are, aim, bre, bim, 15)
 
#define CMULL(dre, dim, are, aim, bre, bim)   CMULS(dre, dim, are, aim, bre, bim, 0)
 
#define ff_imdct_calc_c   FFT_NAME(ff_imdct_calc_c)
 
#define ff_imdct_half_c   FFT_NAME(ff_imdct_half_c)
 
#define ff_mdct_calc_c   FFT_NAME(ff_mdct_calc_c)
 

Functions

void ff_mdct_calcw_c (FFTContext *s, FFTDouble *output, const FFTSample *input)
 
void ff_imdct_calc_c (FFTContext *s, FFTSample *output, const FFTSample *input)
 Compute inverse MDCT of size N = 2^nbits.
 
void ff_imdct_half_c (FFTContext *s, FFTSample *output, const FFTSample *input)
 Compute the middle half of the inverse MDCT of size N = 2^nbits, thus excluding the parts that can be derived by symmetry.
 
void ff_mdct_calc_c (FFTContext *s, FFTSample *output, const FFTSample *input)
 Compute MDCT of size N = 2^nbits.
 

Macro Definition Documentation

#define SCALE_FLOAT (   a,
  bits 
)    lrint((a) * (double)(1 << (bits)))

Definition at line 44 of file fft-internal.h.

#define FIX15 (   a)    av_clip(SCALE_FLOAT(a, 15), -32767, 32767)

Definition at line 45 of file fft-internal.h.

Referenced by ff_init_ff_cos_tabs(), and ff_mdct_init().

#define sqrthalf   ((int16_t)((1<<15)*M_SQRT1_2))

Definition at line 47 of file fft-internal.h.

Referenced by fft16(), and fft8().

#define BF (   x,
  y,
  a,
  b 
)
Value:
do { \
x = (a - b) >> 1; \
y = (a + b) >> 1; \
} while (0)

Definition at line 49 of file fft-internal.h.

#define CMULS (   dre,
  dim,
  are,
  aim,
  bre,
  bim,
  sh 
)
Value:
do { \
(dre) = (MUL16(are, bre) - MUL16(aim, bim)) >> sh; \
(dim) = (MUL16(are, bim) + MUL16(aim, bre)) >> sh; \
} while (0)

Definition at line 54 of file fft-internal.h.

#define CMUL (   dre,
  dim,
  are,
  aim,
  bre,
  bim 
)    CMULS(dre, dim, are, aim, bre, bim, 15)

Definition at line 59 of file fft-internal.h.

Referenced by ff_imdct_half_c(), ff_mdct_calc_c(), and ff_mdct_calcw_c().

#define CMULL (   dre,
  dim,
  are,
  aim,
  bre,
  bim 
)    CMULS(dre, dim, are, aim, bre, bim, 0)

Definition at line 62 of file fft-internal.h.

Referenced by ff_mdct_calcw_c().

#define ff_imdct_calc_c   FFT_NAME(ff_imdct_calc_c)

Definition at line 67 of file fft-internal.h.

Referenced by ff_fft_init().

#define ff_imdct_half_c   FFT_NAME(ff_imdct_half_c)

Definition at line 68 of file fft-internal.h.

Referenced by ff_fft_init(), and ff_imdct_calc_c().

#define ff_mdct_calc_c   FFT_NAME(ff_mdct_calc_c)

Definition at line 69 of file fft-internal.h.

Referenced by ff_fft_init().

Function Documentation

void ff_mdct_calcw_c ( FFTContext s,
FFTDouble output,
const FFTSample input 
)

Definition at line 23 of file mdct_fixed.c.

Referenced by ff_fft_init().

void ff_imdct_calc_c ( FFTContext s,
FFTSample output,
const FFTSample input 
)

Compute inverse MDCT of size N = 2^nbits.

Parameters
outputN samples
inputN/2 samples

Definition at line 137 of file mdct.c.

void ff_imdct_half_c ( FFTContext s,
FFTSample output,
const FFTSample input 
)

Compute the middle half of the inverse MDCT of size N = 2^nbits, thus excluding the parts that can be derived by symmetry.

Parameters
outputN/2 samples
inputN/2 samples

Definition at line 95 of file mdct.c.

void ff_mdct_calc_c ( FFTContext s,
FFTSample out,
const FFTSample input 
)

Compute MDCT of size N = 2^nbits.

Parameters
inputN samples
outN/2 samples

Definition at line 157 of file mdct.c.