diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index fc5bbc74d42d8a1440312594ad5f2b5268978f48..df88d59bbd0fa5071c551417eef505d1d709a89d 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1807,14 +1807,20 @@ ivas_error IVAS_DEC_GetSamplesRenderer( { hIvasDec->hasBeenFedFrame = false; set_s( pcmBuf, 0, hIvasDec->st_ivas->hDecoderConfig->nchan_out * nSamplesAsked ); +#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST + nSamplesRendered = nSamplesAsked; +#else hIvasDec->nSamplesRendered += nSamplesAsked; *nOutSamples = nSamplesAsked; +#endif hIvasDec->nSamplesAvailableNext -= nSamplesAsked; +#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( hIvasDec->nSamplesAvailableNext == 0 ) { hIvasDec->needNewFrame = true; *needNewFrame = true; } +#endif } else { @@ -1854,6 +1860,7 @@ ivas_error IVAS_DEC_GetSamplesRenderer( } nSamplesRendered += nSamplesRendered_loop; +#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST nSamplesToRender -= nSamplesRendered_loop; if ( hIvasDec->nSamplesAvailableNext == 0 ) { @@ -1864,15 +1871,23 @@ ivas_error IVAS_DEC_GetSamplesRenderer( { *needNewFrame = false; } -#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST - *nOutSamples = nSamplesRendered; #endif } -#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST - *nOutSamples = nSamplesRendered; +#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST + if ( hIvasDec->nSamplesAvailableNext == 0 ) + { + *needNewFrame = true; + hIvasDec->needNewFrame = true; + } + else + { + *needNewFrame = false; + } #endif + *nOutSamples = nSamplesRendered; + return IVAS_ERR_OK; }