32 for (
int i = 0;
i < n;
i++)
40 for (
int i = 0;
i < n;
i++) {
51 INT64FLOAT inre0[6], inre1[6], inim0[6], inim1[6];
53 for (
int j = 0; j < 6; j++) {
54 inre0[j] = in[j][0] + in[12 - j][0];
55 inre1[j] = in[j][1] - in[12 - j][1];
56 inim0[j] = in[j][1] + in[12 - j][1];
57 inim1[j] = in[j][0] - in[12 - j][0];
60 for (
int i = 0;
i < n;
i++) {
64 for (
int j = 0; j < 6; j++) {
71 out[
i *
stride][0] = (int)((sum_re + 0x40000000) >> 31);
72 out[
i *
stride][1] = (int)((sum_im + 0x40000000) >> 31);
85 for (
int j = 0; j <
len; j++) {
97 for (
int n = 0; n <
len; n++) {
98 out[0][n][
i] = in[
i][n][0];
99 out[1][n][
i] = in[
i][n][1];
112 Q31(0.56471812200776f),
113 Q31(0.48954165955695f) };
120 for (n = 0; n <
len; n++) {
126 INTFLOAT link_delay_re = ap_delay[m][n+2-m][0];
127 INTFLOAT link_delay_im = ap_delay[m][n+2-m][1];
128 INTFLOAT fractional_delay_re = Q_fract[m][0];
129 INTFLOAT fractional_delay_im = Q_fract[m][1];
132 in_re =
AAC_MSUB30(link_delay_re, fractional_delay_re,
133 link_delay_im, fractional_delay_im);
135 in_im =
AAC_MADD30(link_delay_re, fractional_delay_im,
136 link_delay_im, fractional_delay_re);
160 for (n = 0; n <
len; n++) {
185 UINTFLOAT hs00 = h_step[0][0], hs10 = h_step[1][0];
186 UINTFLOAT hs01 = h_step[0][1], hs11 = h_step[1][1];
187 UINTFLOAT hs02 = h_step[0][2], hs12 = h_step[1][2];
188 UINTFLOAT hs03 = h_step[0][3], hs13 = h_step[1][3];
191 for (n = 0; n <
len; n++) {
206 l[n][0] =
AAC_MSUB30_V8(h00, l_re, h02, r_re, h10, l_im, h12, r_im);
207 l[n][1] =
AAC_MADD30_V8(h00, l_im, h02, r_im, h10, l_re, h12, r_re);
208 r[n][0] =
AAC_MSUB30_V8(h01, l_re, h03, r_re, h11, l_im, h13, r_im);
209 r[n][1] =
AAC_MADD30_V8(h01, l_im, h03, r_im, h11, l_re, h13, r_re);
231#elif ARCH_X86 && HAVE_X86ASM
#define AAC_MADD30_V8(x, y, a, b, c, d, e, f)
#define AAC_MSUB30_V8(x, y, a, b, c, d, e, f)
#define AAC_MADD30(x, y, a, b)
#define AAC_MSUB30(x, y, a, b)
#define AAC_MADD28(x, y, a, b)
#define PS_QMF_TIME_SLOTS
static int phi_fract[2][50][2]
void ff_psdsp_init_x86(PSDSPContext *s)
void AAC_RENAME ff_psdsp_init(PSDSPContext *s)
void ff_psdsp_init_aarch64(PSDSPContext *s)
void ff_psdsp_init_arm(PSDSPContext *s)
void ff_psdsp_init_riscv(PSDSPContext *s)
static void ps_stereo_interpolate_ipdopd_c(INTFLOAT(*l)[2], INTFLOAT(*r)[2], INTFLOAT h[2][4], INTFLOAT h_step[2][4], int len)
static void ps_hybrid_analysis_ileave_c(INTFLOAT(*restrict out)[32][2], INTFLOAT L[2][38][64], int i, int len)
static void ps_stereo_interpolate_c(INTFLOAT(*l)[2], INTFLOAT(*r)[2], INTFLOAT h[2][4], INTFLOAT h_step[2][4], int len)
static void ps_hybrid_analysis_c(INTFLOAT(*restrict out)[2], INTFLOAT(*in)[2], const INTFLOAT(*filter)[8][2], ptrdiff_t stride, int n)
static void ps_add_squares_c(INTFLOAT *restrict dst, const INTFLOAT(*src)[2], int n)
static void ps_mul_pair_single_c(INTFLOAT(*restrict dst)[2], INTFLOAT(*src0)[2], INTFLOAT *src1, int n)
static void ps_decorrelate_c(INTFLOAT(*out)[2], INTFLOAT(*delay)[2], INTFLOAT(*ap_delay)[PS_QMF_TIME_SLOTS+PS_MAX_AP_DELAY][2], const INTFLOAT phi_fract[2], const INTFLOAT(*Q_fract)[2], const INTFLOAT *transient_gain, INTFLOAT g_decay_slope, int len)
static void ps_hybrid_synthesis_deint_c(INTFLOAT out[2][38][64], INTFLOAT(*restrict in)[32][2], int i, int len)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define i(width, name, range_min, range_max)
Macro definitions for various function/variable attributes.
static const float h0[64]
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)