Loading apps/isar_post_rend.c +21 −0 Original line number Diff line number Diff line Loading @@ -985,6 +985,9 @@ int main( while ( 1 ) { #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST int16_t bfi = 0; #endif int16_t num_in_channels; num_in_channels = inBuffer.config.numChannels; Loading @@ -993,7 +996,11 @@ int main( { ivas_error error_tmp; numSamplesRead = (int16_t) inBufferSize; #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST error_tmp = split_rend_read_bits_from_file( hSplitRendFileReadWrite, bitsBuffer.bits, &bitsBuffer.config.bitsRead, &bitsBuffer.config.bitsWritten, &bfi ); #else error_tmp = split_rend_read_bits_from_file( hSplitRendFileReadWrite, bitsBuffer.bits, &bitsBuffer.config.bitsRead, &bitsBuffer.config.bitsWritten ); #endif if ( error_tmp != IVAS_ERR_OK ) { if ( error_tmp == IVAS_ERR_END_OF_FILE ) Loading Loading @@ -1060,19 +1067,33 @@ int main( /* Read from split renderer bfi file if specified */ if ( splitRendBFIReader != NULL && splitBinNeedsNewFrame ) { #ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST int16_t bfi; #endif if ( ( error = SplitRendBFIFileReading( splitRendBFIReader, &bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in SplitRendBFIFileReading(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( ( error = ISAR_POST_REND_SetSplitRendBFI( hIsarPostRend, bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in ISAR_POST_REND_SetSplitRendBFI(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( splitBinNeedsNewFrame ) { if ( ( error = ISAR_POST_REND_SetSplitRendBFI( hIsarPostRend, bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in ISAR_POST_REND_SetSplitRendBFI(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } #endif for ( i = 0; i < args.inConfig.numBinBuses; ++i ) { Loading lib_dec/lib_dec.c +12 −7 Original line number Diff line number Diff line Loading @@ -1758,9 +1758,14 @@ 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; #endif return IVAS_ERR_OK; } Loading Loading @@ -1805,13 +1810,6 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( !hIvasDec->hasBeenFedFirstGoodFrame ) { return IVAS_ERR_OK; } #endif error = IVAS_ERR_OK; st_ivas = hIvasDec->st_ivas; output_config = st_ivas->hDecoderConfig->output_config; Loading Loading @@ -1871,6 +1869,13 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( return error; } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( !hIvasDec->hasBeenFedFirstGoodFrame ) { return IVAS_ERR_OK; } #endif /* change buffer layout */ for ( i = 0; i < numSamplesPerChannelToDecode; ++i ) { Loading lib_isar/lib_isar_post_rend.c +11 −0 Original line number Diff line number Diff line Loading @@ -1539,6 +1539,17 @@ static ivas_error renderSplitBinauralWithPostRot( } else { #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( splitBinInput->numCachedSamples == 0 ) { numSamplesPerChannelCacheSize = (int16_t) ( *splitBinInput->base.ctx.pOutSampleRate * bits.isar_frame_size_ms / 1000 ) - outAudio.config.numSamplesPerChannel; splitBinInput->numCachedSamples = numSamplesPerChannelCacheSize; } else { splitBinInput->numCachedSamples -= outAudio.config.numSamplesPerChannel; } #endif if ( splitBinInput->base.inConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) { for ( ch_idx = 0; ch_idx < BINAURAL_CHANNELS; ch_idx++ ) Loading lib_util/split_render_file_read_write.c +16 −0 Original line number Diff line number Diff line Loading @@ -331,11 +331,20 @@ ivas_error split_rend_write_bitstream_to_file( * *-----------------------------------------------------------------------------------------*/ #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written, int16_t *bfi ) #else ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written ) #endif { char header[SPLIT_RENDERER_FRAME_HEADER_LEN] = "SPLIT_FRAME"; char header_read[SPLIT_RENDERER_FRAME_HEADER_LEN]; Loading Loading @@ -398,6 +407,13 @@ ivas_error split_rend_read_bits_from_file( *bits_read = 0; *bits_written = bit_len; #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST *bfi = 0; if ( bit_len == 0 ) { *bfi = 1; } #endif return IVAS_ERR_OK; } Loading lib_util/split_render_file_read_write.h +9 −0 Original line number Diff line number Diff line Loading @@ -73,11 +73,20 @@ ivas_error split_rend_write_bitstream_to_file( int32_t *bits_written ); /* read split rend coded bits from file */ #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written, int16_t *bfi ); #else ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written ); #endif /* read split pre rend delay */ ivas_error split_rend_read_pre_rend_delay_ns( Loading Loading
apps/isar_post_rend.c +21 −0 Original line number Diff line number Diff line Loading @@ -985,6 +985,9 @@ int main( while ( 1 ) { #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST int16_t bfi = 0; #endif int16_t num_in_channels; num_in_channels = inBuffer.config.numChannels; Loading @@ -993,7 +996,11 @@ int main( { ivas_error error_tmp; numSamplesRead = (int16_t) inBufferSize; #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST error_tmp = split_rend_read_bits_from_file( hSplitRendFileReadWrite, bitsBuffer.bits, &bitsBuffer.config.bitsRead, &bitsBuffer.config.bitsWritten, &bfi ); #else error_tmp = split_rend_read_bits_from_file( hSplitRendFileReadWrite, bitsBuffer.bits, &bitsBuffer.config.bitsRead, &bitsBuffer.config.bitsWritten ); #endif if ( error_tmp != IVAS_ERR_OK ) { if ( error_tmp == IVAS_ERR_END_OF_FILE ) Loading Loading @@ -1060,19 +1067,33 @@ int main( /* Read from split renderer bfi file if specified */ if ( splitRendBFIReader != NULL && splitBinNeedsNewFrame ) { #ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST int16_t bfi; #endif if ( ( error = SplitRendBFIFileReading( splitRendBFIReader, &bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in SplitRendBFIFileReading(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #ifndef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( ( error = ISAR_POST_REND_SetSplitRendBFI( hIsarPostRend, bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in ISAR_POST_REND_SetSplitRendBFI(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( splitBinNeedsNewFrame ) { if ( ( error = ISAR_POST_REND_SetSplitRendBFI( hIsarPostRend, bfi ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in ISAR_POST_REND_SetSplitRendBFI(): %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } #endif for ( i = 0; i < args.inConfig.numBinBuses; ++i ) { Loading
lib_dec/lib_dec.c +12 −7 Original line number Diff line number Diff line Loading @@ -1758,9 +1758,14 @@ 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; #endif return IVAS_ERR_OK; } Loading Loading @@ -1805,13 +1810,6 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( !hIvasDec->hasBeenFedFirstGoodFrame ) { return IVAS_ERR_OK; } #endif error = IVAS_ERR_OK; st_ivas = hIvasDec->st_ivas; output_config = st_ivas->hDecoderConfig->output_config; Loading Loading @@ -1871,6 +1869,13 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( return error; } #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( !hIvasDec->hasBeenFedFirstGoodFrame ) { return IVAS_ERR_OK; } #endif /* change buffer layout */ for ( i = 0; i < numSamplesPerChannelToDecode; ++i ) { Loading
lib_isar/lib_isar_post_rend.c +11 −0 Original line number Diff line number Diff line Loading @@ -1539,6 +1539,17 @@ static ivas_error renderSplitBinauralWithPostRot( } else { #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST if ( splitBinInput->numCachedSamples == 0 ) { numSamplesPerChannelCacheSize = (int16_t) ( *splitBinInput->base.ctx.pOutSampleRate * bits.isar_frame_size_ms / 1000 ) - outAudio.config.numSamplesPerChannel; splitBinInput->numCachedSamples = numSamplesPerChannelCacheSize; } else { splitBinInput->numCachedSamples -= outAudio.config.numSamplesPerChannel; } #endif if ( splitBinInput->base.inConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) { for ( ch_idx = 0; ch_idx < BINAURAL_CHANNELS; ch_idx++ ) Loading
lib_util/split_render_file_read_write.c +16 −0 Original line number Diff line number Diff line Loading @@ -331,11 +331,20 @@ ivas_error split_rend_write_bitstream_to_file( * *-----------------------------------------------------------------------------------------*/ #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written, int16_t *bfi ) #else ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written ) #endif { char header[SPLIT_RENDERER_FRAME_HEADER_LEN] = "SPLIT_FRAME"; char header_read[SPLIT_RENDERER_FRAME_HEADER_LEN]; Loading Loading @@ -398,6 +407,13 @@ ivas_error split_rend_read_bits_from_file( *bits_read = 0; *bits_written = bit_len; #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST *bfi = 0; if ( bit_len == 0 ) { *bfi = 1; } #endif return IVAS_ERR_OK; } Loading
lib_util/split_render_file_read_write.h +9 −0 Original line number Diff line number Diff line Loading @@ -73,11 +73,20 @@ ivas_error split_rend_write_bitstream_to_file( int32_t *bits_written ); /* read split rend coded bits from file */ #ifdef NONBE_1293_CRASH_FIRST_FRAME_LOST ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written, int16_t *bfi ); #else ivas_error split_rend_read_bits_from_file( SplitFileReadWrite *hSplitRendFileReadWrite, uint8_t *bits, int32_t *bits_read, int32_t *bits_written ); #endif /* read split pre rend delay */ ivas_error split_rend_read_pre_rend_delay_ns( Loading