Loading lib_rend/ivas_prot_rend.h +5 −5 Original line number Diff line number Diff line Loading @@ -1599,7 +1599,7 @@ void ivas_rend_closeCldfbRend( ivas_error ivas_TD_RINGBUF_Open( TD_RINGBUF_HANDLE *ph, /* i/o: Ring buffer handle */ const uint32_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t num_channels /* i : Number of channels */ ); Loading @@ -1610,21 +1610,21 @@ void ivas_TD_RINGBUF_Close( void ivas_TD_RINGBUF_Push( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const float *data, /* i : Input data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to store */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to store */ ); void ivas_TD_RINGBUF_PushZeros( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const uint32_t num_samples_per_channel /* i : Number of zeros per channel to store */ const uint16_t num_samples_per_channel /* i : Number of zeros per channel to store */ ); void ivas_TD_RINGBUF_Pop( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ float *data, /* i : Output data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to retrieve*/ const uint16_t num_samples_per_channel /* i : Number of samples per channel to retrieve*/ ); uint32_t ivas_TD_RINGBUF_Size( uint16_t ivas_TD_RINGBUF_Size( const TD_RINGBUF_HANDLE h /* i : Ring buffer handle */ ); Loading lib_rend/ivas_td_ring_buffer.c +10 −12 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ *******************************************************************************************************/ #include <assert.h> #include <stdint.h> #include <stdlib.h> #include "ivas_error_utils.h" #include "ivas_prot_rend.h" Loading Loading @@ -87,7 +88,7 @@ static int16_t ivas_td_ringbuf_has_space_for_num_samples( ivas_error ivas_TD_RINGBUF_Open( TD_RINGBUF_HANDLE *ph, /* i/o: Ring buffer handle */ const uint32_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t num_channels /* i : Number of channels */ ) { Loading Loading @@ -166,11 +167,10 @@ void ivas_TD_RINGBUF_Close( void ivas_TD_RINGBUF_Push( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const float *data, /* i : Input data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to store */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to store */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_has_space_for_num_samples( h, num_samples_per_channel * h->num_channels ) ); Loading Loading @@ -205,11 +205,10 @@ void ivas_TD_RINGBUF_Push( void ivas_TD_RINGBUF_PushZeros( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const uint32_t num_samples_per_channel /* i : Number of zeros per channel to store */ const uint16_t num_samples_per_channel /* i : Number of zeros per channel to store */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_has_space_for_num_samples( h, num_samples_per_channel * h->num_channels ) ); if ( !num_samples_per_channel ) Loading Loading @@ -249,11 +248,10 @@ void ivas_TD_RINGBUF_PushZeros( void ivas_TD_RINGBUF_Pop( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ float *data, /* i : Output data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to retrieve */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to retrieve */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_total_size( h ) >= num_samples_per_channel * h->num_channels ); Loading Loading @@ -286,9 +284,9 @@ void ivas_TD_RINGBUF_Pop( * Returns number of buffered samples per channel. *---------------------------------------------------------------------*/ uint32_t ivas_TD_RINGBUF_Size( uint16_t ivas_TD_RINGBUF_Size( const TD_RINGBUF_HANDLE h /* i : Ring buffer handle */ ) { return ivas_td_ringbuf_total_size( h ) / (uint32_t) h->num_channels; return (uint16_t) ( ivas_td_ringbuf_total_size( h ) / (uint32_t) h->num_channels ); } lib_rend/lib_rend.c +4 −4 Original line number Diff line number Diff line Loading @@ -1480,9 +1480,9 @@ static ivas_error alignInputDelay( { ivas_error error; input_ism *inputIsm; int16_t maxGlobalDelaySamples; int32_t numSamplesToPush, numSamplesToPop; uint32_t ringBufferSize, preDelay; int16_t maxGlobalDelaySamples, numSamplesToPop, numSamplesToPush; uint16_t ringBufferSize; uint32_t preDelay; maxGlobalDelaySamples = latencyNsToSamples( sampleRateOut, maxGlobalDelayNs ); maxGlobalDelaySamples *= cldfb2tdSampleFact; Loading Loading @@ -1521,7 +1521,7 @@ static ivas_error alignInputDelay( /* 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; numSamplesToPop = flushInputs ? ivas_TD_RINGBUF_Size( inputBase->delayBuffer ) : inputAudio.config.numSamplesPerChannel; ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data, numSamplesToPush ); ivas_TD_RINGBUF_Pop( inputBase->delayBuffer, inputBase->inputBuffer.data, numSamplesToPop ); Loading Loading
lib_rend/ivas_prot_rend.h +5 −5 Original line number Diff line number Diff line Loading @@ -1599,7 +1599,7 @@ void ivas_rend_closeCldfbRend( ivas_error ivas_TD_RINGBUF_Open( TD_RINGBUF_HANDLE *ph, /* i/o: Ring buffer handle */ const uint32_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t num_channels /* i : Number of channels */ ); Loading @@ -1610,21 +1610,21 @@ void ivas_TD_RINGBUF_Close( void ivas_TD_RINGBUF_Push( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const float *data, /* i : Input data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to store */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to store */ ); void ivas_TD_RINGBUF_PushZeros( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const uint32_t num_samples_per_channel /* i : Number of zeros per channel to store */ const uint16_t num_samples_per_channel /* i : Number of zeros per channel to store */ ); void ivas_TD_RINGBUF_Pop( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ float *data, /* i : Output data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to retrieve*/ const uint16_t num_samples_per_channel /* i : Number of samples per channel to retrieve*/ ); uint32_t ivas_TD_RINGBUF_Size( uint16_t ivas_TD_RINGBUF_Size( const TD_RINGBUF_HANDLE h /* i : Ring buffer handle */ ); Loading
lib_rend/ivas_td_ring_buffer.c +10 −12 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ *******************************************************************************************************/ #include <assert.h> #include <stdint.h> #include <stdlib.h> #include "ivas_error_utils.h" #include "ivas_prot_rend.h" Loading Loading @@ -87,7 +88,7 @@ static int16_t ivas_td_ringbuf_has_space_for_num_samples( ivas_error ivas_TD_RINGBUF_Open( TD_RINGBUF_HANDLE *ph, /* i/o: Ring buffer handle */ const uint32_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t capacity_per_channel, /* i : Number of samples stored per channel */ const uint16_t num_channels /* i : Number of channels */ ) { Loading Loading @@ -166,11 +167,10 @@ void ivas_TD_RINGBUF_Close( void ivas_TD_RINGBUF_Push( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const float *data, /* i : Input data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to store */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to store */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_has_space_for_num_samples( h, num_samples_per_channel * h->num_channels ) ); Loading Loading @@ -205,11 +205,10 @@ void ivas_TD_RINGBUF_Push( void ivas_TD_RINGBUF_PushZeros( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ const uint32_t num_samples_per_channel /* i : Number of zeros per channel to store */ const uint16_t num_samples_per_channel /* i : Number of zeros per channel to store */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_has_space_for_num_samples( h, num_samples_per_channel * h->num_channels ) ); if ( !num_samples_per_channel ) Loading Loading @@ -249,11 +248,10 @@ void ivas_TD_RINGBUF_PushZeros( void ivas_TD_RINGBUF_Pop( TD_RINGBUF_HANDLE h, /* i/o: Ring buffer handle */ float *data, /* i : Output data */ const uint32_t num_samples_per_channel /* i : Number of samples per channel to retrieve */ const uint16_t num_samples_per_channel /* i : Number of samples per channel to retrieve */ ) { uint32_t s; uint16_t c; uint16_t c, s; assert( ivas_td_ringbuf_total_size( h ) >= num_samples_per_channel * h->num_channels ); Loading Loading @@ -286,9 +284,9 @@ void ivas_TD_RINGBUF_Pop( * Returns number of buffered samples per channel. *---------------------------------------------------------------------*/ uint32_t ivas_TD_RINGBUF_Size( uint16_t ivas_TD_RINGBUF_Size( const TD_RINGBUF_HANDLE h /* i : Ring buffer handle */ ) { return ivas_td_ringbuf_total_size( h ) / (uint32_t) h->num_channels; return (uint16_t) ( ivas_td_ringbuf_total_size( h ) / (uint32_t) h->num_channels ); }
lib_rend/lib_rend.c +4 −4 Original line number Diff line number Diff line Loading @@ -1480,9 +1480,9 @@ static ivas_error alignInputDelay( { ivas_error error; input_ism *inputIsm; int16_t maxGlobalDelaySamples; int32_t numSamplesToPush, numSamplesToPop; uint32_t ringBufferSize, preDelay; int16_t maxGlobalDelaySamples, numSamplesToPop, numSamplesToPush; uint16_t ringBufferSize; uint32_t preDelay; maxGlobalDelaySamples = latencyNsToSamples( sampleRateOut, maxGlobalDelayNs ); maxGlobalDelaySamples *= cldfb2tdSampleFact; Loading Loading @@ -1521,7 +1521,7 @@ static ivas_error alignInputDelay( /* 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; numSamplesToPop = flushInputs ? ivas_TD_RINGBUF_Size( inputBase->delayBuffer ) : inputAudio.config.numSamplesPerChannel; ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data, numSamplesToPush ); ivas_TD_RINGBUF_Pop( inputBase->delayBuffer, inputBase->inputBuffer.data, numSamplesToPop ); Loading