Loading apps/decoder.c +0 −33 Original line number Diff line number Diff line Loading @@ -455,14 +455,9 @@ int main( *------------------------------------------------------------------------------------------*/ #ifdef SPLIT_REND_WITH_HEAD_ROT #ifdef SPLIT_REND_LCLD_5MS asked_frame_size = arg.renderFramesize; #endif if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { #ifndef SPLIT_REND_LCLD_5MS asked_frame_size = arg.renderFramesize; #endif if ( ( error = IVAS_DEC_EnableSplitRendering( hIvasDec ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading @@ -475,12 +470,6 @@ int main( goto cleanup; } #ifndef SPLIT_REND_LCLD_5MS if ( arg.renderFramesize != asked_frame_size ) { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for split rendering!\n" ); } #endif arg.enableHeadRotation = true; } #endif Loading Loading @@ -633,26 +622,6 @@ int main( goto cleanup; } #ifdef SPLIT_REND_WITH_HEAD_ROT #ifndef SPLIT_REND_LCLD_5MS if ( arg.renderFramesize == IVAS_RENDER_FRAMESIZE_5MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE || renderConfig.split_rend_config.dof == 0 ) ) { /*TODO : needs to be refined as this wont work with LCLD codec*/ arg.renderFramesize = IVAS_RENDER_FRAMESIZE_5MS; } else { arg.renderFramesize = IVAS_RENDER_FRAMESIZE_20MS; } if ( ( error = IVAS_DEC_SetRenderFramesize( hIvasDec, arg.renderFramesize ) ) != IVAS_ERR_OK ) { return error; } #endif #endif if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK ) { fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename ); Loading @@ -665,7 +634,6 @@ int main( goto cleanup; } #ifdef SPLIT_REND_LCLD_5MS #ifdef SPLIT_REND_WITH_HEAD_ROT if ( asked_frame_size != IVAS_RENDER_FRAMESIZE_20MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE || renderConfig.split_rend_config.dof == 0 ) ) Loading @@ -686,7 +654,6 @@ int main( { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" ); } #endif #endif if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) Loading apps/renderer.c +0 −18 Original line number Diff line number Diff line Loading @@ -1889,7 +1889,6 @@ 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 ) Loading @@ -1905,23 +1904,8 @@ int main( 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 ) ); 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 ( ( error = IVAS_REND_FeedSplitBinauralBitstream( hIvasRend, splitBinIds[i], &bitsBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); Loading Loading @@ -2225,9 +2209,7 @@ cleanup: } split_rend_reader_writer_close( &hSplitRendFileReadWrite ); #ifdef SPLIT_REND_LCLD_5MS SplitRendBFIFileReader_close( &splitRendBFIReader ); #endif #endif for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) Loading lib_com/ivas_prot.h +4 −1 Original line number Diff line number Diff line Loading @@ -769,7 +769,10 @@ void dtx_read_padding_bits( ); void ivas_apply_non_diegetic_panning( float *output_f[], /* i/o: core-coder transport mono channel/stereo output */ #ifdef FIX_1009_ISM_NONDIEGETIC_PANNING float *input_f, /* i : non-diegetic object */ #endif float *output_f[], /* o : core-coder transport mono channel/stereo output */ const float non_diegetic_pan_gain, /* i : non-diegetic panning gain */ const int16_t output_frame /* i : output frame length per channel */ ); Loading lib_com/options.h 100644 → 100755 +2 −6 Original line number Diff line number Diff line Loading @@ -164,6 +164,7 @@ #define FIX_1001_ARI_HM_OVERFLOW /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */ #define FIX_901_PARAMMC_DEAD_CODE /* FhG: issue 901: remove dead ParamMC code */ #define FIX_1008_EXTORIENT_TARGET_INTERPOLATION /* FhG: issue #1008, external orientation init was wrong for 5ms */ #define FIX_1009_ISM_NONDIEGETIC_PANNING /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan */ /* #################### End BE switches ################################## */ Loading @@ -173,11 +174,6 @@ /* all switches in this category should start with "NONBE_" */ #define NONBE_FIX_978_MC_TDREND_REVERB /* Eri : activate reverb for TDREND with headtracking */ #ifdef SPLIT_REND_WITH_HEAD_ROT #define SPLIT_REND_LCLD_5MS /* Dlb: LCLD 5ms framing operation */ #endif #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nokia: issue #984: complete the OMASA EXT output implementation */ #define NONBE_FIX_1000_G1_G2_SWB_TBE /* VA: issue 1000: avoid div by zero due to g1 + g2 being zero in SWB TBE */ #define NONBE_FIX_999_JBM_MCT_FLUSH /* FhG: issue #999: fix wrong flushing for MCT at a JBM rate switch */ Loading lib_dec/ivas_init_dec.c +0 −20 Original line number Diff line number Diff line Loading @@ -247,17 +247,10 @@ static ivas_error ivas_dec_init_split_rend( } } #ifdef SPLIT_REND_LCLD_5MS if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ) ) != IVAS_ERR_OK ) { return error; } #else if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag ) ) != IVAS_ERR_OK ) { return error; } #endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT ) Loading @@ -266,11 +259,7 @@ static ivas_error ivas_dec_init_split_rend( } #endif #ifdef SPLIT_REND_LCLD_5MS error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ); #else error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_framesize == IVAS_RENDER_FRAMESIZE_5MS ); #endif return error; } #endif Loading Loading @@ -2559,9 +2548,6 @@ void ivas_initialize_handles_dec( st_ivas->hSplitBinRend.hMultiBinCldfbData = NULL; st_ivas->hSplitBinRend.hSplitRendBits = NULL; st_ivas->hSplitBinRend.hCldfbDataOut = NULL; #ifndef SPLIT_REND_LCLD_5MS st_ivas->hSplitBinRend.tdDataOut = NULL; #endif st_ivas->hSplitBinRend.numTdSamplesPerChannelCached = 0; ivas_init_split_rend_handles( &st_ivas->hSplitBinRend.splitrend ); #endif Loading Loading @@ -2711,12 +2697,6 @@ void ivas_destroy_dec( free( st_ivas->hSplitBinRend.hCldfbDataOut ); st_ivas->hSplitBinRend.hCldfbDataOut = NULL; } #ifndef SPLIT_REND_LCLD_5MS if ( st_ivas->hSplitBinRend.tdDataOut != NULL ) { free( st_ivas->hSplitBinRend.tdDataOut ); } #endif #endif /* Parametric binaural renderer handle */ Loading Loading
apps/decoder.c +0 −33 Original line number Diff line number Diff line Loading @@ -455,14 +455,9 @@ int main( *------------------------------------------------------------------------------------------*/ #ifdef SPLIT_REND_WITH_HEAD_ROT #ifdef SPLIT_REND_LCLD_5MS asked_frame_size = arg.renderFramesize; #endif if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { #ifndef SPLIT_REND_LCLD_5MS asked_frame_size = arg.renderFramesize; #endif if ( ( error = IVAS_DEC_EnableSplitRendering( hIvasDec ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); Loading @@ -475,12 +470,6 @@ int main( goto cleanup; } #ifndef SPLIT_REND_LCLD_5MS if ( arg.renderFramesize != asked_frame_size ) { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for split rendering!\n" ); } #endif arg.enableHeadRotation = true; } #endif Loading Loading @@ -633,26 +622,6 @@ int main( goto cleanup; } #ifdef SPLIT_REND_WITH_HEAD_ROT #ifndef SPLIT_REND_LCLD_5MS if ( arg.renderFramesize == IVAS_RENDER_FRAMESIZE_5MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE || renderConfig.split_rend_config.dof == 0 ) ) { /*TODO : needs to be refined as this wont work with LCLD codec*/ arg.renderFramesize = IVAS_RENDER_FRAMESIZE_5MS; } else { arg.renderFramesize = IVAS_RENDER_FRAMESIZE_20MS; } if ( ( error = IVAS_DEC_SetRenderFramesize( hIvasDec, arg.renderFramesize ) ) != IVAS_ERR_OK ) { return error; } #endif #endif if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK ) { fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename ); Loading @@ -665,7 +634,6 @@ int main( goto cleanup; } #ifdef SPLIT_REND_LCLD_5MS #ifdef SPLIT_REND_WITH_HEAD_ROT if ( asked_frame_size != IVAS_RENDER_FRAMESIZE_20MS && ( renderConfig.split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE || renderConfig.split_rend_config.dof == 0 ) ) Loading @@ -686,7 +654,6 @@ int main( { fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" ); } #endif #endif if ( arg.outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) Loading
apps/renderer.c +0 −18 Original line number Diff line number Diff line Loading @@ -1889,7 +1889,6 @@ 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 ) Loading @@ -1905,23 +1904,8 @@ int main( 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 ) ); 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 ( ( error = IVAS_REND_FeedSplitBinauralBitstream( hIvasRend, splitBinIds[i], &bitsBuffer ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); Loading Loading @@ -2225,9 +2209,7 @@ cleanup: } split_rend_reader_writer_close( &hSplitRendFileReadWrite ); #ifdef SPLIT_REND_LCLD_5MS SplitRendBFIFileReader_close( &splitRendBFIReader ); #endif #endif for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) Loading
lib_com/ivas_prot.h +4 −1 Original line number Diff line number Diff line Loading @@ -769,7 +769,10 @@ void dtx_read_padding_bits( ); void ivas_apply_non_diegetic_panning( float *output_f[], /* i/o: core-coder transport mono channel/stereo output */ #ifdef FIX_1009_ISM_NONDIEGETIC_PANNING float *input_f, /* i : non-diegetic object */ #endif float *output_f[], /* o : core-coder transport mono channel/stereo output */ const float non_diegetic_pan_gain, /* i : non-diegetic panning gain */ const int16_t output_frame /* i : output frame length per channel */ ); Loading
lib_com/options.h 100644 → 100755 +2 −6 Original line number Diff line number Diff line Loading @@ -164,6 +164,7 @@ #define FIX_1001_ARI_HM_OVERFLOW /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */ #define FIX_901_PARAMMC_DEAD_CODE /* FhG: issue 901: remove dead ParamMC code */ #define FIX_1008_EXTORIENT_TARGET_INTERPOLATION /* FhG: issue #1008, external orientation init was wrong for 5ms */ #define FIX_1009_ISM_NONDIEGETIC_PANNING /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan */ /* #################### End BE switches ################################## */ Loading @@ -173,11 +174,6 @@ /* all switches in this category should start with "NONBE_" */ #define NONBE_FIX_978_MC_TDREND_REVERB /* Eri : activate reverb for TDREND with headtracking */ #ifdef SPLIT_REND_WITH_HEAD_ROT #define SPLIT_REND_LCLD_5MS /* Dlb: LCLD 5ms framing operation */ #endif #define NONBE_FIX_984_OMASA_EXT_OUTPUT /* Nokia: issue #984: complete the OMASA EXT output implementation */ #define NONBE_FIX_1000_G1_G2_SWB_TBE /* VA: issue 1000: avoid div by zero due to g1 + g2 being zero in SWB TBE */ #define NONBE_FIX_999_JBM_MCT_FLUSH /* FhG: issue #999: fix wrong flushing for MCT at a JBM rate switch */ Loading
lib_dec/ivas_init_dec.c +0 −20 Original line number Diff line number Diff line Loading @@ -247,17 +247,10 @@ static ivas_error ivas_dec_init_split_rend( } } #ifdef SPLIT_REND_LCLD_5MS if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ) ) != IVAS_ERR_OK ) { return error; } #else if ( ( error = ivas_split_rend_choose_default_codec( &st_ivas->hRenderConfig->split_rend_config.codec, &st_ivas->hRenderConfig->split_rend_config.codec_frame_size_ms, cldfb_in_flag, pcm_out_flag ) ) != IVAS_ERR_OK ) { return error; } #endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT ) Loading @@ -266,11 +259,7 @@ static ivas_error ivas_dec_init_split_rend( } #endif #ifdef SPLIT_REND_LCLD_5MS error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize ); #else error = ivas_split_renderer_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, st_ivas->hDecoderConfig->render_framesize == IVAS_RENDER_FRAMESIZE_5MS ); #endif return error; } #endif Loading Loading @@ -2559,9 +2548,6 @@ void ivas_initialize_handles_dec( st_ivas->hSplitBinRend.hMultiBinCldfbData = NULL; st_ivas->hSplitBinRend.hSplitRendBits = NULL; st_ivas->hSplitBinRend.hCldfbDataOut = NULL; #ifndef SPLIT_REND_LCLD_5MS st_ivas->hSplitBinRend.tdDataOut = NULL; #endif st_ivas->hSplitBinRend.numTdSamplesPerChannelCached = 0; ivas_init_split_rend_handles( &st_ivas->hSplitBinRend.splitrend ); #endif Loading Loading @@ -2711,12 +2697,6 @@ void ivas_destroy_dec( free( st_ivas->hSplitBinRend.hCldfbDataOut ); st_ivas->hSplitBinRend.hCldfbDataOut = NULL; } #ifndef SPLIT_REND_LCLD_5MS if ( st_ivas->hSplitBinRend.tdDataOut != NULL ) { free( st_ivas->hSplitBinRend.tdDataOut ); } #endif #endif /* Parametric binaural renderer handle */ Loading