FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
imdct15.c File Reference

Celt non-power of 2 iMDCT. More...

#include <float.h>
#include <math.h>
#include <stddef.h>
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "avfft.h"
#include "imdct15.h"
#include "opus.h"

Go to the source code of this file.

Macros

#define CELT_MIN_IMDCT_SIZE   120
 
#define CMUL3(cre, cim, are, aim, bre, bim)
 
#define CMUL(c, a, b)   CMUL3((c).re, (c).im, (a).re, (a).im, (b).re, (b).im)
 
#define CMUL2(c, d, a, b)
 

Functions

av_cold void ff_imdct15_uninit (IMDCT15Context **ps)
 Free an iMDCT. More...
 
static void imdct15_half (IMDCT15Context *s, float *dst, const float *src, ptrdiff_t stride, float scale)
 
av_cold int ff_imdct15_init (IMDCT15Context **ps, int N)
 Init an iMDCT of the length 2 * 15 * (2^N) More...
 
static void fft5 (FFTComplex *out, const FFTComplex *in, ptrdiff_t stride)
 
static void fft15 (IMDCT15Context *s, FFTComplex *out, const FFTComplex *in, ptrdiff_t stride)
 
static void fft_calc (IMDCT15Context *s, FFTComplex *out, const FFTComplex *in, int N, ptrdiff_t stride)
 

Detailed Description

Celt non-power of 2 iMDCT.

Definition in file imdct15.c.

Macro Definition Documentation

#define CELT_MIN_IMDCT_SIZE   120

Definition at line 40 of file imdct15.c.

Referenced by ff_imdct15_init().

#define CMUL3 (   cre,
  cim,
  are,
  aim,
  bre,
  bim 
)
Value:
do { \
cre = are * bre - aim * bim; \
cim = are * bim + aim * bre; \
} while (0)

Definition at line 43 of file imdct15.c.

Referenced by imdct15_half().

#define CMUL (   c,
  a,
  b 
)    CMUL3((c).re, (c).im, (a).re, (a).im, (b).re, (b).im)

Definition at line 49 of file imdct15.c.

Referenced by fft15(), fft_calc(), and imdct15_half().

#define CMUL2 (   c,
  d,
  a,
  b 
)
Value:
do { \
float are = (a).re; \
float aim = (a).im; \
float bre = (b).re; \
float bim = (b).im; \
float rr = are * bre; \
float ri = are * bim; \
float ir = aim * bre; \
float ii = aim * bim; \
(c).re = rr - ii; \
(c).im = ri + ir; \
(d).re = rr + ii; \
(d).im = -ri + ir; \
} while (0)
float re
Definition: fft.c:73
const char * b
Definition: vf_curves.c:109
float im
Definition: fft.c:73
static double c[64]

Definition at line 53 of file imdct15.c.

Referenced by fft5().

Function Documentation

av_cold void ff_imdct15_uninit ( IMDCT15Context **  ps)

Free an iMDCT.

Definition at line 69 of file imdct15.c.

Referenced by aac_decode_close(), ff_celt_free(), and ff_imdct15_init().

static void imdct15_half ( IMDCT15Context s,
float *  dst,
const float *  src,
ptrdiff_t  stride,
float  scale 
)
static

Definition at line 246 of file imdct15.c.

Referenced by ff_imdct15_init().

av_cold int ff_imdct15_init ( IMDCT15Context **  ps,
int  N 
)

Init an iMDCT of the length 2 * 15 * (2^N)

Definition at line 90 of file imdct15.c.

Referenced by aac_decode_init(), and ff_celt_init().

static void fft5 ( FFTComplex out,
const FFTComplex in,
ptrdiff_t  stride 
)
static

Definition at line 151 of file imdct15.c.

Referenced by fft15().

static void fft15 ( IMDCT15Context s,
FFTComplex out,
const FFTComplex in,
ptrdiff_t  stride 
)
static

Definition at line 184 of file imdct15.c.

Referenced by fft_calc().

static void fft_calc ( IMDCT15Context s,
FFTComplex out,
const FFTComplex in,
int  N,
ptrdiff_t  stride 
)
static

Definition at line 220 of file imdct15.c.

Referenced by imdct15_half().