Go to the documentation of this file.
26 #define SYNTH_FILTER_FUNC(opt) \
27 void ff_synth_filter_inner_##opt(float *synth_buf_ptr, float synth_buf2[32], \
28 const float window[512], \
29 float out[32], intptr_t offset, float scale); \
30 static void synth_filter_##opt(FFTContext *imdct, \
31 float *synth_buf_ptr, int *synth_buf_offset, \
32 float synth_buf2[32], const float window[512], \
33 float out[32], const float in[32], float scale) \
35 float *synth_buf= synth_buf_ptr + *synth_buf_offset; \
37 imdct->imdct_half(imdct, synth_buf, in); \
39 ff_synth_filter_inner_##opt(synth_buf, synth_buf2, window, \
40 out, *synth_buf_offset, scale); \
42 *synth_buf_offset = (*synth_buf_offset - 32) & 511; \
61 s->synth_filter_float = synth_filter_sse;
65 s->synth_filter_float = synth_filter_sse2;
68 s->synth_filter_float = synth_filter_avx;
71 s->synth_filter_float = synth_filter_fma3;
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
static atomic_int cpu_flags
av_cold void ff_synth_filter_init_x86(SynthFilterContext *s)
#define EXTERNAL_SSE(flags)
static int sse(MpegEncContext *s, uint8_t *src1, uint8_t *src2, int w, int h, int stride)
#define EXTERNAL_AVX_FAST(flags)
#define EXTERNAL_SSE2(flags)
#define EXTERNAL_FMA3_FAST(flags)
#define SYNTH_FILTER_FUNC(opt)