libavcodec/x86/mpegaudiodec_mmx.c File Reference

#include "libavutil/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/mpegaudiodsp.h"

Go to the source code of this file.

Defines

#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)
 DECLARE_ALIGNED (16, static float, mdct_win_sse)[2][4][4 *40]
void ff_mpadsp_init_mmx (MPADSPContext *s)


Define Documentation

#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 185 of file mpegaudiodec_mmx.c.


Function Documentation

DECLARE_ALIGNED ( 16  ,
static  float,
mdct_win_sse   
)

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  ) 

Definition at line 229 of file mpegaudiodec_mmx.c.

Referenced by ff_mpadsp_init().


Generated on Tue Aug 28 19:21:24 2012 for FFmpeg by  doxygen 1.5.8