#include "libavutil/cpu.h"
#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/mpegaudiodsp.h"
Go to the source code of this file.
Defines | |
#define | MACS(rt, ra, rb) rt+=(ra)*(rb) |
#define | MLSS(rt, ra, rb) rt-=(ra)*(rb) |
#define | SUM8(op, sum, w, p) |
#define | MULT(a, b) |
#define | SUMS(suma, sumb, sumc, sumd, out1, out2) |
#define | DECL_IMDCT_BLOCKS(CPU1, CPU2) |
Functions | |
void | ff_imdct36_float_sse (float *out, float *buf, float *in, float *win) |
void | ff_imdct36_float_sse2 (float *out, float *buf, float *in, float *win) |
void | ff_imdct36_float_sse3 (float *out, float *buf, float *in, float *win) |
void | ff_imdct36_float_ssse3 (float *out, float *buf, float *in, float *win) |
void | ff_imdct36_float_avx (float *out, float *buf, float *in, float *win) |
void | ff_four_imdct36_float_sse (float *out, float *buf, float *in, float *win, float *tmpbuf) |
void | ff_four_imdct36_float_avx (float *out, float *buf, float *in, float *win, float *tmpbuf) |
static void | apply_window (const float *buf, const float *win1, const float *win2, float *sum1, float *sum2, int len) |
static void | apply_window_mp3 (float *in, float *win, int *unused, float *out, int incr) |
void | ff_mpadsp_init_mmx (MPADSPContext *s) |
Variables | |
static float | mdct_win_sse [2][4][4 *40] |
#define DECL_IMDCT_BLOCKS | ( | CPU1, | |||
CPU2 | ) |
Value:
static void imdct36_blocks_ ## CPU1(float *out, float *buf, float *in, \ int count, int switch_point, int block_type) \ { \ int align_end = count - (count & 3); \ int j; \ for (j = 0; j < align_end; j+= 4) { \ LOCAL_ALIGNED_16(float, tmpbuf, [1024]); \ float *win = mdct_win_sse[switch_point && j < 4][block_type]; \ /* apply window & overlap with previous buffer */ \ \ /* select window */ \ ff_four_imdct36_float_ ## CPU2(out, buf, in, win, tmpbuf); \ in += 4*18; \ buf += 4*18; \ out += 4; \ } \ for (; j < count; j++) { \ /* apply window & overlap with previous buffer */ \ \ /* select window */ \ int win_idx = (switch_point && j < 2) ? 0 : block_type; \ float *win = ff_mdct_win_float[win_idx + (4 & -(j & 1))]; \ \ ff_imdct36_float_ ## CPU1(out, buf, in, win); \ \ in += 18; \ buf++; \ out++; \ } \ }
Definition at line 182 of file mpegaudiodec_mmx.c.
#define MACS | ( | rt, | |||
ra, | |||||
rb | ) | rt+=(ra)*(rb) |
Definition at line 39 of file mpegaudiodec_mmx.c.
#define MLSS | ( | rt, | |||
ra, | |||||
rb | ) | rt-=(ra)*(rb) |
Definition at line 40 of file mpegaudiodec_mmx.c.
#define MULT | ( | a, | |||
b | ) |
Value:
"movaps " #a "(%1,%0), %%xmm1 \n\t" \ "movaps " #a "(%3,%0), %%xmm2 \n\t" \ "mulps %%xmm2, %%xmm1 \n\t" \ "subps %%xmm1, %%xmm0 \n\t" \ "mulps " #b "(%2,%0), %%xmm2 \n\t" \ "subps %%xmm2, %%xmm4 \n\t" \
#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 42 of file mpegaudiodec_mmx.c.
#define SUMS | ( | suma, | |||
sumb, | |||||
sumc, | |||||
sumd, | |||||
out1, | |||||
out2 | ) |
Value:
"movups " #sumd "(%4), %%xmm0 \n\t" \ "shufps $0x1b, %%xmm0, %%xmm0 \n\t" \ "subps " #suma "(%1), %%xmm0 \n\t" \ "movaps %%xmm0," #out1 "(%0) \n\t" \ \ "movups " #sumc "(%3), %%xmm0 \n\t" \ "shufps $0x1b, %%xmm0, %%xmm0 \n\t" \ "addps " #sumb "(%2), %%xmm0 \n\t" \ "movaps %%xmm0," #out2 "(%0) \n\t"
Referenced by apply_window_mp3().
static void apply_window | ( | const float * | buf, | |
const float * | win1, | |||
const float * | win2, | |||
float * | sum1, | |||
float * | sum2, | |||
int | len | |||
) | [static] |
Definition at line 54 of file mpegaudiodec_mmx.c.
static void apply_window_mp3 | ( | float * | in, | |
float * | win, | |||
int * | unused, | |||
float * | out, | |||
int | incr | |||
) | [static] |
Definition at line 98 of file mpegaudiodec_mmx.c.
void ff_four_imdct36_float_avx | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win, | |||
float * | tmpbuf | |||
) |
void ff_four_imdct36_float_sse | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win, | |||
float * | tmpbuf | |||
) |
void ff_imdct36_float_avx | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win | |||
) |
void ff_imdct36_float_sse | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win | |||
) |
void ff_imdct36_float_sse2 | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win | |||
) |
void ff_imdct36_float_sse3 | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win | |||
) |
void ff_imdct36_float_ssse3 | ( | float * | out, | |
float * | buf, | |||
float * | in, | |||
float * | win | |||
) |
void ff_mpadsp_init_mmx | ( | MPADSPContext * | s | ) |
float mdct_win_sse[2][4][4 *40] [static] |