#include <stdint.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.
Defines | |
#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) |
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] |
#define C1 FIXHR(0.98480775301220805936/2) |
Definition at line 266 of file mpegaudiodsp_template.c.
Referenced by idct4col_add(), idct4col_put(), and imdct36().
#define C2 FIXHR(0.93969262078590838405/2) |
Definition at line 267 of file mpegaudiodsp_template.c.
Referenced by idct4col_add(), idct4col_put(), and imdct36().
#define C3 FIXHR(0.86602540378443864676/2) |
Definition at line 268 of file mpegaudiodsp_template.c.
#define C4 FIXHR(0.76604444311897803520/2) |
Definition at line 269 of file mpegaudiodsp_template.c.
#define C5 FIXHR(0.64278760968653932632/2) |
Definition at line 270 of file mpegaudiodsp_template.c.
#define C6 FIXHR(0.5/2) |
Definition at line 271 of file mpegaudiodsp_template.c.
#define C7 FIXHR(0.34202014332566873304/2) |
#define C8 FIXHR(0.17364817766693034885/2) |
#define FIXHR | ( | a | ) | ((int)((a) * (1LL<<32) + 0.5)) |
Definition at line 68 of file mpegaudiodsp_template.c.
#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) |
#define MLSS | ( | rt, | |||
ra, | |||||
rb | ) | MLS64(rt, ra, rb) |
Definition at line 63 of file mpegaudiodsp_template.c.
Referenced by apply_window_mp3(), and ff_mpadsp_apply_window_TMPL().
#define MULH3 | ( | x, | |||
y, | |||||
s | ) | MULH((s)*(x), y) |
Definition at line 64 of file mpegaudiodsp_template.c.
#define MULLx | ( | x, | |||
y, | |||||
s | ) | MULL(x,y,s) |
Definition at line 65 of file mpegaudiodsp_template.c.
#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.
#define RENAME | ( | n | ) | n##_fixed |
Definition at line 50 of file mpegaudiodsp_template.c.
#define SHR | ( | a, | |||
b | ) | ((a)>>(b)) |
Definition at line 66 of file mpegaudiodsp_template.c.
#define SUM8 | ( | op, | |||
sum, | |||||
w, | |||||
p | ) |
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 79 of file mpegaudiodsp_template.c.
Referenced by apply_window_mp3(), and ff_mpadsp_apply_window_TMPL().
#define SUM8P2 | ( | sum1, | |||
op1, | |||||
sum2, | |||||
op2, | |||||
w1, | |||||
w2, | |||||
p | ) |
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 91 of file mpegaudiodsp_template.c.
Referenced by ff_mpadsp_apply_window_TMPL().
void ff_imdct36_blocks_TMPL | ( | INTFLOAT * | out, | |
INTFLOAT * | buf, | |||
INTFLOAT * | in, | |||
int | count, | |||
int | switch_point, | |||
int | block_type | |||
) |
Definition at line 382 of file mpegaudiodsp_template.c.
void ff_init_mpadsp_tabs_TMPL | ( | void | ) |
Definition at line 223 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 175 of file mpegaudiodsp_template.c.
av_cold void ff_mpa_synth_init_TMPL | ( | MPA_INT * | window | ) |
Definition at line 194 of file mpegaudiodsp_template.c.
void ff_mpadsp_apply_window_TMPL | ( | MPA_INT * | synth_buf, | |
MPA_INT * | window, | |||
int * | dither_state, | |||
OUT_INT * | samples, | |||
int | incr | |||
) |
Definition at line 120 of file mpegaudiodsp_template.c.
static void imdct36 | ( | INTFLOAT * | out, | |
INTFLOAT * | buf, | |||
INTFLOAT * | in, | |||
INTFLOAT * | win | |||
) | [static] |
static int round_sample | ( | int64_t * | sum | ) | [inline, static] |
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 75 of file mpegaudiodsp_template.c.
MPA_INT ff_mpa_synth_window_TMPL[512+256] |
Definition at line 77 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 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), }
Definition at line 289 of file mpegaudiodsp_template.c.