Commit 7745e2b1 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Fix for 3GPP issue 1425: IssueAssert in generate_masking_noise_dirac_ivas_fx...

Fix for 3GPP issue 1425:  IssueAssert in generate_masking_noise_dirac_ivas_fx of BASOP decoder when fed with MASA bitstream from BASOP encoder

Link #1425
parent d74de338
Loading
Loading
Loading
Loading
Loading
+15 −19
Original line number Diff line number Diff line
@@ -1318,14 +1318,11 @@ Word16 ApplyFdCng_ivas_fx(
                                e_shift = sub( s, q_norm );
                            }
                        }
                        FOR( ; k < hFdCngCom->npart; k++ )
                        {
                            FOR( ; j <= hFdCngCom->part[k]; j++ )
                        FOR( ; j < FFTCLDFBLEN; j++ )
                        {
                            cngNoiseLevel[j] = L_shl( cngNoiseLevel[j], sub( s, e_shift ) ); /*Q: s*/
                            move32();
                        }
                        }

                        *cngNoiseLevel_exp = add( add( hFdCngDec->bandNoiseShape_exp, s2 ), e_shift );
                        move16();
@@ -1685,14 +1682,13 @@ Word16 ApplyFdCng_ivas_fx(
                    }
                    /* adapt scaling for rest of the buffer */
                    s = sub( *cngNoiseLevel_exp, add( hFdCngDec->bandNoiseShape_exp, s2 ) );
                    FOR( ; k < hFdCngCom->npart; k++ )
                    {
                        FOR( ; j <= hFdCngCom->part[k]; j++ )

                    FOR( ; j < FFTCLDFBLEN; j++ )
                    {
                        cngNoiseLevel[j] = L_shl( cngNoiseLevel[j], s ); /*Q31 - hFdCngDec->bandNoiseShape_exp + s*/
                        move32();
                    }
                    }

                    *cngNoiseLevel_exp = add( hFdCngDec->bandNoiseShape_exp, s2 );
                    move16();
                }
@@ -1759,15 +1755,15 @@ Word16 ApplyFdCng_ivas_fx(
                    }
                    /* adapt scaling for rest of the buffer */
                    s = sub( *cngNoiseLevel_exp, add( hFdCngDec->bandNoiseShape_exp, s2 ) );
                    FOR( ; k < hFdCngCom->npart; k++ )
                    {
                        FOR( ; j <= hFdCngCom->part[k]; j++ )

                    FOR( ; j < FFTCLDFBLEN; j++ )
                    {
                        /* NOTE: saturation is added here as part of issue 1218 fix. after rescaling the fdcng noise estimation buffers, due to slight precision loss, values may slightly overflow */
                        cngNoiseLevel[j] = L_shl_sat( cngNoiseLevel[j], s ); /*Q31 - hFdCngDec->bandNoiseShape_exp + s*/
                        move32();
                    }
                    }


                    *cngNoiseLevel_exp = add( hFdCngDec->bandNoiseShape_exp, s2 );
                    move16();
                }