Commit c26c2f3b authored by TYAGIRIS's avatar TYAGIRIS
Browse files

fixes for 5ms PCM modes

parent 5604d3b7
Loading
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -1928,8 +1928,26 @@ int main(
#ifdef SPLIT_REND_WITH_HEAD_ROT
        for ( i = 0; i < args.inConfig.numBinBuses; ++i )
        {
#ifdef SPLIT_REND_LCLD_5MS
            if ( numSamplesRead > 0 )
            {
                if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, splitBinIds[i], &numChannels ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                    exit( -1 );
                }
                IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.binBuses[i].inputChannelIndex, numChannels );

                if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, splitBinIds[i], tmpBuffer ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                    exit( -1 );
                }
            }
#endif
            if ( splitBinNeedsNewFrame )
            {
#ifndef SPLIT_REND_LCLD_5MS
                if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, splitBinIds[i], &numChannels ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
@@ -1942,6 +1960,7 @@ int main(
                    fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                    exit( -1 );
                }
#endif

                if ( ( error = IVAS_REND_FeedSplitBinauralBitstream( hIvasRend, splitBinIds[i], &bitsBuffer ) ) != IVAS_ERR_OK )
                {
+19 −0
Original line number Diff line number Diff line
@@ -4413,6 +4413,12 @@ ivas_error IVAS_REND_GetDelay(
            {
                latency_ns += IVAS_FB_DEC_DELAY_NS;
            }
#ifdef SPLIT_REND_LCLD_5MS
            else if ( hIvasRend->inputsSplitPost[i].splitPostRendWrapper.hSplitBinLCLDDec != NULL )
            {
                latency_ns += IVAS_FB_DEC_DELAY_NS;
            }
#endif
            max_latency_ns = max( max_latency_ns, latency_ns );
        }
    }
@@ -7232,6 +7238,19 @@ static ivas_error renderSplitBinauralWithPostRot(
        else
        {
            copyBufferTo2dArray( splitBinInput->base.inputBuffer, tmpCrendBuffer );
#ifdef SPLIT_REND_LCLD_5MS
            if ( splitBinInput->numCachedSamples == 0 )
            {
                preRendFrameSize_ms = (int16_t) ( config.ivas_frame_duration_us ) / 1000;
                numSamplesPerChannelCacheSize = (int16_t) ( *splitBinInput->base.ctx.pOutSampleRate * preRendFrameSize_ms / 1000 );
                numSamplesPerChannelCacheSize -= outAudio.config.numSamplesPerChannel;
                splitBinInput->numCachedSamples = numSamplesPerChannelCacheSize;
            }
            else
            {
                splitBinInput->numCachedSamples -= outAudio.config.numSamplesPerChannel;
            }
#endif
        }

        /* apply pose correction if enabled */