Loading apps/renderer.c +25 −0 Original line number Diff line number Diff line Loading @@ -1815,6 +1815,26 @@ int main( exit( -1 ); } #ifdef NONBE_FIX_225_MASA_EXT_REND if ( isCurrentFrameMultipleOf20ms ) { if ( masaReaders[i] != NULL ) { /* This will update data in hMasaMetadata[i] */ if ( ( error = MasaFileReader_readNextFrame( masaReaders[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in MASA Metadata File Reading: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } if ( ( error = IVAS_REND_FeedInputMasaMetadata( hIvasRend, masaIds[i], hMasaMetadata[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } } #else if ( masaReaders[i] != NULL ) { /* This will update data in hMasaMetadata[i] */ Loading @@ -1826,6 +1846,7 @@ int main( exit( -1 ); } } #endif } Loading Loading @@ -2530,9 +2551,13 @@ static IVAS_AUDIO_CONFIG parseAudioConfig( switch ( charBuf[4] ) { case '1': #ifdef NONBE_FIX_225_MASA_EXT_REND return IVAS_AUDIO_CONFIG_MASA1; #else fprintf( stderr, "1TC MASA support is not functional and is pending on DirAC renderer refactoring.\n" ); exit( EXIT_FAILURE ); /*return IVAS_AUDIO_CONFIG_MASA1;*/ // ToDo: temporarily disabled to avoid compilation warnings #endif case '2': return IVAS_AUDIO_CONFIG_MASA2; default: Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_UNIFIED_DECODING_PATHS /* FhG: unify decoding paths */ #define NONBE_FIX_874_OMASA_BRSW_2TD /* Nokia: issue 874: Fixes the crashes with the long test vectors that prompted switching to TD*/ #define NONBE_FIX_225_MASA_EXT_REND /* Nokia: Resolve #225: Complete MASA external renderer implementation */ /* ##################### End NON-BE switches ########################### */ Loading lib_dec/ivas_dirac_dec.c +17 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ #include "ivas_cnst.h" #include "ivas_rom_com.h" #include "ivas_rom_dec.h" #ifdef NONBE_FIX_225_MASA_EXT_REND #include "ivas_rom_rend.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading Loading @@ -840,8 +843,14 @@ ivas_error ivas_dirac_dec_config( if ( !sparfoa_flag ) { common_rend_config_flag = st_ivas->hSpatParamRendCom == NULL ? DIRAC_OPEN : flag_config_inp; #ifdef NONBE_FIX_225_MASA_EXT_REND if ( ( error = ivas_spat_hSpatParamRendCom_config( &st_ivas->hSpatParamRendCom, common_rend_config_flag, dec_param_estim_new, st_ivas->ivas_format, st_ivas->mc_mode, output_Fs, hodirac_flag, 0 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_spat_hSpatParamRendCom_config( &st_ivas->hSpatParamRendCom, common_rend_config_flag, dec_param_estim_new, st_ivas->ivas_format, st_ivas->mc_mode, output_Fs, hodirac_flag ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -1960,7 +1969,11 @@ void ivas_dirac_dec_render_sf( ivas_dirac_dec_compute_directional_responses( hSpatParamRendCom, hDirACRend, st_ivas->hVBAPdata, #ifdef NONBE_FIX_225_MASA_EXT_REND st_ivas->hMasa == NULL ? NULL : st_ivas->hMasa->data.band_mapping, #else st_ivas->hMasa, #endif st_ivas->hMasaIsmData, azimuth, elevation, Loading @@ -1975,7 +1988,11 @@ void ivas_dirac_dec_render_sf( ivas_dirac_dec_compute_directional_responses( hSpatParamRendCom, hDirACRend, st_ivas->hVBAPdata, #ifdef NONBE_FIX_225_MASA_EXT_REND st_ivas->hMasa == NULL ? NULL : st_ivas->hMasa->data.band_mapping, #else st_ivas->hMasa, #endif st_ivas->hMasaIsmData, azimuth, elevation, Loading lib_dec/ivas_rom_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,7 @@ const uint16_t * const sym_freq_ECSQ_tab_abs_lsbs[1 + 4] = * DirAC ROM tables *----------------------------------------------------------------------------------*/ #ifndef NONBE_FIX_225_MASA_EXT_REND const float ls_azimuth_4d4[8] = { 45.0f, -45.0f, 135.0f, -135.0f, 45.0f, -45.0f, 135.0f, -135.0f }; const float ls_elevation_4d4[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 35.0f, 35.0f, 35.0f, 35.0f }; Loading @@ -389,6 +390,7 @@ const float diffuse_response_CICP14[7] = { 0.3817f, 0.3817f, 0.2819f, 0.5399f, 0 const float diffuse_response_CICP16[9] = { 0.3456f, 0.3456f, 0.3035f, 0.4124f, 0.4124f, 0.2702f, 0.2702f, 0.3023f, 0.3023f }; #endif const float dirac_dithering_azi_scale[DIRAC_DIFFUSE_LEVELS] = { Loading @@ -400,6 +402,7 @@ const float dirac_dithering_ele_scale[DIRAC_DIFFUSE_LEVELS] = 6.716062e-01f, 1.011804e+00f, 1.796875e+00f, 2.804382e+00f, 4.623130e+00f, 7.802667e+00f, 1.045446e+01f, 1.379538e+01f }; #ifndef NONBE_FIX_225_MASA_EXT_REND const int16_t ap_pre_delay[DIRAC_DECORR_NUM_SPLIT_BANDS] = { 7, 2, 1 }; const int16_t ap_filter_length[DIRAC_DECORR_NUM_SPLIT_BANDS] = { 15, 6, 3 }; Loading Loading @@ -530,6 +533,7 @@ const int16_t sba_map_tc_512[11] = }; #endif /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ Loading lib_dec/ivas_rom_dec.h +4 −1 Original line number Diff line number Diff line Loading @@ -92,16 +92,19 @@ extern const uint16_t *const sym_freq_ECSQ_tab_abs_lsbs[1 + 4]; * DirAC ROM tables *----------------------------------------------------------------------------------*/ #ifndef NONBE_FIX_225_MASA_EXT_REND extern const float ls_azimuth_4d4[8]; extern const float ls_elevation_4d4[8]; extern const float diffuse_response_CICP6[5]; extern const float diffuse_response_CICP14[7]; extern const float diffuse_response_CICP16[9]; #endif extern const float dirac_dithering_azi_scale[DIRAC_DIFFUSE_LEVELS]; extern const float dirac_dithering_ele_scale[DIRAC_DIFFUSE_LEVELS]; #ifndef NONBE_FIX_225_MASA_EXT_REND extern const int16_t ap_pre_delay[DIRAC_DECORR_NUM_SPLIT_BANDS]; extern const int16_t ap_filter_length[DIRAC_DECORR_NUM_SPLIT_BANDS]; extern const float ap_lattice_delta_phi[DIRAC_MAX_NUM_DECORR_FILTERS * DIRAC_MAX_DECORR_FILTER_LEN]; Loading @@ -113,6 +116,7 @@ extern const float ap_split_frequencies[DIRAC_DECORR_NUM_SPLIT_BANDS + 1]; extern const int16_t sba_map_tc[11]; extern const int16_t sba_map_tc_512[11]; #endif /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables Loading @@ -120,7 +124,6 @@ extern const int16_t sba_map_tc_512[11]; extern const float dmxmtx_table[BINAURAL_CHANNELS][11]; #ifdef SPLIT_REND_WITH_HEAD_ROT /*----------------------------------------------------------------------* * Binuaral split rendering ROM tables Loading Loading
apps/renderer.c +25 −0 Original line number Diff line number Diff line Loading @@ -1815,6 +1815,26 @@ int main( exit( -1 ); } #ifdef NONBE_FIX_225_MASA_EXT_REND if ( isCurrentFrameMultipleOf20ms ) { if ( masaReaders[i] != NULL ) { /* This will update data in hMasaMetadata[i] */ if ( ( error = MasaFileReader_readNextFrame( masaReaders[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error in MASA Metadata File Reading: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } if ( ( error = IVAS_REND_FeedInputMasaMetadata( hIvasRend, masaIds[i], hMasaMetadata[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } } #else if ( masaReaders[i] != NULL ) { /* This will update data in hMasaMetadata[i] */ Loading @@ -1826,6 +1846,7 @@ int main( exit( -1 ); } } #endif } Loading Loading @@ -2530,9 +2551,13 @@ static IVAS_AUDIO_CONFIG parseAudioConfig( switch ( charBuf[4] ) { case '1': #ifdef NONBE_FIX_225_MASA_EXT_REND return IVAS_AUDIO_CONFIG_MASA1; #else fprintf( stderr, "1TC MASA support is not functional and is pending on DirAC renderer refactoring.\n" ); exit( EXIT_FAILURE ); /*return IVAS_AUDIO_CONFIG_MASA1;*/ // ToDo: temporarily disabled to avoid compilation warnings #endif case '2': return IVAS_AUDIO_CONFIG_MASA2; default: Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ #define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/ #define NONBE_UNIFIED_DECODING_PATHS /* FhG: unify decoding paths */ #define NONBE_FIX_874_OMASA_BRSW_2TD /* Nokia: issue 874: Fixes the crashes with the long test vectors that prompted switching to TD*/ #define NONBE_FIX_225_MASA_EXT_REND /* Nokia: Resolve #225: Complete MASA external renderer implementation */ /* ##################### End NON-BE switches ########################### */ Loading
lib_dec/ivas_dirac_dec.c +17 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ #include "ivas_cnst.h" #include "ivas_rom_com.h" #include "ivas_rom_dec.h" #ifdef NONBE_FIX_225_MASA_EXT_REND #include "ivas_rom_rend.h" #endif #ifdef DEBUGGING #include "debug.h" #endif Loading Loading @@ -840,8 +843,14 @@ ivas_error ivas_dirac_dec_config( if ( !sparfoa_flag ) { common_rend_config_flag = st_ivas->hSpatParamRendCom == NULL ? DIRAC_OPEN : flag_config_inp; #ifdef NONBE_FIX_225_MASA_EXT_REND if ( ( error = ivas_spat_hSpatParamRendCom_config( &st_ivas->hSpatParamRendCom, common_rend_config_flag, dec_param_estim_new, st_ivas->ivas_format, st_ivas->mc_mode, output_Fs, hodirac_flag, 0 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_spat_hSpatParamRendCom_config( &st_ivas->hSpatParamRendCom, common_rend_config_flag, dec_param_estim_new, st_ivas->ivas_format, st_ivas->mc_mode, output_Fs, hodirac_flag ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -1960,7 +1969,11 @@ void ivas_dirac_dec_render_sf( ivas_dirac_dec_compute_directional_responses( hSpatParamRendCom, hDirACRend, st_ivas->hVBAPdata, #ifdef NONBE_FIX_225_MASA_EXT_REND st_ivas->hMasa == NULL ? NULL : st_ivas->hMasa->data.band_mapping, #else st_ivas->hMasa, #endif st_ivas->hMasaIsmData, azimuth, elevation, Loading @@ -1975,7 +1988,11 @@ void ivas_dirac_dec_render_sf( ivas_dirac_dec_compute_directional_responses( hSpatParamRendCom, hDirACRend, st_ivas->hVBAPdata, #ifdef NONBE_FIX_225_MASA_EXT_REND st_ivas->hMasa == NULL ? NULL : st_ivas->hMasa->data.band_mapping, #else st_ivas->hMasa, #endif st_ivas->hMasaIsmData, azimuth, elevation, Loading
lib_dec/ivas_rom_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -379,6 +379,7 @@ const uint16_t * const sym_freq_ECSQ_tab_abs_lsbs[1 + 4] = * DirAC ROM tables *----------------------------------------------------------------------------------*/ #ifndef NONBE_FIX_225_MASA_EXT_REND const float ls_azimuth_4d4[8] = { 45.0f, -45.0f, 135.0f, -135.0f, 45.0f, -45.0f, 135.0f, -135.0f }; const float ls_elevation_4d4[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 35.0f, 35.0f, 35.0f, 35.0f }; Loading @@ -389,6 +390,7 @@ const float diffuse_response_CICP14[7] = { 0.3817f, 0.3817f, 0.2819f, 0.5399f, 0 const float diffuse_response_CICP16[9] = { 0.3456f, 0.3456f, 0.3035f, 0.4124f, 0.4124f, 0.2702f, 0.2702f, 0.3023f, 0.3023f }; #endif const float dirac_dithering_azi_scale[DIRAC_DIFFUSE_LEVELS] = { Loading @@ -400,6 +402,7 @@ const float dirac_dithering_ele_scale[DIRAC_DIFFUSE_LEVELS] = 6.716062e-01f, 1.011804e+00f, 1.796875e+00f, 2.804382e+00f, 4.623130e+00f, 7.802667e+00f, 1.045446e+01f, 1.379538e+01f }; #ifndef NONBE_FIX_225_MASA_EXT_REND const int16_t ap_pre_delay[DIRAC_DECORR_NUM_SPLIT_BANDS] = { 7, 2, 1 }; const int16_t ap_filter_length[DIRAC_DECORR_NUM_SPLIT_BANDS] = { 15, 6, 3 }; Loading Loading @@ -530,6 +533,7 @@ const int16_t sba_map_tc_512[11] = }; #endif /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ Loading
lib_dec/ivas_rom_dec.h +4 −1 Original line number Diff line number Diff line Loading @@ -92,16 +92,19 @@ extern const uint16_t *const sym_freq_ECSQ_tab_abs_lsbs[1 + 4]; * DirAC ROM tables *----------------------------------------------------------------------------------*/ #ifndef NONBE_FIX_225_MASA_EXT_REND extern const float ls_azimuth_4d4[8]; extern const float ls_elevation_4d4[8]; extern const float diffuse_response_CICP6[5]; extern const float diffuse_response_CICP14[7]; extern const float diffuse_response_CICP16[9]; #endif extern const float dirac_dithering_azi_scale[DIRAC_DIFFUSE_LEVELS]; extern const float dirac_dithering_ele_scale[DIRAC_DIFFUSE_LEVELS]; #ifndef NONBE_FIX_225_MASA_EXT_REND extern const int16_t ap_pre_delay[DIRAC_DECORR_NUM_SPLIT_BANDS]; extern const int16_t ap_filter_length[DIRAC_DECORR_NUM_SPLIT_BANDS]; extern const float ap_lattice_delta_phi[DIRAC_MAX_NUM_DECORR_FILTERS * DIRAC_MAX_DECORR_FILTER_LEN]; Loading @@ -113,6 +116,7 @@ extern const float ap_split_frequencies[DIRAC_DECORR_NUM_SPLIT_BANDS + 1]; extern const int16_t sba_map_tc[11]; extern const int16_t sba_map_tc_512[11]; #endif /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables Loading @@ -120,7 +124,6 @@ extern const int16_t sba_map_tc_512[11]; extern const float dmxmtx_table[BINAURAL_CHANNELS][11]; #ifdef SPLIT_REND_WITH_HEAD_ROT /*----------------------------------------------------------------------* * Binuaral split rendering ROM tables Loading