Commit aa4403e1 authored by emerit's avatar emerit
Browse files

fix asan fail

parent c051627e
Loading
Loading
Loading
Loading
Loading
+33 −26
Original line number Original line Diff line number Diff line
@@ -2302,9 +2302,7 @@ ivas_error ivas_jbm_dec_render_fx(


        IF( EQ_32( st_ivas->mc_mode, MC_MODE_MCT ) )
        IF( EQ_32( st_ivas->mc_mode, MC_MODE_MCT ) )
        {
        {
#ifndef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
            Word16 crendInPlaceRotation = FALSE;
            Word16 crendInPlaceRotation = FALSE;
#endif
            move16();
            move16();
            *nSamplesRendered = s_min( st_ivas->hTcBuffer->n_samples_available, nSamplesAskedLocal );
            *nSamplesRendered = s_min( st_ivas->hTcBuffer->n_samples_available, nSamplesAskedLocal );
            move16();
            move16();
@@ -2316,14 +2314,10 @@ ivas_error ivas_jbm_dec_render_fx(
            {
            {
                IF( LT_16( add( st_ivas->hTransSetup.nchan_out_woLFE, st_ivas->hTransSetup.num_lfe ), add( st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hIntSetup.num_lfe ) ) )
                IF( LT_16( add( st_ivas->hTransSetup.nchan_out_woLFE, st_ivas->hTransSetup.num_lfe ), add( st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hIntSetup.num_lfe ) ) )
                {
                {
#ifndef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    crendInPlaceRotation = TRUE;
                    crendInPlaceRotation = TRUE;
                    move16();
                    move16();


                    ivas_mc2sba_fx( st_ivas->hTransSetup, p_tc_fx, p_output_fx, *nSamplesRendered, st_ivas->hIntSetup.ambisonics_order, GAIN_LFE_FX );
                    ivas_mc2sba_fx( st_ivas->hTransSetup, p_tc_fx, p_output_fx, *nSamplesRendered, st_ivas->hIntSetup.ambisonics_order, GAIN_LFE_FX );
#else
                    ivas_mc2sba_fx( st_ivas->hTransSetup, p_tc_fx, p_tc_fx, *nSamplesRendered, st_ivas->hIntSetup.ambisonics_order, GAIN_LFE_FX );
#endif
                }
                }
            }
            }


@@ -2348,43 +2342,49 @@ ivas_error ivas_jbm_dec_render_fx(
                *st_ivas->hCrendWrapper->p_io_qfactor = exp;
                *st_ivas->hCrendWrapper->p_io_qfactor = exp;
                move16();
                move16();


#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                if ( crendInPlaceRotation )
                {
                    FOR( i = 0; i < nchan_in; i++ )
                    FOR( i = 0; i < nchan_in; i++ )
                    {
                    {
#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                        scale_sig32( p_output_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                        IF( st_ivas->hDecoderConfig->Opt_tsm )
                        {
                            scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                            scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                        }
                    }
                }
                else
                {
                    FOR( i = 0; i < nchan_in; i++ )
                    {
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    }
                }
#else
#else
                FOR( i = 0; i < nchan_in; i++ )
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    scale_sig32( p_output_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    IF( st_ivas->hDecoderConfig->Opt_tsm )
                    IF( st_ivas->hDecoderConfig->Opt_tsm )
                    {
                    {
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    }
                    }
#endif
                }
                }
#endif


                IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
                IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
                {
                {
#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    IF( ( error = ivas_rend_crendProcessSubframesSplitBin( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, ( st_ivas->hSplitBinRend == NULL ) ? NULL : &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                           &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )
#else
                    IF( ( error = ivas_rend_crendProcessSubframesSplitBin( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, ( st_ivas->hSplitBinRend == NULL ) ? NULL : &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                    IF( ( error = ivas_rend_crendProcessSubframesSplitBin( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, ( st_ivas->hSplitBinRend == NULL ) ? NULL : &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                           &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )
                                                                           &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )
#endif
                    {
                    {
                        return error;
                        return error;
                    }
                    }
                }
                }
                ELSE
                ELSE
                {
                {
#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    IF( NE_32( ( error = ivas_rend_crendProcessSubframe_fx( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                            &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs, 0 ) ),
                               IVAS_ERR_OK ) )
#else
                    IF( NE_32( ( error = ivas_rend_crendProcessSubframe_fx( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                    IF( NE_32( ( error = ivas_rend_crendProcessSubframe_fx( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                            &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs, 0 ) ),
                                                                            &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs, 0 ) ),
                               IVAS_ERR_OK ) )
                               IVAS_ERR_OK ) )
#endif
                    {
                    {
                        return error;
                        return error;
                    }
                    }
@@ -2405,14 +2405,22 @@ ivas_error ivas_jbm_dec_render_fx(
                }
                }


#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                FOR( i = 0; i < nchan_out; i++ )
                if ( crendInPlaceRotation )
                {
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                    n = nchan_in;
                }
                }

                else
                {
                    n = nchan_out;
                    n = nchan_out;
                }
                move16();
                move16();
                IF( st_ivas->hDecoderConfig->Opt_tsm )

                FOR( i = 0; i < n; i++ )
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                }

                IF( st_ivas->hDecoderConfig->Opt_tsm && crendInPlaceRotation )
                {
                {
                    n = 0;
                    n = 0;
                    move16();
                    move16();
@@ -2422,7 +2430,6 @@ ivas_error ivas_jbm_dec_render_fx(
                {
                {
                    scale_sig32( p_tc_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                    scale_sig32( p_tc_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                }
                }

#else
#else
                FOR( i = 0; i < nchan_in; i++ )
                FOR( i = 0; i < nchan_in; i++ )
                {
                {