Go to the documentation of this file.
84 1.09050773266525765921,
85 1.18920711500272106672,
95 static inline float *
VMUL2(
float *dst,
const float *v,
unsigned idx,
99 *dst++ = v[idx & 15] *
s;
100 *dst++ = v[idx>>4 & 15] *
s;
106 static inline float *
VMUL4(
float *dst,
const float *v,
unsigned idx,
110 *dst++ = v[idx & 3] *
s;
111 *dst++ = v[idx>>2 & 3] *
s;
112 *dst++ = v[idx>>4 & 3] *
s;
113 *dst++ = v[idx>>6 & 3] *
s;
119 static inline float *
VMUL2S(
float *dst,
const float *v,
unsigned idx,
120 unsigned sign,
const float *
scale)
125 s0.i ^= sign >> 1 << 31;
128 *dst++ = v[idx & 15] *
s0.f;
129 *dst++ = v[idx>>4 & 15] *
s1.f;
136 static inline float *
VMUL4S(
float *dst,
const float *v,
unsigned idx,
137 unsigned sign,
const float *
scale)
139 unsigned nz = idx >> 12;
143 t.
i =
s.i ^ (sign & 1
U<<31);
144 *dst++ = v[idx & 3] * t.
f;
146 sign <<= nz & 1; nz >>= 1;
147 t.
i =
s.i ^ (sign & 1
U<<31);
148 *dst++ = v[idx>>2 & 3] * t.
f;
150 sign <<= nz & 1; nz >>= 1;
151 t.
i =
s.i ^ (sign & 1
U<<31);
152 *dst++ = v[idx>>4 & 3] * t.
f;
155 t.
i =
s.i ^ (sign & 1
U<<31);
156 *dst++ = v[idx>>6 & 3] * t.
f;
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
static float sine_120[120]
static float * VMUL2(float *dst, const float *v, unsigned idx, const float *scale)
Dequantization-related.
void ff_cbrt_tableinit(void)
static float * VMUL2S(float *dst, const float *v, unsigned idx, unsigned sign, const float *scale)
int flags
AV_CODEC_FLAG_*.
static int ff_thread_once(char *control, void(*routine)(void))
static float * VMUL4(float *dst, const float *v, unsigned idx, const float *scale)
static float sine_960[960]
FF_VISIBILITY_PUSH_HIDDEN void ff_aac_sbr_init(void)
Initialize SBR.
#define DECLARE_ALIGNED(n, t, v)
void ff_aac_float_common_init(void)
static float aac_kbd_long_960[960]
void ff_sine_window_init(float *window, int n)
Generate a sine window.
static float * VMUL4S(float *dst, const float *v, unsigned idx, unsigned sign, const float *scale)
main AAC decoding context
static const float cce_scale[]
struct AVCodecContext * avctx
void ff_init_ff_sine_windows(int index)
initialize the specified entry of ff_sine_windows
av_cold void ff_kbd_window_init(float *window, float alpha, int n)
Generate a Kaiser-Bessel Derived Window.
#define AV_CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
static void scale(int *out, const int *in, const int w, const int h, const int shift)
static void init_tables_float_fn(void)
av_cold AVFloatDSPContext * avpriv_float_dsp_alloc(int bit_exact)
Allocate a float DSP context.
static int init(AACDecContext *ac)
static float aac_kbd_short_120[120]