FFmpeg  4.3.6
Macros | Functions
ac3dsp_init.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/mem.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavcodec/ac3.h"
#include "libavcodec/ac3dsp.h"

Go to the source code of this file.

Macros

#define DOWNMIX_FUNC_OPT(ch, opt)
 
#define DOWNMIX_FUNCS(opt)
 
#define SET_DOWNMIX(ch, suf, SUF)
 
#define SET_DOWNMIX_ALL(suf, SUF)
 

Functions

void ff_ac3_exponent_min_mmx (uint8_t *exp, int num_reuse_blocks, int nb_coefs)
 
void ff_ac3_exponent_min_mmxext (uint8_t *exp, int num_reuse_blocks, int nb_coefs)
 
void ff_ac3_exponent_min_sse2 (uint8_t *exp, int num_reuse_blocks, int nb_coefs)
 
int ff_ac3_max_msb_abs_int16_mmx (const int16_t *src, int len)
 
int ff_ac3_max_msb_abs_int16_mmxext (const int16_t *src, int len)
 
int ff_ac3_max_msb_abs_int16_sse2 (const int16_t *src, int len)
 
int ff_ac3_max_msb_abs_int16_ssse3 (const int16_t *src, int len)
 
void ff_ac3_lshift_int16_mmx (int16_t *src, unsigned int len, unsigned int shift)
 
void ff_ac3_lshift_int16_sse2 (int16_t *src, unsigned int len, unsigned int shift)
 
void ff_ac3_rshift_int32_mmx (int32_t *src, unsigned int len, unsigned int shift)
 
void ff_ac3_rshift_int32_sse2 (int32_t *src, unsigned int len, unsigned int shift)
 
void ff_float_to_fixed24_3dnow (int32_t *dst, const float *src, unsigned int len)
 
void ff_float_to_fixed24_sse (int32_t *dst, const float *src, unsigned int len)
 
void ff_float_to_fixed24_sse2 (int32_t *dst, const float *src, unsigned int len)
 
int ff_ac3_compute_mantissa_size_sse2 (uint16_t mant_cnt[6][16])
 
void ff_ac3_extract_exponents_sse2 (uint8_t *exp, int32_t *coef, int nb_coefs)
 
void ff_ac3_extract_exponents_ssse3 (uint8_t *exp, int32_t *coef, int nb_coefs)
 
void ff_apply_window_int16_round_mmxext (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_apply_window_int16_round_sse2 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_apply_window_int16_mmxext (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_apply_window_int16_sse2 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_apply_window_int16_ssse3 (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
void ff_apply_window_int16_ssse3_atom (int16_t *output, const int16_t *input, const int16_t *window, unsigned int len)
 
av_cold void ff_ac3dsp_init_x86 (AC3DSPContext *c, int bit_exact)
 
void ff_ac3dsp_set_downmix_x86 (AC3DSPContext *c)
 

Macro Definition Documentation

◆ DOWNMIX_FUNC_OPT

#define DOWNMIX_FUNC_OPT (   ch,
  opt 
)
Value:
void ff_ac3_downmix_ ## ch ## _to_1_ ## opt(float **samples, \
float **matrix, int len); \
void ff_ac3_downmix_ ## ch ## _to_2_ ## opt(float **samples, \
float **matrix, int len);
int len

Definition at line 123 of file ac3dsp_init.c.

◆ DOWNMIX_FUNCS

#define DOWNMIX_FUNCS (   opt)
Value:
DOWNMIX_FUNC_OPT(4, opt) \
DOWNMIX_FUNC_OPT(5, opt) \
DOWNMIX_FUNC_OPT(6, opt)
#define DOWNMIX_FUNC_OPT(ch, opt)
Definition: ac3dsp_init.c:123

Definition at line 129 of file ac3dsp_init.c.

◆ SET_DOWNMIX

#define SET_DOWNMIX (   ch,
  suf,
  SUF 
)
Value:
if (ch == c->in_channels) { \
if (EXTERNAL_ ## SUF (cpu_flags)) { \
if (c->out_channels == 1) \
c->downmix = ff_ac3_downmix_ ## ch ## _to_1_ ## suf; \
else \
c->downmix = ff_ac3_downmix_ ## ch ## _to_2_ ## suf; \
} \
}
static atomic_int cpu_flags
Definition: cpu.c:50
static double c[64]

◆ SET_DOWNMIX_ALL

#define SET_DOWNMIX_ALL (   suf,
  SUF 
)
Value:
SET_DOWNMIX(3, suf, SUF) \
SET_DOWNMIX(4, suf, SUF) \
SET_DOWNMIX(5, suf, SUF) \
SET_DOWNMIX(6, suf, SUF)
#define SET_DOWNMIX(ch, suf, SUF)

Referenced by ff_ac3dsp_set_downmix_x86().

Function Documentation

◆ ff_ac3_exponent_min_mmx()

void ff_ac3_exponent_min_mmx ( uint8_t exp,
int  num_reuse_blocks,
int  nb_coefs 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_exponent_min_mmxext()

void ff_ac3_exponent_min_mmxext ( uint8_t exp,
int  num_reuse_blocks,
int  nb_coefs 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_exponent_min_sse2()

void ff_ac3_exponent_min_sse2 ( uint8_t exp,
int  num_reuse_blocks,
int  nb_coefs 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_max_msb_abs_int16_mmx()

int ff_ac3_max_msb_abs_int16_mmx ( const int16_t *  src,
int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_max_msb_abs_int16_mmxext()

int ff_ac3_max_msb_abs_int16_mmxext ( const int16_t *  src,
int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_max_msb_abs_int16_sse2()

int ff_ac3_max_msb_abs_int16_sse2 ( const int16_t *  src,
int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_max_msb_abs_int16_ssse3()

int ff_ac3_max_msb_abs_int16_ssse3 ( const int16_t *  src,
int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_lshift_int16_mmx()

void ff_ac3_lshift_int16_mmx ( int16_t *  src,
unsigned int  len,
unsigned int  shift 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_lshift_int16_sse2()

void ff_ac3_lshift_int16_sse2 ( int16_t *  src,
unsigned int  len,
unsigned int  shift 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_rshift_int32_mmx()

void ff_ac3_rshift_int32_mmx ( int32_t src,
unsigned int  len,
unsigned int  shift 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_rshift_int32_sse2()

void ff_ac3_rshift_int32_sse2 ( int32_t src,
unsigned int  len,
unsigned int  shift 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_float_to_fixed24_3dnow()

void ff_float_to_fixed24_3dnow ( int32_t dst,
const float *  src,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_float_to_fixed24_sse()

void ff_float_to_fixed24_sse ( int32_t dst,
const float *  src,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_float_to_fixed24_sse2()

void ff_float_to_fixed24_sse2 ( int32_t dst,
const float *  src,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_compute_mantissa_size_sse2()

int ff_ac3_compute_mantissa_size_sse2 ( uint16_t  mant_cnt[6][16])

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_extract_exponents_sse2()

void ff_ac3_extract_exponents_sse2 ( uint8_t exp,
int32_t coef,
int  nb_coefs 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3_extract_exponents_ssse3()

void ff_ac3_extract_exponents_ssse3 ( uint8_t exp,
int32_t coef,
int  nb_coefs 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_round_mmxext()

void ff_apply_window_int16_round_mmxext ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_round_sse2()

void ff_apply_window_int16_round_sse2 ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_mmxext()

void ff_apply_window_int16_mmxext ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_sse2()

void ff_apply_window_int16_sse2 ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_ssse3()

void ff_apply_window_int16_ssse3 ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_apply_window_int16_ssse3_atom()

void ff_apply_window_int16_ssse3_atom ( int16_t *  output,
const int16_t *  input,
const int16_t *  window,
unsigned int  len 
)

Referenced by ff_ac3dsp_init_x86().

◆ ff_ac3dsp_init_x86()

av_cold void ff_ac3dsp_init_x86 ( AC3DSPContext c,
int  bit_exact 
)

Definition at line 66 of file ac3dsp_init.c.

Referenced by ff_ac3dsp_init().

◆ ff_ac3dsp_set_downmix_x86()

void ff_ac3dsp_set_downmix_x86 ( AC3DSPContext c)

Definition at line 139 of file ac3dsp_init.c.

Referenced by ff_ac3dsp_downmix().