Commit f000ced2 authored by vaclav's avatar vaclav
Browse files

fix USAN error

parent 78ec4e83
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1315,13 +1315,16 @@ ivas_error ivas_jbm_dec_render(
                else
                {
#endif

#if ( defined NONBE_UNIFIED_DECODING_PATHS && defined SPLIT_REND_WITH_HEAD_ROT )
                    if ( ( error = ivas_rend_crendProcessSubframe( 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 : p_tc, p_output, *nSamplesRendered, output_Fs, 0 ) ) != IVAS_ERR_OK )
#else
                if ( ( error = ivas_rend_crendProcessSubframe( 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 : p_tc, p_output, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )

#endif

                    {
                        return error;
                    }
+5 −0
Original line number Diff line number Diff line
@@ -565,7 +565,12 @@ void ivas_mc_paramupmix_dec_render(
#else
            ivas_mc_paramupmix_dec_sf( st_ivas, output_f_local );
#endif

#ifdef NONBE_UNIFIED_DECODING_PATHS_FIX
            for ( ch = 0; ch < min( MAX_OUTPUT_CHANNELS, ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ) ); ch++ )
#else
            for ( ch = 0; ch < MAX_OUTPUT_CHANNELS; ch++ )
#endif
            {
                output_f_local[ch] += n_samples_sf;
            }
+20 −0
Original line number Diff line number Diff line
@@ -973,7 +973,11 @@ ivas_error IVAS_DEC_GetSamples(
)
{
    ivas_error error;
#ifdef NONBE_UNIFIED_DECODING_PATHS_FIX
    int16_t nOutSamplesElse, result, nSamplesToRender;
#else
    int16_t nOutSamplesElse, nSamplesToRender;
#endif
    uint16_t nSamplesRendered, nSamplesRendered_loop, l_ts, nTimeScalerOutSamples;
    uint8_t nTransportChannels, nOutChannels;

@@ -1114,6 +1118,7 @@ ivas_error IVAS_DEC_GetSamples(
                        return IVAS_ERR_UNKNOWN;
                    }

#ifdef NONBE_UNIFIED_DECODING_PATHS_FIX
                    if ( apa_exec( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples ) != 0 )
                    {
                        return IVAS_ERR_UNKNOWN;
@@ -1121,11 +1126,26 @@ ivas_error IVAS_DEC_GetSamples(

                    assert( nTimeScalerOutSamples <= APA_BUF );
                    nSamplesTcsScaled = nTimeScalerOutSamples / nTransportChannels;
#else
                    result = apa_exec( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples );
                    if ( result != 0 )
                    {
                        return IVAS_ERR_UNKNOWN;
                    }
                    assert( nTimeScalerOutSamples <= APA_BUF );
#endif
                }
                else
                {
#ifdef NONBE_UNIFIED_DECODING_PATHS_FIX
                    nSamplesTcsScaled = hIvasDec->nSamplesFrame;
#else
                    nTimeScalerOutSamples = hIvasDec->nSamplesFrame * nTransportChannels;
#endif
                }
#ifndef NONBE_UNIFIED_DECODING_PATHS_FIX
                nSamplesTcsScaled = nTimeScalerOutSamples / nTransportChannels;
#endif

                /* IVAS renderer  */
                if ( ( error = IVAS_DEC_RendererFeedTcSamples( hIvasDec, nSamplesTcsScaled, &nResidualSamples, hIvasDec->apaExecBuffer ) ) != IVAS_ERR_OK )