mpegaudiodsp_template.c File Reference
#include <stdint.h>
#include "libavutil/mem.h"
#include "dct32.h"
#include "mathops.h"
#include "mpegaudiodsp.h"
#include "mpegaudio.h"
Include dependency graph for mpegaudiodsp_template.c:
This graph shows which files directly or indirectly include this file:

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)
 
 DECLARE_ALIGNED (DECLARE_ALIGNED(16, INTFLOAT, RENAME(ff_mdct_win))
 Window for MDCT. More...
 
void RENAME() ff_mpa_synth_filter (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 RENAME() ff_mpa_synth_init (MPA_INT *window)
 
void RENAME() ff_init_mpadsp_tabs (void)
 
static void imdct36 (INTFLOAT *out, INTFLOAT *buf, INTFLOAT *in, INTFLOAT *win)
 
void RENAME() ff_imdct36_blocks (INTFLOAT *out, INTFLOAT *buf, INTFLOAT *in, int count, int switch_point, int block_type)
 

Variables

static const INTFLOAT icos36 [9]
 
static const INTFLOAT icos36h [9]
 

Macro Definition Documentation

#define C1   FIXHR(0.98480775301220805936/2)

Definition at line 266 of file mpegaudiodsp_template.c.

Referenced by __attribute__(), and imdct36().

#define C2   FIXHR(0.93969262078590838405/2)

Definition at line 267 of file mpegaudiodsp_template.c.

Referenced by __attribute__(), and imdct36().

#define C3   FIXHR(0.86602540378443864676/2)

Definition at line 268 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C4   FIXHR(0.76604444311897803520/2)

Definition at line 269 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C5   FIXHR(0.64278760968653932632/2)

Definition at line 270 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C6   FIXHR(0.5/2)

Definition at line 271 of file mpegaudiodsp_template.c.

#define C7   FIXHR(0.34202014332566873304/2)

Definition at line 272 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#define C8   FIXHR(0.17364817766693034885/2)

Definition at line 273 of file mpegaudiodsp_template.c.

Referenced by imdct36().

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

Definition at line 68 of file mpegaudiodsp_template.c.

Referenced by ff_init_mpadsp_tabs().

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

Definition at line 67 of file mpegaudiodsp_template.c.

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

Definition at line 62 of file mpegaudiodsp_template.c.

Referenced by DECLARE_ALIGNED().

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

Definition at line 63 of file mpegaudiodsp_template.c.

Referenced by DECLARE_ALIGNED().

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

Definition at line 64 of file mpegaudiodsp_template.c.

Referenced by imdct36().

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

Definition at line 65 of file mpegaudiodsp_template.c.

Referenced by imdct36().

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

Definition at line 61 of file mpegaudiodsp_template.c.

#define OUT_SHIFT   (WFRAC_BITS + FRAC_BITS - 15)

Definition at line 51 of file mpegaudiodsp_template.c.

Referenced by round_sample().

#define RENAME (   n)    n##_fixed

Definition at line 50 of file mpegaudiodsp_template.c.

Referenced by ff_imdct36_blocks(), and ff_init_mpadsp_tabs().

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

Definition at line 66 of file mpegaudiodsp_template.c.

Referenced by imdct36().

#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]); \
}
output residual component w
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.

Referenced by DECLARE_ALIGNED().

#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);\
}
#define INTFLOAT
Definition: dct32.c:34

Referenced by DECLARE_ALIGNED().

Function Documentation

DECLARE_ALIGNED ( DECLARE_ALIGNED(  16,
INTFLOAT  ,
RENAME(ff_mdct_win)   
)

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 75 of file mpegaudiodsp_template.c.

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

Definition at line 382 of file mpegaudiodsp_template.c.

void RENAME() ff_init_mpadsp_tabs ( void  )

Definition at line 223 of file mpegaudiodsp_template.c.

void RENAME() ff_mpa_synth_filter ( 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 175 of file mpegaudiodsp_template.c.

Referenced by mp_decode_frame().

av_cold void RENAME() ff_mpa_synth_init ( MPA_INT window)

Definition at line 194 of file mpegaudiodsp_template.c.

Referenced by decode_init_static().

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

Definition at line 302 of file mpegaudiodsp_template.c.

Referenced by ff_imdct36_blocks().

static int round_sample ( int64_t *  sum)
inlinestatic

Definition at line 53 of file mpegaudiodsp_template.c.

Referenced by DECLARE_ALIGNED().

Variable Documentation

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),
}
#define FIXR(a)

Definition at line 276 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),
}
#define FIXHR(a)

Definition at line 289 of file mpegaudiodsp_template.c.