Commit cfa8c6f8 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

rework the push/pop of the renderer delay buffers to be clearer; don't push in...

rework the push/pop of the renderer delay buffers to be clearer; don't push in new data while flushing inputs
parent a264e336
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -1337,6 +1337,7 @@ static ivas_error alignInputDelay(
    ivas_error error;
    input_ism *inputIsm;
    int16_t maxGlobalDelaySamples;
    int32_t numSamplesToPush, numSamplesToPop;
    uint32_t tmpSize;

    maxGlobalDelaySamples = NS2SA( sampleRateOut, maxGlobalDelayNs );
@@ -1366,9 +1367,13 @@ static ivas_error alignInputDelay(
        }
    }

    /* push in the new input data and pop to retrieve a complete input frame */
    ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data, inputAudio.config.numSamplesPerChannel );
    ivas_TD_RINGBUF_Pop( inputBase->delayBuffer, inputBase->inputBuffer.data, flushInputs ? ivas_TD_RINGBUF_Size( inputBase->delayBuffer ) : (uint32_t) inputAudio.config.numSamplesPerChannel );
    /* push in the new input data and pop to retrieve a complete input frame
     * if we are flushing the inputs, we don't push in any new data */
    numSamplesToPush = flushInputs ? 0 : inputAudio.config.numSamplesPerChannel;
    numSamplesToPop = flushInputs ? ivas_TD_RINGBUF_Size( inputBase->delayBuffer ) : (uint32_t) inputAudio.config.numSamplesPerChannel;

    ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data, numSamplesToPush );
    ivas_TD_RINGBUF_Pop( inputBase->delayBuffer, inputBase->inputBuffer.data, numSamplesToPop );

    return IVAS_ERR_OK;
}