Commit 5662f95b authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch '3gpp_issue_1070_fix' into 'main'

Fix for 3GPP issue 1070: Assertion in McMASA encoder when computing LFE energy

See merge request !846
parents 39d4a5d1 58cac4c7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2255,15 +2255,15 @@ static void computeLfeEnergy_fx(
        Copy32( &( hMcMasa->delay_buffer_lfe[1][0] ), &( delayedInputSignal[1][0] ), hMcMasa->num_slots_delay_comp * l_ts );
        Copy32( data_fx[separateChannelIndex] + hMcMasa->offset_comp, &( delayedInputSignal[1][hMcMasa->num_slots_delay_comp * l_ts] ), ( MDFT_NO_COL_MAX - hMcMasa->num_slots_delay_comp ) * l_ts );

        lowpassCoef = L_shl( div_w( 1, (Word32) hMcMasa->ringBufferSize ), Q7 ); // Q.38
        lowpassCoef = L_shl( div_w( 1, (Word32) hMcMasa->ringBufferSize ), Q6 ); // Q.37(31+6)

        FOR( i = 0; i < input_frame; i++ )
        {
            FOR( j = 0; j < 2; j++ )
            {
                Word32 temp1, temp2;
                temp1 = Mpy_32_32( delayedInputSignal[j][i], lowpassCoef );                                 // Q(q_inp+7-gb)
                temp2 = Mpy_32_32( hMcMasa->lfeAnaRingBuffer[j][hMcMasa->ringBufferPointer], lowpassCoef ); // Q(q_inp+7-gb)
                temp1 = Mpy_32_32( delayedInputSignal[j][i], lowpassCoef );                                 // Q(q_inp+6)
                temp2 = Mpy_32_32( hMcMasa->lfeAnaRingBuffer[j][hMcMasa->ringBufferPointer], lowpassCoef ); // Q(q_inp+6)
                hMcMasa->lowpassSum[j] = L_add( hMcMasa->lowpassSum[j], L_sub( temp1, temp2 ) );
                move32();
                lowPassSignal[j][i] = hMcMasa->lowpassSum[j];
@@ -2279,7 +2279,7 @@ static void computeLfeEnergy_fx(
                hMcMasa->ringBufferPointer = sub( hMcMasa->ringBufferSize, 1 );
            }
        }
        lowPassSignal_q = add( q_inp, Q7 );
        lowPassSignal_q = add( q_inp, Q6 );
        FOR( block_m_idx = 0; block_m_idx < MAX_PARAM_SPATIAL_SUBFRAMES; block_m_idx++ )
        {
            mrange[0] = i_mult( hMcMasa->block_grouping[block_m_idx], l_ts );