Commit 0f63ac97 authored by vaclav's avatar vaclav
Browse files

port NONBE_1293_CRASH_FIRST_FRAME_LOST, !2071 part

parent 9efc75cc
Loading
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -1683,14 +1683,20 @@ ivas_error IVAS_DEC_GetSamples(
    {
        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
    {
@@ -1813,6 +1819,7 @@ ivas_error IVAS_DEC_GetSamples(
            }

            nSamplesRendered += nSamplesRendered_loop;
#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST
            nSamplesToRender -= nSamplesRendered_loop;
            if ( hIvasDec->nSamplesAvailableNext == 0 )
            {
@@ -1823,16 +1830,24 @@ ivas_error IVAS_DEC_GetSamples(
            {
                *needNewFrame = false;
            }
#endif
        }
    }

#ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST
            *nOutSamples = nSamplesRendered;
#endif
    if ( hIvasDec->nSamplesAvailableNext == 0 )
    {
        *needNewFrame = true;
        hIvasDec->needNewFrame = true;
    }
    else
    {
        *needNewFrame = false;
    }
#endif

#ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST
    *nOutSamples = nSamplesRendered;
#endif

    return IVAS_ERR_OK;
}