Commit 82a40dbc authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Fix basop issue 2326 by changing scaling to apply to only correct number of channels and samples

parent bdda6081
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@
#define HARM_CORECODER_UPDT                             /* VA: basop issue 2342: Remove duplicated code in core-coder common update functions */
#define HARM_CORE_SW                                    /* VA: basop issue 2314: Remove duplicated code in the core switching */
#define HARM_PREPROC                                    /* VA: basop issue 2339: Remove duplicated code in the core-coder DTX  */
#define FIX_BASOP_2326_WRONG_SIG_LENGTH                 /* Nokia: basop issue 2326: Fix issue by using correct signal length in multiple places */

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

+20 −0
Original line number Diff line number Diff line
@@ -9112,8 +9112,15 @@ static ivas_error renderInputMasa(
            }

            copyMasaMetadataToDiracRenderer_fx( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin );
#ifdef FIX_BASOP_2326_WRONG_SIG_LENGTH
            FOR( ch = 0; ch < inAudio.config.numChannels; ch++ )
            {
                Scale_sig32( tmpBuffer_buff_fx[ch], inAudio.config.numSamplesPerChannel, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
            }
#else
            Scale_sig32( tmpBuffer_buff_fx[0], L_FRAME48k, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
            Scale_sig32( tmpBuffer_buff_fx[1], L_FRAME48k, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
#endif
            // scale_sig32( outAudio.data_fx, i_mult( outAudio.config.numChannels, outAudio.config.numSamplesPerChannel ), sub( Q11, *outAudio.pq_fact ) );

            ivas_masa_ext_rend_parambin_render_fx( masaInput->hMasaExtRend, *masaInput->base.ctx.pCombinedOrientationData, tmpBuffer_fx, num_subframes, masaInput->base.ctx.pSplitRendWrapper, Cldfb_RealBuffer_Binaural, Cldfb_ImagBuffer_Binaural );
@@ -9137,9 +9144,15 @@ static ivas_error renderInputMasa(
                        masaInput->hMasaExtRend->cldfbAnaRend[0]->Q_cldfb_state = Q11;
                        move16();
                    }
#ifdef FIX_BASOP_2326_WRONG_SIG_LENGTH
                    FOR( ch = 0; ch < inAudio.config.numChannels; ch++ )
                    {
                        Scale_sig32( tmpBuffer_buff_fx[ch], inAudio.config.numSamplesPerChannel, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
#else
                    FOR( ch = 0; ch < MAX_OUTPUT_CHANNELS; ch++ )
                    {
                        Scale_sig32( tmpBuffer_buff_fx[ch], L_FRAME48k, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
#endif
                    }

                    scale_sig32( outAudio.data_fx, i_mult( outAudio.config.numChannels, outAudio.config.numSamplesPerChannel ), sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
@@ -9164,8 +9177,15 @@ static ivas_error renderInputMasa(

                    copyMasaMetadataToDiracRenderer_fx( &masaInput->masaMetadata, masaInput->hMasaExtRend->hSpatParamRendCom, maxBin );

#ifdef FIX_BASOP_2326_WRONG_SIG_LENGTH
                    FOR( ch = 0; ch < inAudio.config.numChannels; ch++ )
                    {
                        Scale_sig32( tmpBuffer_buff_fx[ch], inAudio.config.numSamplesPerChannel, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
                    }
#else
                    Scale_sig32( tmpBuffer_buff_fx[0], L_FRAME48k, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
                    Scale_sig32( tmpBuffer_buff_fx[1], L_FRAME48k, sub( Q11, *outAudio.pq_fact ) ); /* Q11 */
#endif

                    scale_sig32( outAudio.data_fx, i_mult( outAudio.config.numChannels, outAudio.config.numSamplesPerChannel ), sub( Q11, *outAudio.pq_fact ) );