Commit b69cc3e2 authored by multrus's avatar multrus
Browse files

Merge branch 'basop_issue_2532_cx_e' into 'main'

Fixed: Basop issue 2532 "Review usage of cx_e and cx_next_band_e in ivas_param_mc_dec_prepare_renderer()"

See merge request !2956
parents 58dacf3a 32379c39
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@
#define HARMONIZE_2499_CONFIGUREFDCNGDEC                /* FhG: basop issue 2499: harmonoize configureFdCngDec */
#define FIX_BASOP_2530_IVAS_DECISION_MAT                /* VA: Fix ambiguous usage of extract_l() */
#define FIX_BASOP_2546_HARMONIZE_TCX_SCALAR             /* FhG: Fix issue 2546 Harmonize function tcx_scalar_quantization_rateloop*/
#define FIX_BASOP_2532_cx_e                             /* FhG: Fix issue 2532 about additional exponent variable*/

/* #################### End BE switches ################################## */

+12 −0
Original line number Diff line number Diff line
@@ -1801,6 +1801,10 @@ void ivas_param_mc_dec_prepare_renderer(
            }
        }
        cx_e = max_e;
#ifdef FIX_BASOP_2532_cx_e
        cx_next_band_e = max_e;
        move16();
#endif
        move16();

        /* we have to do it similar to the encoder in case of attacks (i.e. accumulate two bands) to ensure correct DMX of the target covariance*/
@@ -1815,7 +1819,11 @@ void ivas_param_mc_dec_prepare_renderer(
                Scale_sig32( cx_fx, len, -Q1 );           // add one bit head room
                Scale_sig32( cx_next_band_fx, len, -Q1 ); // add one bit head room
                cx_e = add( cx_e, Q1 );
#ifndef FIX_BASOP_2532_cx_e
                cx_next_band_e = add( cx_e, Q1 );
#else
                cx_next_band_e = add( cx_next_band_e, Q1 );
#endif // !FIX_BASOP_2532_cx_e
            }
            v_add_fx( cx_fx, cx_next_band_fx, cx_fx, len );
            Copy32( cx_fx, cx_next_band_fx, len );
@@ -1834,7 +1842,11 @@ void ivas_param_mc_dec_prepare_renderer(
                IF( is_next_band )
                {

#ifndef FIX_BASOP_2532_cx_e
                    ivas_param_mc_get_mixing_matrices_fx( hParamMC, hSynthesisOutputSetup, cx_next_band_fx, cx_next_band_e, add( param_band_idx, is_next_band ), hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp, nchan_out_transport, hParamMC->synthesis_conf, nchan_transport, nchan_out_cov );
#else
                    ivas_param_mc_get_mixing_matrices_fx( hParamMC, hSynthesisOutputSetup, cx_next_band_fx, cx_e, add( param_band_idx, is_next_band ), hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx, hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp, nchan_out_transport, hParamMC->synthesis_conf, nchan_transport, nchan_out_cov );
#endif
                }
                ELSE
                {