FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
mpegaudiodsp_template.c File Reference
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavutil/mem.h"
#include "dct32.h"
#include "mathops.h"
#include "mpegaudiodsp.h"
#include "mpegaudio.h"

Go to the source code of this file.

Macros

#define RENAME(n)   n##_fixed
 
#define OUT_SHIFT   (WFRAC_BITS + FRAC_BITS - 15)
 
#define MULS(ra, rb)   MUL64(ra, rb)
 
#define MACS(rt, ra, rb)   MAC64(rt, ra, rb)
 
#define MLSS(rt, ra, rb)   MLS64(rt, ra, rb)
 
#define MULH3(x, y, s)   MULH((s)*(x), y)
 
#define MULLx(x, y, s)   MULL(x,y,s)
 
#define SHR(a, b)   ((a)>>(b))
 
#define FIXR(a)   ((int)((a) * FRAC_ONE + 0.5))
 
#define FIXHR(a)   ((int)((a) * (1LL<<32) + 0.5))
 
#define SUM8(op, sum, w, p)
 
#define SUM8P2(sum1, op1, sum2, op2, w1, w2, p)
 
#define C1   FIXHR(0.98480775301220805936/2)
 
#define C2   FIXHR(0.93969262078590838405/2)
 
#define C3   FIXHR(0.86602540378443864676/2)
 
#define C4   FIXHR(0.76604444311897803520/2)
 
#define C5   FIXHR(0.64278760968653932632/2)
 
#define C6   FIXHR(0.5/2)
 
#define C7   FIXHR(0.34202014332566873304/2)
 
#define C8   FIXHR(0.17364817766693034885/2)
 

Functions

static int round_sample (int64_t *sum)
 
void ff_mpadsp_apply_window_TMPL (MPA_INT *synth_buf, MPA_INT *window, int *dither_state, OUT_INT *samples, int incr)
 
void ff_mpa_synth_filter_TMPL (MPADSPContext *s, MPA_INT *synth_buf_ptr, int *synth_buf_offset, MPA_INT *window, int *dither_state, OUT_INT *samples, int incr, MPA_INT *sb_samples)
 
av_cold void ff_mpa_synth_init_TMPL (MPA_INT *window)
 
av_cold void ff_init_mpadsp_tabs_TMPL (void)
 
static void imdct36 (INTFLOAT *out, INTFLOAT *buf, INTFLOAT *in, INTFLOAT *win)
 
void ff_imdct36_blocks_TMPL (INTFLOAT *out, INTFLOAT *buf, INTFLOAT *in, int count, int switch_point, int block_type)
 

Variables

int ff_mdct_win_TMPL [8][MDCT_BUF_SIZE]
 Window for MDCT.
 
MPA_INT ff_mpa_synth_window_TMPL [512+256]
 
static const INTFLOAT icos36 [9]
 
static const INTFLOAT icos36h [9]
 

Macro Definition Documentation

#define RENAME (   n)    n##_fixed

Definition at line 51 of file mpegaudiodsp_template.c.

Referenced by ff_imdct36_blocks_TMPL(), and ff_init_mpadsp_tabs_TMPL().

#define OUT_SHIFT   (WFRAC_BITS + FRAC_BITS - 15)

Definition at line 52 of file mpegaudiodsp_template.c.

Referenced by round_sample().

#define MULS (   ra,
  rb 
)    MUL64(ra, rb)

Definition at line 62 of file mpegaudiodsp_template.c.

#define MACS (   rt,
  ra,
  rb 
)    MAC64(rt, ra, rb)

Definition at line 63 of file mpegaudiodsp_template.c.

Referenced by ff_mpadsp_apply_window_TMPL().

#define MLSS (   rt,
  ra,
  rb 
)    MLS64(rt, ra, rb)

Definition at line 64 of file mpegaudiodsp_template.c.

Referenced by ff_mpadsp_apply_window_TMPL().

#define MULH3 (   x,
  y,
  s 
)    MULH((s)*(x), y)

Definition at line 65 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define MULLx (   x,
  y,
  s 
)    MULL(x,y,s)

Definition at line 66 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define SHR (   a,
  b 
)    ((a)>>(b))

Definition at line 67 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define FIXR (   a)    ((int)((a) * FRAC_ONE + 0.5))

Definition at line 68 of file mpegaudiodsp_template.c.

#define FIXHR (   a)    ((int)((a) * (1LL<<32) + 0.5))

Definition at line 69 of file mpegaudiodsp_template.c.

Referenced by ff_init_mpadsp_tabs_TMPL().

#define SUM8 (   op,
  sum,
  w,
 
)
Value:
{ \
op(sum, (w)[0 * 64], (p)[0 * 64]); \
op(sum, (w)[1 * 64], (p)[1 * 64]); \
op(sum, (w)[2 * 64], (p)[2 * 64]); \
op(sum, (w)[3 * 64], (p)[3 * 64]); \
op(sum, (w)[4 * 64], (p)[4 * 64]); \
op(sum, (w)[5 * 64], (p)[5 * 64]); \
op(sum, (w)[6 * 64], (p)[6 * 64]); \
op(sum, (w)[7 * 64], (p)[7 * 64]); \
}

Definition at line 80 of file mpegaudiodsp_template.c.

Referenced by ff_mpadsp_apply_window_TMPL().

#define SUM8P2 (   sum1,
  op1,
  sum2,
  op2,
  w1,
  w2,
 
)
Value:
{ \
INTFLOAT tmp;\
tmp = p[0 * 64];\
op1(sum1, (w1)[0 * 64], tmp);\
op2(sum2, (w2)[0 * 64], tmp);\
tmp = p[1 * 64];\
op1(sum1, (w1)[1 * 64], tmp);\
op2(sum2, (w2)[1 * 64], tmp);\
tmp = p[2 * 64];\
op1(sum1, (w1)[2 * 64], tmp);\
op2(sum2, (w2)[2 * 64], tmp);\
tmp = p[3 * 64];\
op1(sum1, (w1)[3 * 64], tmp);\
op2(sum2, (w2)[3 * 64], tmp);\
tmp = p[4 * 64];\
op1(sum1, (w1)[4 * 64], tmp);\
op2(sum2, (w2)[4 * 64], tmp);\
tmp = p[5 * 64];\
op1(sum1, (w1)[5 * 64], tmp);\
op2(sum2, (w2)[5 * 64], tmp);\
tmp = p[6 * 64];\
op1(sum1, (w1)[6 * 64], tmp);\
op2(sum2, (w2)[6 * 64], tmp);\
tmp = p[7 * 64];\
op1(sum1, (w1)[7 * 64], tmp);\
op2(sum2, (w2)[7 * 64], tmp);\
}

Definition at line 92 of file mpegaudiodsp_template.c.

Referenced by ff_mpadsp_apply_window_TMPL().

#define C1   FIXHR(0.98480775301220805936/2)

Definition at line 267 of file mpegaudiodsp_template.c.

Referenced by idct4col_add(), idct4col_put(), and imdct36().

#define C2   FIXHR(0.93969262078590838405/2)

Definition at line 268 of file mpegaudiodsp_template.c.

Referenced by idct4col_add(), idct4col_put(), and imdct36().

#define C3   FIXHR(0.86602540378443864676/2)

Definition at line 269 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C4   FIXHR(0.76604444311897803520/2)

Definition at line 270 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C5   FIXHR(0.64278760968653932632/2)

Definition at line 271 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C6   FIXHR(0.5/2)

Definition at line 272 of file mpegaudiodsp_template.c.

#define C7   FIXHR(0.34202014332566873304/2)

Definition at line 273 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C8   FIXHR(0.17364817766693034885/2)

Definition at line 274 of file mpegaudiodsp_template.c.

Referenced by imdct36().

Function Documentation

static int round_sample ( int64_t *  sum)
inlinestatic

Definition at line 54 of file mpegaudiodsp_template.c.

Referenced by ff_mpadsp_apply_window_TMPL().

void ff_mpadsp_apply_window_TMPL ( MPA_INT synth_buf,
MPA_INT window,
int *  dither_state,
OUT_INT samples,
int  incr 
)

Definition at line 121 of file mpegaudiodsp_template.c.

void ff_mpa_synth_filter_TMPL ( MPADSPContext s,
MPA_INT synth_buf_ptr,
int *  synth_buf_offset,
MPA_INT window,
int *  dither_state,
OUT_INT samples,
int  incr,
MPA_INT sb_samples 
)

Definition at line 176 of file mpegaudiodsp_template.c.

av_cold void ff_mpa_synth_init_TMPL ( MPA_INT window)

Definition at line 195 of file mpegaudiodsp_template.c.

av_cold void ff_init_mpadsp_tabs_TMPL ( void  )

Definition at line 224 of file mpegaudiodsp_template.c.

static void imdct36 ( INTFLOAT out,
INTFLOAT buf,
INTFLOAT in,
INTFLOAT win 
)
static

Definition at line 303 of file mpegaudiodsp_template.c.

Referenced by ff_imdct36_blocks_TMPL().

void ff_imdct36_blocks_TMPL ( INTFLOAT out,
INTFLOAT buf,
INTFLOAT in,
int  count,
int  switch_point,
int  block_type 
)

Definition at line 383 of file mpegaudiodsp_template.c.

Variable Documentation

int ff_mdct_win_TMPL[8][MDCT_BUF_SIZE]

Window for MDCT.

Actually only the elements in [0,17] and [MDCT_BUF_SIZE/2, MDCT_BUF_SIZE/2 + 17] are actually used. The rest is just to preserve alignment for SIMD implementations.

Definition at line 76 of file mpegaudiodsp_template.c.

MPA_INT ff_mpa_synth_window_TMPL[512+256]

Definition at line 78 of file mpegaudiodsp_template.c.

const INTFLOAT icos36[9]
static
Initial value:
= {
FIXR(0.50190991877167369479),
FIXR(0.51763809020504152469),
FIXR(0.55168895948124587824),
FIXR(0.61038729438072803416),
FIXR(0.70710678118654752439),
FIXR(0.87172339781054900991),
FIXR(1.18310079157624925896),
FIXR(1.93185165257813657349),
FIXR(5.73685662283492756461),
}

Definition at line 277 of file mpegaudiodsp_template.c.

const INTFLOAT icos36h[9]
static
Initial value:
= {
FIXHR(0.50190991877167369479/2),
FIXHR(0.51763809020504152469/2),
FIXHR(0.55168895948124587824/2),
FIXHR(0.61038729438072803416/2),
FIXHR(0.70710678118654752439/2),
FIXHR(0.87172339781054900991/2),
FIXHR(1.18310079157624925896/4),
FIXHR(1.93185165257813657349/4),
}

Definition at line 290 of file mpegaudiodsp_template.c.