From d405b0003ddd3766930ff739bf2bb01f3db150f0 Mon Sep 17 00:00:00 2001 From: vaclav Date: Sun, 6 Apr 2025 16:10:42 +0200 Subject: [PATCH] Addition to NONBE_1293_CRASH_FIRST_FRAME_LOST to fix "-fr 5/10" outputs --- lib_dec/lib_dec.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 52c50f0140..f110f317fa 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1714,14 +1714,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 { @@ -1761,6 +1767,7 @@ ivas_error IVAS_DEC_GetSamplesRenderer( } nSamplesRendered += nSamplesRendered_loop; +#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST nSamplesToRender -= nSamplesRendered_loop; if ( hIvasDec->nSamplesAvailableNext == 0 ) { @@ -1771,15 +1778,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; } -- GitLab