Loading lib_dec/ivas_init_dec.c +1 −0 Original line number Diff line number Diff line Loading @@ -1623,6 +1623,7 @@ ivas_error ivas_init_decoder( } ELSE { /*TODO/observation : not hit by decoder tests*/ vbap_determine_gains( st_ivas->hVBAPdata, st_ivas->hLsSetupCustom->separate_ch_gains, 0, 0, 0 ); } } Loading lib_dec/ivas_ism_renderer.c +11 −0 Original line number Diff line number Diff line Loading @@ -836,6 +836,10 @@ void ivas_omasa_separate_object_render_jbm( int16_t j, k, j2; int16_t obj; float gains[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 gains_fx[MAX_OUTPUT_CHANNELS]; set32_fx(gains_fx, 0, MAX_OUTPUT_CHANNELS); #endif float g1, g2; int16_t lfe_index; int16_t azimuth, elevation; Loading Loading @@ -943,7 +947,14 @@ void ivas_omasa_separate_object_render_jbm( if ( hVBAPdata != NULL ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx(hVBAPdata, gains_fx, azimuth, elevation, 1); FOR (int i = 0; i < MAX_OUTPUT_CHANNELS; i++) { gains[i] = fix_to_float(gains_fx[i], Q29); } #else vbap_determine_gains( hVBAPdata, gains, azimuth, elevation, 1 ); #endif /*Word32 gains_fx[16]; vbap_determine_gains_fx( hVBAPdata, gains_fx, azimuth, elevation, 1 ); for (j = 0; j < nchan_out_woLFE; j++) gains[j] = (float)gains_fx[j] / (float)(1 << 29);*/ Loading lib_rend/ivas_dirac_output_synthesis_dec.c +49 −1 Original line number Diff line number Diff line Loading @@ -2711,6 +2711,10 @@ void ivas_dirac_dec_compute_directional_responses( { int16_t dir; float direct_response_temp[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 direct_response_temp_fx[MAX_OUTPUT_CHANNELS]; set32_fx(direct_response_temp_fx, 0, MAX_OUTPUT_CHANNELS); #endif float direct_response_ism[MAX_OUTPUT_CHANNELS]; float masaDirect; float ismDirect; Loading @@ -2721,11 +2725,27 @@ void ivas_dirac_dec_compute_directional_responses( { if ( hMasaIsm->ism_is_edited[dir] ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); #endif } else { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 ); FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 ); #endif } for ( l = 0; l < num_channels_dir; l++ ) Loading Loading @@ -3289,6 +3309,12 @@ static void spreadCoherencePanningVbap( int16_t i; float direct_response_left[MAX_OUTPUT_CHANNELS]; float direct_response_right[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 direct_response_left_fx[MAX_OUTPUT_CHANNELS]; Word32 direct_response_right_fx[MAX_OUTPUT_CHANNELS]; set32_fx(direct_response_left_fx, 0, MAX_OUTPUT_CHANNELS); set32_fx(direct_response_right_fx, 0, MAX_OUTPUT_CHANNELS); #endif float gainCenter; float gainSide; Loading @@ -3299,13 +3325,35 @@ static void spreadCoherencePanningVbap( return; } #ifdef IVAS_FLOAT_FIXED Word32 direct_response_fx[MAX_OUTPUT_CHANNELS]; set32_fx( direct_response_fx, 0, MAX_OUTPUT_CHANNELS ); vbap_determine_gains_fx( hVBAPdata, direct_response_fx, azimuth, elevation, 0 ); FOR( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response[i] = fix_to_float( direct_response_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response, azimuth, elevation, 0 ); #endif if ( spreadCoh > 0.f ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx(hVBAPdata, direct_response_left_fx, azimuth + 30, elevation, 0); FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++) { direct_response_left[i] = fix_to_float(direct_response_left_fx[i], Q29); } vbap_determine_gains_fx(hVBAPdata, direct_response_right_fx, azimuth - 30, elevation, 0); FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++) { direct_response_right[i] = fix_to_float(direct_response_right_fx[i], Q29); } #else vbap_determine_gains( hVBAPdata, direct_response_left, azimuth + 30, elevation, 0 ); vbap_determine_gains( hVBAPdata, direct_response_right, azimuth - 30, elevation, 0 ); #endif if ( spreadCoh < 0.5f ) { Loading lib_rend/ivas_vbap.c +282 −103 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
lib_dec/ivas_init_dec.c +1 −0 Original line number Diff line number Diff line Loading @@ -1623,6 +1623,7 @@ ivas_error ivas_init_decoder( } ELSE { /*TODO/observation : not hit by decoder tests*/ vbap_determine_gains( st_ivas->hVBAPdata, st_ivas->hLsSetupCustom->separate_ch_gains, 0, 0, 0 ); } } Loading
lib_dec/ivas_ism_renderer.c +11 −0 Original line number Diff line number Diff line Loading @@ -836,6 +836,10 @@ void ivas_omasa_separate_object_render_jbm( int16_t j, k, j2; int16_t obj; float gains[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 gains_fx[MAX_OUTPUT_CHANNELS]; set32_fx(gains_fx, 0, MAX_OUTPUT_CHANNELS); #endif float g1, g2; int16_t lfe_index; int16_t azimuth, elevation; Loading Loading @@ -943,7 +947,14 @@ void ivas_omasa_separate_object_render_jbm( if ( hVBAPdata != NULL ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx(hVBAPdata, gains_fx, azimuth, elevation, 1); FOR (int i = 0; i < MAX_OUTPUT_CHANNELS; i++) { gains[i] = fix_to_float(gains_fx[i], Q29); } #else vbap_determine_gains( hVBAPdata, gains, azimuth, elevation, 1 ); #endif /*Word32 gains_fx[16]; vbap_determine_gains_fx( hVBAPdata, gains_fx, azimuth, elevation, 1 ); for (j = 0; j < nchan_out_woLFE; j++) gains[j] = (float)gains_fx[j] / (float)(1 << 29);*/ Loading
lib_rend/ivas_dirac_output_synthesis_dec.c +49 −1 Original line number Diff line number Diff line Loading @@ -2711,6 +2711,10 @@ void ivas_dirac_dec_compute_directional_responses( { int16_t dir; float direct_response_temp[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 direct_response_temp_fx[MAX_OUTPUT_CHANNELS]; set32_fx(direct_response_temp_fx, 0, MAX_OUTPUT_CHANNELS); #endif float direct_response_ism[MAX_OUTPUT_CHANNELS]; float masaDirect; float ismDirect; Loading @@ -2721,11 +2725,27 @@ void ivas_dirac_dec_compute_directional_responses( { if ( hMasaIsm->ism_is_edited[dir] ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism_edited[dir], hMasaIsm->elevation_ism_edited[dir], 1 ); #endif } else { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx( hVBAPdata, direct_response_temp_fx, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 ); FOR( int i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response_temp[i] = fix_to_float( direct_response_temp_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response_temp, hMasaIsm->azimuth_ism[dir][md_idx], hMasaIsm->elevation_ism[dir][md_idx], 1 ); #endif } for ( l = 0; l < num_channels_dir; l++ ) Loading Loading @@ -3289,6 +3309,12 @@ static void spreadCoherencePanningVbap( int16_t i; float direct_response_left[MAX_OUTPUT_CHANNELS]; float direct_response_right[MAX_OUTPUT_CHANNELS]; #ifdef IVAS_FLOAT_FIXED Word32 direct_response_left_fx[MAX_OUTPUT_CHANNELS]; Word32 direct_response_right_fx[MAX_OUTPUT_CHANNELS]; set32_fx(direct_response_left_fx, 0, MAX_OUTPUT_CHANNELS); set32_fx(direct_response_right_fx, 0, MAX_OUTPUT_CHANNELS); #endif float gainCenter; float gainSide; Loading @@ -3299,13 +3325,35 @@ static void spreadCoherencePanningVbap( return; } #ifdef IVAS_FLOAT_FIXED Word32 direct_response_fx[MAX_OUTPUT_CHANNELS]; set32_fx( direct_response_fx, 0, MAX_OUTPUT_CHANNELS ); vbap_determine_gains_fx( hVBAPdata, direct_response_fx, azimuth, elevation, 0 ); FOR( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { direct_response[i] = fix_to_float( direct_response_fx[i], Q29 ); } #else vbap_determine_gains( hVBAPdata, direct_response, azimuth, elevation, 0 ); #endif if ( spreadCoh > 0.f ) { #ifdef IVAS_FLOAT_FIXED vbap_determine_gains_fx(hVBAPdata, direct_response_left_fx, azimuth + 30, elevation, 0); FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++) { direct_response_left[i] = fix_to_float(direct_response_left_fx[i], Q29); } vbap_determine_gains_fx(hVBAPdata, direct_response_right_fx, azimuth - 30, elevation, 0); FOR(i = 0; i < MAX_OUTPUT_CHANNELS; i++) { direct_response_right[i] = fix_to_float(direct_response_right_fx[i], Q29); } #else vbap_determine_gains( hVBAPdata, direct_response_left, azimuth + 30, elevation, 0 ); vbap_determine_gains( hVBAPdata, direct_response_right, azimuth - 30, elevation, 0 ); #endif if ( spreadCoh < 0.5f ) { Loading
lib_rend/ivas_vbap.c +282 −103 File changed.Preview size limit exceeded, changes collapsed. Show changes