Commit ec44f31f authored by vaclav's avatar vaclav
Browse files

Merge branch '1293-decoder-crash-with-new-error-pattern-which-starts-with-a-lost-frame' into 'main'

Resolve "Decoder crash with new error pattern (which starts with a lost frame) 2"

See merge request !2071
parents 1a5f22ac 86654d81
Loading
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -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;
}