139                       float c_re, 
float c_im,
 
  140                       float mag_totall, 
float mag_totalr,
 
  141                       float fl_phase, 
float fr_phase,
 
  142                       float bl_phase, 
float br_phase,
 
  143                       float sl_phase, 
float sr_phase,
 
  148                       float c_re, 
float c_im,
 
  149                       float lfe_re, 
float lfe_im,
 
  150                       float mag_totall, 
float mag_totalr,
 
  151                       float fl_phase, 
float fr_phase,
 
  152                       float bl_phase, 
float br_phase,
 
  153                       float sl_phase, 
float sr_phase,
 
  212     s->nb_in_channels = 
inlink->channels;
 
  214     if (!
s->input_levels)
 
  216     for (
ch = 0;  
ch < 
s->nb_in_channels; 
ch++)
 
  217         s->input_levels[
ch] = 
s->level_in;
 
  220         s->input_levels[
ch] *= 
s->fc_in;
 
  223         s->input_levels[
ch] *= 
s->fl_in;
 
  226         s->input_levels[
ch] *= 
s->fr_in;
 
  229         s->input_levels[
ch] *= 
s->sl_in;
 
  232         s->input_levels[
ch] *= 
s->sr_in;
 
  235         s->input_levels[
ch] *= 
s->bl_in;
 
  238         s->input_levels[
ch] *= 
s->br_in;
 
  241         s->input_levels[
ch] *= 
s->bc_in;
 
  244         s->input_levels[
ch] *= 
s->lfe_in;
 
  254     s->lowcut = 1.f * 
s->lowcutf / (
inlink->sample_rate * 0.5) * (
s->buf_size / 2);
 
  255     s->highcut = 1.f * 
s->highcutf / (
inlink->sample_rate * 0.5) * (
s->buf_size / 2);
 
  277     if (!
s->output_levels)
 
  279     for (
ch = 0;  
ch < 
s->nb_out_channels; 
ch++)
 
  280         s->output_levels[
ch] = 
s->level_out;
 
  283         s->output_levels[
ch] *= 
s->fc_out;
 
  286         s->output_levels[
ch] *= 
s->fl_out;
 
  289         s->output_levels[
ch] *= 
s->fr_out;
 
  292         s->output_levels[
ch] *= 
s->sl_out;
 
  295         s->output_levels[
ch] *= 
s->sr_out;
 
  298         s->output_levels[
ch] *= 
s->bl_out;
 
  301         s->output_levels[
ch] *= 
s->br_out;
 
  304         s->output_levels[
ch] *= 
s->bc_out;
 
  307         s->output_levels[
ch] *= 
s->lfe_out;
 
  311     if (!
s->overlap_buffer || !
s->output)
 
  319     float reference, 
r, 
a;
 
  324     reference = angle * 
M_PI / 180.f;
 
  328     if (fabsf(
a) <= M_PI_4)
 
  333     *x = av_clipf(
sinf(
a) * 
r, -1, 1);
 
  334     *y = av_clipf(
cosf(
a) * 
r, -1, 1);
 
  345 static inline void get_lfe(
int output_lfe, 
int n, 
float lowcut, 
float highcut,
 
  346                            float *lfe_mag, 
float *mag_total, 
int lfe_mode)
 
  348     if (output_lfe && 
n < highcut) {
 
  349         *lfe_mag    = 
n < lowcut ? 1.f : .5f*(1.f+
cosf(
M_PI*(lowcut-
n)/(lowcut-highcut)));
 
  350         *lfe_mag   *= *mag_total;
 
  352             *mag_total -= *lfe_mag;
 
  369     dst = (
float *)
s->output->extended_data[0];
 
  371     mag = 
powf(1.
f - fabsf(x), 
s->fc_x) * 
powf((y + 1.
f) * .5f, 
s->fc_y) * mag_total;
 
  373     dst[2 * 
n    ] = mag * 
cosf(c_phase);
 
  374     dst[2 * 
n + 1] = mag * 
sinf(c_phase);
 
  386     float l_mag, r_mag, *dstl, *dstr;
 
  388     dstl = (
float *)
s->output->extended_data[0];
 
  389     dstr = (
float *)
s->output->extended_data[1];
 
  391     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  392     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  394     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  395     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  397     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  398     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  410     float lfe_mag, l_mag, r_mag, *dstl, *dstr, *dstlfe;
 
  412     dstl = (
float *)
s->output->extended_data[0];
 
  413     dstr = (
float *)
s->output->extended_data[1];
 
  414     dstlfe = (
float *)
s->output->extended_data[2];
 
  416     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  418     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  419     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  421     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  422     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  424     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  425     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  427     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  428     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  440     float l_mag, r_mag, c_mag, *dstc, *dstl, *dstr;
 
  442     dstl = (
float *)
s->output->extended_data[0];
 
  443     dstr = (
float *)
s->output->extended_data[1];
 
  444     dstc = (
float *)
s->output->extended_data[2];
 
  446     c_mag = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5f, 
s->fc_y) * mag_total;
 
  447     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  448     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  450     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  451     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  453     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  454     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  456     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  457     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  469     float lfe_mag, l_mag, r_mag, c_mag, *dstc, *dstl, *dstr, *dstlfe;
 
  471     dstl = (
float *)
s->output->extended_data[0];
 
  472     dstr = (
float *)
s->output->extended_data[1];
 
  473     dstc = (
float *)
s->output->extended_data[2];
 
  474     dstlfe = (
float *)
s->output->extended_data[3];
 
  476     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  478     c_mag = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  479     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  480     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  482     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  483     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  485     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  486     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  488     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  489     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  491     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  492     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  505     float lfe_mag, l_mag, r_mag, *dstc, *dstl, *dstr, *dstlfe;
 
  507     dstl = (
float *)
s->output->extended_data[0];
 
  508     dstr = (
float *)
s->output->extended_data[1];
 
  509     dstc = (
float *)
s->output->extended_data[2];
 
  510     dstlfe = (
float *)
s->output->extended_data[3];
 
  512     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &c_mag, 
s->lfe_mode);
 
  514     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  515     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  517     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  518     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  520     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  521     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  523     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  524     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  526     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  527     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  539     float b_mag, l_mag, r_mag, c_mag, *dstc, *dstl, *dstr, *dstb;
 
  541     dstl = (
float *)
s->output->extended_data[0];
 
  542     dstr = (
float *)
s->output->extended_data[1];
 
  543     dstc = (
float *)
s->output->extended_data[2];
 
  544     dstb = (
float *)
s->output->extended_data[3];
 
  546     c_mag = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  547     b_mag = 
powf(1.
f - fabsf(x),   
s->bc_x) * 
powf((1.
f - y) * .5
f, 
s->bc_y) * mag_total;
 
  548     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  549     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  551     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  552     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  554     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  555     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  557     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  558     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  560     dstb[2 * 
n    ] = b_mag * 
cosf(c_phase);
 
  561     dstb[2 * 
n + 1] = b_mag * 
sinf(c_phase);
 
  573     float lfe_mag, b_mag, l_mag, r_mag, c_mag, *dstc, *dstl, *dstr, *dstb, *dstlfe;
 
  575     dstl = (
float *)
s->output->extended_data[0];
 
  576     dstr = (
float *)
s->output->extended_data[1];
 
  577     dstc = (
float *)
s->output->extended_data[2];
 
  578     dstlfe = (
float *)
s->output->extended_data[3];
 
  579     dstb = (
float *)
s->output->extended_data[4];
 
  581     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  583     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  584     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  586     c_mag = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  587     b_mag = 
powf(1.
f - fabsf(x),   
s->bc_x) * 
powf((1.
f - y) * .5
f, 
s->bc_y) * mag_total;
 
  588     l_mag = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  589     r_mag = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  591     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  592     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  594     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  595     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  597     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  598     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  600     dstb[2 * 
n    ] = b_mag * 
cosf(c_phase);
 
  601     dstb[2 * 
n + 1] = b_mag * 
sinf(c_phase);
 
  613     float l_mag, r_mag, ls_mag, rs_mag, c_mag, *dstc, *dstl, *dstr, *dstls, *dstrs;
 
  615     dstl  = (
float *)
s->output->extended_data[0];
 
  616     dstr  = (
float *)
s->output->extended_data[1];
 
  617     dstc  = (
float *)
s->output->extended_data[2];
 
  618     dstls = (
float *)
s->output->extended_data[3];
 
  619     dstrs = (
float *)
s->output->extended_data[4];
 
  621     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5f, 
s->fc_y) * mag_total;
 
  622     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  623     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  624     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  625     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  627     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  628     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  630     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  631     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  633     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  634     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  636     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  637     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  639     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  640     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  652     float lfe_mag, l_mag, r_mag, ls_mag, rs_mag, c_mag, *dstc, *dstl, *dstr, *dstls, *dstrs, *dstlfe;
 
  654     dstl  = (
float *)
s->output->extended_data[0];
 
  655     dstr  = (
float *)
s->output->extended_data[1];
 
  656     dstc  = (
float *)
s->output->extended_data[2];
 
  657     dstlfe = (
float *)
s->output->extended_data[3];
 
  658     dstls = (
float *)
s->output->extended_data[4];
 
  659     dstrs = (
float *)
s->output->extended_data[5];
 
  661     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  663     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  664     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  665     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  666     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  667     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  669     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  670     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  672     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  673     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  675     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  676     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  678     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  679     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  681     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  682     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  684     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  685     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  697     float l_mag, r_mag, ls_mag, rs_mag, c_mag, b_mag, *dstc, *dstb, *dstl, *dstr, *dstls, *dstrs;
 
  699     dstl  = (
float *)
s->output->extended_data[0];
 
  700     dstr  = (
float *)
s->output->extended_data[1];
 
  701     dstc  = (
float *)
s->output->extended_data[2];
 
  702     dstb  = (
float *)
s->output->extended_data[3];
 
  703     dstls = (
float *)
s->output->extended_data[4];
 
  704     dstrs = (
float *)
s->output->extended_data[5];
 
  706     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  707     b_mag  = 
powf(1.
f - fabsf(x),   
s->bc_x) * 
powf((1.
f - y) * .5
f, 
s->bc_y) * mag_total;
 
  708     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  709     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  710     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  711     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  713     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  714     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  716     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  717     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  719     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  720     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  722     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  723     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  725     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  726     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  728     dstb[2 * 
n    ] = b_mag * 
cosf(c_phase);
 
  729     dstb[2 * 
n + 1] = b_mag * 
sinf(c_phase);
 
  741     float lfe_mag, l_mag, r_mag, ls_mag, rs_mag, c_mag, b_mag, *dstc, *dstb, *dstl, *dstr, *dstls, *dstrs, *dstlfe;
 
  743     dstl  = (
float *)
s->output->extended_data[0];
 
  744     dstr  = (
float *)
s->output->extended_data[1];
 
  745     dstc  = (
float *)
s->output->extended_data[2];
 
  746     dstlfe = (
float *)
s->output->extended_data[3];
 
  747     dstb  = (
float *)
s->output->extended_data[4];
 
  748     dstls = (
float *)
s->output->extended_data[5];
 
  749     dstrs = (
float *)
s->output->extended_data[6];
 
  751     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  753     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  754     b_mag  = 
powf(1.
f - fabsf(x),   
s->bc_x) * 
powf((1.
f - y) * .5
f, 
s->bc_y) * mag_total;
 
  755     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  756     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  757     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  758     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  760     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  761     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  763     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  764     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  766     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  767     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  769     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  770     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  772     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  773     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  775     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  776     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  778     dstb[2 * 
n    ] = b_mag * 
cosf(c_phase);
 
  779     dstb[2 * 
n + 1] = b_mag * 
sinf(c_phase);
 
  792     float lfe_mag, l_mag, r_mag, *dstc, *dstl, *dstr, *dstlfe;
 
  793     float ls_mag, rs_mag, *dstls, *dstrs;
 
  795     dstl = (
float *)
s->output->extended_data[0];
 
  796     dstr = (
float *)
s->output->extended_data[1];
 
  797     dstc = (
float *)
s->output->extended_data[2];
 
  798     dstlfe = (
float *)
s->output->extended_data[3];
 
  799     dstls = (
float *)
s->output->extended_data[4];
 
  800     dstrs = (
float *)
s->output->extended_data[5];
 
  802     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &c_mag, 
s->lfe_mode);
 
  804     l_mag = 
powf(.5
f * ( x + 1.
f),  
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  805     r_mag = 
powf(.5
f * (-x + 1.
f),  
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  806     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  807     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  809     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  810     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  812     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  813     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  815     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  816     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  818     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  819     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  821     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  822     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  824     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  825     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  839     float c_mag, l_mag, r_mag, *dstc, *dstl, *dstr, *dstlfe;
 
  840     float ls_mag, rs_mag, *dstls, *dstrs;
 
  842     dstl = (
float *)
s->output->extended_data[0];
 
  843     dstr = (
float *)
s->output->extended_data[1];
 
  844     dstc = (
float *)
s->output->extended_data[2];
 
  845     dstlfe = (
float *)
s->output->extended_data[3];
 
  846     dstls = (
float *)
s->output->extended_data[4];
 
  847     dstrs = (
float *)
s->output->extended_data[5];
 
  849     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  850     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  851     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  852     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  853     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  855     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  856     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  858     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  859     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  861     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  862     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  864     dstlfe[2 * 
n    ] = lfe_re;
 
  865     dstlfe[2 * 
n + 1] = lfe_im;
 
  867     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  868     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  870     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  871     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  882     float l_mag, r_mag, ls_mag, rs_mag, c_mag, lb_mag, rb_mag;
 
  883     float *dstc, *dstl, *dstr, *dstls, *dstrs, *dstlb, *dstrb;
 
  886     dstl  = (
float *)
s->output->extended_data[0];
 
  887     dstr  = (
float *)
s->output->extended_data[1];
 
  888     dstc  = (
float *)
s->output->extended_data[2];
 
  889     dstlb = (
float *)
s->output->extended_data[3];
 
  890     dstrb = (
float *)
s->output->extended_data[4];
 
  891     dstls = (
float *)
s->output->extended_data[5];
 
  892     dstrs = (
float *)
s->output->extended_data[6];
 
  894     c_mag  = 
powf(1.
f - fabsf(x),   
s->fc_x) * 
powf((y + 1.
f) * .5f, 
s->fc_y) * mag_total;
 
  895     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  896     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  897     lb_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  898     rb_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  899     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->sl_x) * 
powf(1.
f - fabsf(y), 
s->sl_y) * mag_total;
 
  900     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->sr_x) * 
powf(1.
f - fabsf(y), 
s->sr_y) * mag_total;
 
  902     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  903     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  905     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  906     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  908     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  909     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  911     dstlb[2 * 
n    ] = lb_mag * 
cosf(l_phase);
 
  912     dstlb[2 * 
n + 1] = lb_mag * 
sinf(l_phase);
 
  914     dstrb[2 * 
n    ] = rb_mag * 
cosf(r_phase);
 
  915     dstrb[2 * 
n + 1] = rb_mag * 
sinf(r_phase);
 
  917     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  918     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  920     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  921     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  932     float lfe_mag, l_mag, r_mag, ls_mag, rs_mag, c_mag, lb_mag, rb_mag;
 
  933     float *dstc, *dstl, *dstr, *dstls, *dstrs, *dstlb, *dstrb, *dstlfe;
 
  936     dstl  = (
float *)
s->output->extended_data[0];
 
  937     dstr  = (
float *)
s->output->extended_data[1];
 
  938     dstc  = (
float *)
s->output->extended_data[2];
 
  939     dstlfe = (
float *)
s->output->extended_data[3];
 
  940     dstlb = (
float *)
s->output->extended_data[4];
 
  941     dstrb = (
float *)
s->output->extended_data[5];
 
  942     dstls = (
float *)
s->output->extended_data[6];
 
  943     dstrs = (
float *)
s->output->extended_data[7];
 
  945     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
  947     c_mag  = 
powf(1.
f - fabsf(x), 
s->fc_x)   * 
powf((y + 1.
f) * .5
f, 
s->fc_y) * mag_total;
 
  948     l_mag  = 
powf(.5
f * ( x + 1.
f), 
s->fl_x) * 
powf((y + 1.
f) * .5
f, 
s->fl_y) * mag_total;
 
  949     r_mag  = 
powf(.5
f * (-x + 1.
f), 
s->fr_x) * 
powf((y + 1.
f) * .5
f, 
s->fr_y) * mag_total;
 
  950     lb_mag = 
powf(.5
f * ( x + 1.
f), 
s->bl_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->bl_y) * mag_total;
 
  951     rb_mag = 
powf(.5
f * (-x + 1.
f), 
s->br_x) * 
powf(1.
f - ((y + 1.
f) * .5
f), 
s->br_y) * mag_total;
 
  952     ls_mag = 
powf(.5
f * ( x + 1.
f), 
s->sl_x) * 
powf(1.
f - fabsf(y), 
s->sl_y) * mag_total;
 
  953     rs_mag = 
powf(.5
f * (-x + 1.
f), 
s->sr_x) * 
powf(1.
f - fabsf(y), 
s->sr_y) * mag_total;
 
  955     dstl[2 * 
n    ] = l_mag * 
cosf(l_phase);
 
  956     dstl[2 * 
n + 1] = l_mag * 
sinf(l_phase);
 
  958     dstr[2 * 
n    ] = r_mag * 
cosf(r_phase);
 
  959     dstr[2 * 
n + 1] = r_mag * 
sinf(r_phase);
 
  961     dstc[2 * 
n    ] = c_mag * 
cosf(c_phase);
 
  962     dstc[2 * 
n + 1] = c_mag * 
sinf(c_phase);
 
  964     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
  965     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
  967     dstlb[2 * 
n    ] = lb_mag * 
cosf(l_phase);
 
  968     dstlb[2 * 
n + 1] = lb_mag * 
sinf(l_phase);
 
  970     dstrb[2 * 
n    ] = rb_mag * 
cosf(r_phase);
 
  971     dstrb[2 * 
n + 1] = rb_mag * 
sinf(r_phase);
 
  973     dstls[2 * 
n    ] = ls_mag * 
cosf(l_phase);
 
  974     dstls[2 * 
n + 1] = ls_mag * 
sinf(l_phase);
 
  976     dstrs[2 * 
n    ] = rs_mag * 
cosf(r_phase);
 
  977     dstrs[2 * 
n + 1] = rs_mag * 
sinf(r_phase);
 
  981                                float c_re, 
float c_im,
 
  982                                float mag_totall, 
float mag_totalr,
 
  983                                float fl_phase, 
float fr_phase,
 
  984                                float bl_phase, 
float br_phase,
 
  985                                float sl_phase, 
float sr_phase,
 
  990     float fl_mag, fr_mag, ls_mag, rs_mag, lb_mag, rb_mag;
 
  991     float *dstc, *dstl, *dstr, *dstls, *dstrs, *dstlb, *dstrb, *dstlfe;
 
  992     float lfe_mag, c_phase, mag_total = (mag_totall + mag_totalr) * 0.5;
 
  995     dstl  = (
float *)
s->output->extended_data[0];
 
  996     dstr  = (
float *)
s->output->extended_data[1];
 
  997     dstc  = (
float *)
s->output->extended_data[2];
 
  998     dstlfe = (
float *)
s->output->extended_data[3];
 
  999     dstlb = (
float *)
s->output->extended_data[4];
 
 1000     dstrb = (
float *)
s->output->extended_data[5];
 
 1001     dstls = (
float *)
s->output->extended_data[6];
 
 1002     dstrs = (
float *)
s->output->extended_data[7];
 
 1004     c_phase = 
atan2f(c_im, c_re);
 
 1006     get_lfe(
s->output_lfe, 
n, 
s->lowcut, 
s->highcut, &lfe_mag, &mag_total, 
s->lfe_mode);
 
 1008     fl_mag = 
powf(.5
f * (xl + 1.
f), 
s->fl_x) * 
powf((yl + 1.
f) * .5
f, 
s->fl_y) * mag_totall;
 
 1009     fr_mag = 
powf(.5
f * (xr + 1.
f), 
s->fr_x) * 
powf((yr + 1.
f) * .5
f, 
s->fr_y) * mag_totalr;
 
 1010     lb_mag = 
powf(.5
f * (-xl + 1.
f), 
s->bl_x) * 
powf((yl + 1.
f) * .5
f, 
s->bl_y) * mag_totall;
 
 1011     rb_mag = 
powf(.5
f * (-xr + 1.
f), 
s->br_x) * 
powf((yr + 1.
f) * .5
f, 
s->br_y) * mag_totalr;
 
 1012     ls_mag = 
powf(1.
f - fabsf(xl), 
s->sl_x) * 
powf((yl + 1.
f) * .5
f, 
s->sl_y) * mag_totall;
 
 1013     rs_mag = 
powf(1.
f - fabsf(xr), 
s->sr_x) * 
powf((yr + 1.
f) * .5
f, 
s->sr_y) * mag_totalr;
 
 1015     dstl[2 * 
n    ] = fl_mag * 
cosf(fl_phase);
 
 1016     dstl[2 * 
n + 1] = fl_mag * 
sinf(fl_phase);
 
 1018     dstr[2 * 
n    ] = fr_mag * 
cosf(fr_phase);
 
 1019     dstr[2 * 
n + 1] = fr_mag * 
sinf(fr_phase);
 
 1021     dstc[2 * 
n    ] = c_re;
 
 1022     dstc[2 * 
n + 1] = c_im;
 
 1024     dstlfe[2 * 
n    ] = lfe_mag * 
cosf(c_phase);
 
 1025     dstlfe[2 * 
n + 1] = lfe_mag * 
sinf(c_phase);
 
 1027     dstlb[2 * 
n    ] = lb_mag * 
cosf(bl_phase);
 
 1028     dstlb[2 * 
n + 1] = lb_mag * 
sinf(bl_phase);
 
 1030     dstrb[2 * 
n    ] = rb_mag * 
cosf(br_phase);
 
 1031     dstrb[2 * 
n + 1] = rb_mag * 
sinf(br_phase);
 
 1033     dstls[2 * 
n    ] = ls_mag * 
cosf(sl_phase);
 
 1034     dstls[2 * 
n + 1] = ls_mag * 
sinf(sl_phase);
 
 1036     dstrs[2 * 
n    ] = rs_mag * 
cosf(sr_phase);
 
 1037     dstrs[2 * 
n + 1] = rs_mag * 
sinf(sr_phase);
 
 1041                           float c_re, 
float c_im,
 
 1042                           float lfe_re, 
float lfe_im,
 
 1043                           float mag_totall, 
float mag_totalr,
 
 1044                           float fl_phase, 
float fr_phase,
 
 1045                           float bl_phase, 
float br_phase,
 
 1046                           float sl_phase, 
float sr_phase,
 
 1051     float fl_mag, fr_mag, ls_mag, rs_mag, lb_mag, rb_mag;
 
 1052     float *dstc, *dstl, *dstr, *dstls, *dstrs, *dstlb, *dstrb, *dstlfe;
 
 1055     dstl  = (
float *)
s->output->extended_data[0];
 
 1056     dstr  = (
float *)
s->output->extended_data[1];
 
 1057     dstc  = (
float *)
s->output->extended_data[2];
 
 1058     dstlfe = (
float *)
s->output->extended_data[3];
 
 1059     dstlb = (
float *)
s->output->extended_data[4];
 
 1060     dstrb = (
float *)
s->output->extended_data[5];
 
 1061     dstls = (
float *)
s->output->extended_data[6];
 
 1062     dstrs = (
float *)
s->output->extended_data[7];
 
 1064     fl_mag = 
powf(.5
f * (xl + 1.
f), 
s->fl_x) * 
powf((yl + 1.
f) * .5
f, 
s->fl_y) * mag_totall;
 
 1065     fr_mag = 
powf(.5
f * (xr + 1.
f), 
s->fr_x) * 
powf((yr + 1.
f) * .5
f, 
s->fr_y) * mag_totalr;
 
 1066     lb_mag = 
powf(.5
f * (-xl + 1.
f), 
s->bl_x) * 
powf((yl + 1.
f) * .5
f, 
s->bl_y) * mag_totall;
 
 1067     rb_mag = 
powf(.5
f * (-xr + 1.
f), 
s->br_x) * 
powf((yr + 1.
f) * .5
f, 
s->br_y) * mag_totalr;
 
 1068     ls_mag = 
powf(1.
f - fabsf(xl), 
s->sl_x) * 
powf((yl + 1.
f) * .5
f, 
s->sl_y) * mag_totall;
 
 1069     rs_mag = 
powf(1.
f - fabsf(xr), 
s->sr_x) * 
powf((yr + 1.
f) * .5
f, 
s->sr_y) * mag_totalr;
 
 1071     dstl[2 * 
n    ] = fl_mag * 
cosf(fl_phase);
 
 1072     dstl[2 * 
n + 1] = fl_mag * 
sinf(fl_phase);
 
 1074     dstr[2 * 
n    ] = fr_mag * 
cosf(fr_phase);
 
 1075     dstr[2 * 
n + 1] = fr_mag * 
sinf(fr_phase);
 
 1077     dstc[2 * 
n    ] = c_re;
 
 1078     dstc[2 * 
n + 1] = c_im;
 
 1080     dstlfe[2 * 
n    ] = lfe_re;
 
 1081     dstlfe[2 * 
n + 1] = lfe_im;
 
 1083     dstlb[2 * 
n    ] = lb_mag * 
cosf(bl_phase);
 
 1084     dstlb[2 * 
n + 1] = lb_mag * 
sinf(bl_phase);
 
 1086     dstrb[2 * 
n    ] = rb_mag * 
cosf(br_phase);
 
 1087     dstrb[2 * 
n + 1] = rb_mag * 
sinf(br_phase);
 
 1089     dstls[2 * 
n    ] = ls_mag * 
cosf(sl_phase);
 
 1090     dstls[2 * 
n + 1] = ls_mag * 
sinf(sl_phase);
 
 1092     dstrs[2 * 
n    ] = rs_mag * 
cosf(sr_phase);
 
 1093     dstrs[2 * 
n + 1] = rs_mag * 
sinf(sr_phase);
 
 1102     srcl = (
float *)
s->input->extended_data[0];
 
 1103     srcr = (
float *)
s->input->extended_data[1];
 
 1105     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1106         float l_re = srcl[2 * 
n], r_re = srcr[2 * 
n];
 
 1107         float l_im = srcl[2 * 
n + 1], r_im = srcr[2 * 
n + 1];
 
 1108         float c_phase = 
atan2f(l_im + r_im, l_re + r_re);
 
 1109         float l_mag = hypotf(l_re, l_im);
 
 1110         float r_mag = hypotf(r_re, r_im);
 
 1111         float l_phase = 
atan2f(l_im, l_re);
 
 1112         float r_phase = 
atan2f(r_im, r_re);
 
 1113         float phase_dif = fabsf(l_phase - r_phase);
 
 1114         float mag_sum = l_mag + r_mag;
 
 1115         float mag_dif = mag_sum < 0.000001 ? 
FFDIFFSIGN(l_mag, r_mag) : (l_mag - r_mag) / mag_sum;
 
 1116         float mag_total = hypotf(l_mag, r_mag);
 
 1119         if (phase_dif > 
M_PI)
 
 1120             phase_dif = 2 * 
M_PI - phase_dif;
 
 1125         s->upmix_stereo(
ctx, l_phase, r_phase, c_phase, mag_total, x, y, 
n);
 
 1132     float *srcl, *srcr, *srcc;
 
 1135     srcl = (
float *)
s->input->extended_data[0];
 
 1136     srcr = (
float *)
s->input->extended_data[1];
 
 1137     srcc = (
float *)
s->input->extended_data[2];
 
 1139     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1140         float l_re = srcl[2 * 
n], r_re = srcr[2 * 
n];
 
 1141         float l_im = srcl[2 * 
n + 1], r_im = srcr[2 * 
n + 1];
 
 1142         float c_re = srcc[2 * 
n], c_im = srcc[2 * 
n + 1];
 
 1143         float c_mag = hypotf(c_re, c_im);
 
 1144         float c_phase = 
atan2f(c_im, c_re);
 
 1145         float l_mag = hypotf(l_re, l_im);
 
 1146         float r_mag = hypotf(r_re, r_im);
 
 1147         float l_phase = 
atan2f(l_im, l_re);
 
 1148         float r_phase = 
atan2f(r_im, r_re);
 
 1149         float phase_dif = fabsf(l_phase - r_phase);
 
 1150         float mag_sum = l_mag + r_mag;
 
 1151         float mag_dif = mag_sum < 0.000001 ? 
FFDIFFSIGN(l_mag, r_mag) : (l_mag - r_mag) / mag_sum;
 
 1152         float mag_total = hypotf(l_mag, r_mag);
 
 1155         if (phase_dif > 
M_PI)
 
 1156             phase_dif = 2 * 
M_PI - phase_dif;
 
 1161         s->upmix_3_0(
ctx, l_phase, r_phase, c_phase, c_mag, mag_total, x, y, 
n);
 
 1168     float *srcl, *srcr, *srclfe;
 
 1171     srcl = (
float *)
s->input->extended_data[0];
 
 1172     srcr = (
float *)
s->input->extended_data[1];
 
 1173     srclfe = (
float *)
s->input->extended_data[2];
 
 1175     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1176         float l_re = srcl[2 * 
n], r_re = srcr[2 * 
n];
 
 1177         float l_im = srcl[2 * 
n + 1], r_im = srcr[2 * 
n + 1];
 
 1178         float lfe_re = srclfe[2 * 
n], lfe_im = srclfe[2 * 
n + 1];
 
 1179         float c_phase = 
atan2f(l_im + r_im, l_re + r_re);
 
 1180         float l_mag = hypotf(l_re, l_im);
 
 1181         float r_mag = hypotf(r_re, r_im);
 
 1182         float l_phase = 
atan2f(l_im, l_re);
 
 1183         float r_phase = 
atan2f(r_im, r_re);
 
 1184         float phase_dif = fabsf(l_phase - r_phase);
 
 1185         float mag_sum = l_mag + r_mag;
 
 1186         float mag_dif = mag_sum < 0.000001 ? 
FFDIFFSIGN(l_mag, r_mag) : (l_mag - r_mag) / mag_sum;
 
 1187         float mag_total = hypotf(l_mag, r_mag);
 
 1190         if (phase_dif > 
M_PI)
 
 1191             phase_dif = 2 * 
M_PI - phase_dif;
 
 1196         s->upmix_2_1(
ctx, l_phase, r_phase, c_phase, mag_total, lfe_re, lfe_im, x, y, 
n);
 
 1203     float *srcl, *srcr, *srcc, *srcsl, *srcsr;
 
 1206     srcl = (
float *)
s->input->extended_data[0];
 
 1207     srcr = (
float *)
s->input->extended_data[1];
 
 1208     srcc = (
float *)
s->input->extended_data[2];
 
 1209     srcsl = (
float *)
s->input->extended_data[3];
 
 1210     srcsr = (
float *)
s->input->extended_data[4];
 
 1212     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1213         float fl_re = srcl[2 * 
n], fr_re = srcr[2 * 
n];
 
 1214         float fl_im = srcl[2 * 
n + 1], fr_im = srcr[2 * 
n + 1];
 
 1215         float c_re = srcc[2 * 
n], c_im = srcc[2 * 
n + 1];
 
 1216         float sl_re = srcsl[2 * 
n], sl_im = srcsl[2 * 
n + 1];
 
 1217         float sr_re = srcsr[2 * 
n], sr_im = srcsr[2 * 
n + 1];
 
 1218         float fl_mag = hypotf(fl_re, fl_im);
 
 1219         float fr_mag = hypotf(fr_re, fr_im);
 
 1220         float fl_phase = 
atan2f(fl_im, fl_re);
 
 1221         float fr_phase = 
atan2f(fr_im, fr_re);
 
 1222         float sl_mag = hypotf(sl_re, sl_im);
 
 1223         float sr_mag = hypotf(sr_re, sr_im);
 
 1224         float sl_phase = 
atan2f(sl_im, sl_re);
 
 1225         float sr_phase = 
atan2f(sr_im, sr_re);
 
 1226         float phase_difl = fabsf(fl_phase - sl_phase);
 
 1227         float phase_difr = fabsf(fr_phase - sr_phase);
 
 1228         float magl_sum = fl_mag + sl_mag;
 
 1229         float magr_sum = fr_mag + sr_mag;
 
 1230         float mag_difl = magl_sum < 0.000001 ? 
FFDIFFSIGN(fl_mag, sl_mag) : (fl_mag - sl_mag) / magl_sum;
 
 1231         float mag_difr = magr_sum < 0.000001 ? 
FFDIFFSIGN(fr_mag, sr_mag) : (fr_mag - sr_mag) / magr_sum;
 
 1232         float mag_totall = hypotf(fl_mag, sl_mag);
 
 1233         float mag_totalr = hypotf(fr_mag, sr_mag);
 
 1234         float bl_phase = 
atan2f(fl_im + sl_im, fl_re + sl_re);
 
 1235         float br_phase = 
atan2f(fr_im + sr_im, fr_re + sr_re);
 
 1239         if (phase_difl > 
M_PI)
 
 1240             phase_difl = 2 * 
M_PI - phase_difl;
 
 1242         if (phase_difr > 
M_PI)
 
 1243             phase_difr = 2 * 
M_PI - phase_difr;
 
 1248         s->upmix_5_0(
ctx, c_re, c_im,
 
 1249                      mag_totall, mag_totalr,
 
 1260     float *srcl, *srcr, *srcc, *srclfe, *srcsl, *srcsr;
 
 1263     srcl = (
float *)
s->input->extended_data[0];
 
 1264     srcr = (
float *)
s->input->extended_data[1];
 
 1265     srcc = (
float *)
s->input->extended_data[2];
 
 1266     srclfe = (
float *)
s->input->extended_data[3];
 
 1267     srcsl = (
float *)
s->input->extended_data[4];
 
 1268     srcsr = (
float *)
s->input->extended_data[5];
 
 1270     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1271         float fl_re = srcl[2 * 
n], fr_re = srcr[2 * 
n];
 
 1272         float fl_im = srcl[2 * 
n + 1], fr_im = srcr[2 * 
n + 1];
 
 1273         float c_re = srcc[2 * 
n], c_im = srcc[2 * 
n + 1];
 
 1274         float lfe_re = srclfe[2 * 
n], lfe_im = srclfe[2 * 
n + 1];
 
 1275         float sl_re = srcsl[2 * 
n], sl_im = srcsl[2 * 
n + 1];
 
 1276         float sr_re = srcsr[2 * 
n], sr_im = srcsr[2 * 
n + 1];
 
 1277         float fl_mag = hypotf(fl_re, fl_im);
 
 1278         float fr_mag = hypotf(fr_re, fr_im);
 
 1279         float fl_phase = 
atan2f(fl_im, fl_re);
 
 1280         float fr_phase = 
atan2f(fr_im, fr_re);
 
 1281         float sl_mag = hypotf(sl_re, sl_im);
 
 1282         float sr_mag = hypotf(sr_re, sr_im);
 
 1283         float sl_phase = 
atan2f(sl_im, sl_re);
 
 1284         float sr_phase = 
atan2f(sr_im, sr_re);
 
 1285         float phase_difl = fabsf(fl_phase - sl_phase);
 
 1286         float phase_difr = fabsf(fr_phase - sr_phase);
 
 1287         float magl_sum = fl_mag + sl_mag;
 
 1288         float magr_sum = fr_mag + sr_mag;
 
 1289         float mag_difl = magl_sum < 0.000001 ? 
FFDIFFSIGN(fl_mag, sl_mag) : (fl_mag - sl_mag) / magl_sum;
 
 1290         float mag_difr = magr_sum < 0.000001 ? 
FFDIFFSIGN(fr_mag, sr_mag) : (fr_mag - sr_mag) / magr_sum;
 
 1291         float mag_totall = hypotf(fl_mag, sl_mag);
 
 1292         float mag_totalr = hypotf(fr_mag, sr_mag);
 
 1293         float bl_phase = 
atan2f(fl_im + sl_im, fl_re + sl_re);
 
 1294         float br_phase = 
atan2f(fr_im + sr_im, fr_re + sr_re);
 
 1298         if (phase_difl > 
M_PI)
 
 1299             phase_difl = 2 * 
M_PI - phase_difl;
 
 1301         if (phase_difr > 
M_PI)
 
 1302             phase_difr = 2 * 
M_PI - phase_difr;
 
 1307         s->upmix_5_1(
ctx, c_re, c_im, lfe_re, lfe_im,
 
 1308                      mag_totall, mag_totalr,
 
 1319     float *srcl, *srcr, *srcc, *srclfe, *srcbl, *srcbr;
 
 1322     srcl = (
float *)
s->input->extended_data[0];
 
 1323     srcr = (
float *)
s->input->extended_data[1];
 
 1324     srcc = (
float *)
s->input->extended_data[2];
 
 1325     srclfe = (
float *)
s->input->extended_data[3];
 
 1326     srcbl = (
float *)
s->input->extended_data[4];
 
 1327     srcbr = (
float *)
s->input->extended_data[5];
 
 1329     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1330         float fl_re = srcl[2 * 
n], fr_re = srcr[2 * 
n];
 
 1331         float fl_im = srcl[2 * 
n + 1], fr_im = srcr[2 * 
n + 1];
 
 1332         float c_re = srcc[2 * 
n], c_im = srcc[2 * 
n + 1];
 
 1333         float lfe_re = srclfe[2 * 
n], lfe_im = srclfe[2 * 
n + 1];
 
 1334         float bl_re = srcbl[2 * 
n], bl_im = srcbl[2 * 
n + 1];
 
 1335         float br_re = srcbr[2 * 
n], br_im = srcbr[2 * 
n + 1];
 
 1336         float fl_mag = hypotf(fl_re, fl_im);
 
 1337         float fr_mag = hypotf(fr_re, fr_im);
 
 1338         float fl_phase = 
atan2f(fl_im, fl_re);
 
 1339         float fr_phase = 
atan2f(fr_im, fr_re);
 
 1340         float bl_mag = hypotf(bl_re, bl_im);
 
 1341         float br_mag = hypotf(br_re, br_im);
 
 1342         float bl_phase = 
atan2f(bl_im, bl_re);
 
 1343         float br_phase = 
atan2f(br_im, br_re);
 
 1344         float phase_difl = fabsf(fl_phase - bl_phase);
 
 1345         float phase_difr = fabsf(fr_phase - br_phase);
 
 1346         float magl_sum = fl_mag + bl_mag;
 
 1347         float magr_sum = fr_mag + br_mag;
 
 1348         float mag_difl = magl_sum < 0.000001 ? 
FFDIFFSIGN(fl_mag, bl_mag) : (fl_mag - bl_mag) / magl_sum;
 
 1349         float mag_difr = magr_sum < 0.000001 ? 
FFDIFFSIGN(fr_mag, br_mag) : (fr_mag - br_mag) / magr_sum;
 
 1350         float mag_totall = hypotf(fl_mag, bl_mag);
 
 1351         float mag_totalr = hypotf(fr_mag, br_mag);
 
 1352         float sl_phase = 
atan2f(fl_im + bl_im, fl_re + bl_re);
 
 1353         float sr_phase = 
atan2f(fr_im + br_im, fr_re + br_re);
 
 1357         if (phase_difl > 
M_PI)
 
 1358             phase_difl = 2 * 
M_PI - phase_difl;
 
 1360         if (phase_difr > 
M_PI)
 
 1361             phase_difr = 2 * 
M_PI - phase_difr;
 
 1366         s->upmix_5_1(
ctx, c_re, c_im, lfe_re, lfe_im,
 
 1367                      mag_totall, mag_totalr,
 
 1383                s->out_channel_layout_str);
 
 1389                s->in_channel_layout_str);
 
 1393     if (
s->lowcutf >= 
s->highcutf) {
 
 1395                s->lowcutf, 
s->highcutf);
 
 1399     switch (
s->in_channel_layout) {
 
 1402         switch (
s->out_channel_layout) {
 
 1448         switch (
s->out_channel_layout) {
 
 1458         switch (
s->out_channel_layout) {
 
 1471         switch (
s->out_channel_layout) {
 
 1481         switch (
s->out_channel_layout) {
 
 1491         switch (
s->out_channel_layout) {
 
 1502                s->in_channel_layout_str, 
s->out_channel_layout_str);
 
 1506     s->buf_size = 1 << 
av_log2(
s->win_size);
 
 1509     s->window_func_lut = 
av_calloc(
s->buf_size, 
sizeof(*
s->window_func_lut));
 
 1510     if (!
s->window_func_lut)
 
 1514     if (
s->overlap == 1)
 
 1515         s->overlap = overlap;
 
 1517     for (
i = 0; 
i < 
s->buf_size; 
i++)
 
 1518         s->window_func_lut[
i] = sqrtf(
s->window_func_lut[
i] / 
s->buf_size);
 
 1519     s->hop_size = 
s->buf_size * (1. - 
s->overlap);
 
 1520     if (
s->hop_size <= 0)
 
 1523     if (
s->all_x >= 0.f)
 
 1524         s->fc_x = 
s->fl_x = 
s->fr_x = 
s->bc_x = 
s->sl_x = 
s->sr_x = 
s->bl_x = 
s->br_x = 
s->all_x;
 
 1525     if (
s->all_y >= 0.f)
 
 1526         s->fc_y = 
s->fl_y = 
s->fr_y = 
s->bc_y = 
s->sl_y = 
s->sr_y = 
s->bl_y = 
s->br_y = 
s->all_y;
 
 1534     const float level_in = 
s->input_levels[
ch];
 
 1538     memset(
s->input->extended_data[
ch] + 
s->buf_size * 
sizeof(
float), 0, 
s->buf_size * 
sizeof(
float));
 
 1540     dst = (
float *)
s->input->extended_data[
ch];
 
 1541     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1542         dst[
n] *= 
s->window_func_lut[
n] * level_in;
 
 1553     const float level_out = 
s->output_levels[
ch];
 
 1560     dst = (
float *)
s->output->extended_data[
ch];
 
 1561     ptr = (
float *)
s->overlap_buffer->extended_data[
ch];
 
 1563     memmove(
s->overlap_buffer->extended_data[
ch],
 
 1564             s->overlap_buffer->extended_data[
ch] + 
s->hop_size * 
sizeof(
float),
 
 1565             s->buf_size * 
sizeof(
float));
 
 1566     memset(
s->overlap_buffer->extended_data[
ch] + 
s->buf_size * 
sizeof(
float),
 
 1567            0, 
s->hop_size * 
sizeof(
float));
 
 1569     for (
n = 0; 
n < 
s->buf_size; 
n++) {
 
 1570         ptr[
n] += dst[
n] * 
s->window_func_lut[
n] * level_out;
 
 1573     ptr = (
float *)
s->overlap_buffer->extended_data[
ch];
 
 1574     dst = (
float *)
out->extended_data[
ch];
 
 1575     memcpy(dst, ptr, 
s->hop_size * 
sizeof(
float));
 
 1676     for (
ch = 0; 
ch < 
s->nb_in_channels; 
ch++) {
 
 1679     for (
ch = 0; 
ch < 
s->nb_out_channels; 
ch++) {
 
 1690 #define OFFSET(x) offsetof(AudioSurroundContext, x) 
 1691 #define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM 
 1793     .priv_class     = &surround_class,