Loading lib_com/ivas_prot.h +0 −7 Original line number Diff line number Diff line Loading @@ -3469,9 +3469,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const IVAS_OUTPUT_SETUP hOutSetup, /* i : output setup structure */ const int16_t nchan_transport /* i : number of transport channels */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , const int16_t index_slot #endif ); void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd( Loading Loading @@ -3524,10 +3521,6 @@ void ivas_dirac_dec_compute_directional_responses( DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const MASA_DECODER_HANDLE hMasa, /* i : MASA decoder structure */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES const int16_t direction_idx, /* i : index for direction (azi and ele) */ const int16_t subframe_idx, /* i : subframe index */ #endif const float *surCohRatio, const int16_t shd_rot_max_order, /* i : split-order rotation method */ const float *p_Rmat /* i : rotation matrix */ Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,6 @@ #define FIX_398_MASA_DIRECTION_ALIGNMENT /* Nokia: Issue 398: in 2dir MASA, dynamically adjust directions to be consistent */ #define FIX_401_DIRAC_RENDERER_META_READ_INDICES /* Nokia: Issue 401: Fix metadata reading indices in DirAC renderer. */ #define FIX_406_IVAS_POSITION /* Eri: Issue 406: Unify IVAS_POSITION to use IVAS_VECTOR3 instead */ #define REND_DEBUGGING_REVISION /* VA: encapsulate rendering debugging options with DEBUGGING */ #define FIX_419_ISM_MD_FIX /* VA: Issue 419: fix the upper value limitation for parameter angle1_diff_cnt */ Loading lib_dec/ivas_dirac_dec.c +0 −20 Original line number Diff line number Diff line Loading @@ -2139,11 +2139,7 @@ void ivas_dirac_dec( for ( i = 0; i < hDirAC->num_freq_bands; i++ ) { dirEne = hDirAC->h_output_synthesis_psd_state.direct_power_factor[i]; #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES surCohEner = hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] * hDirAC->surroundingCoherence[hDirAC->dirac_read_idx][i]; #else surCohEner = hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] * hDirAC->surroundingCoherence[subframe_idx][i]; #endif hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] -= surCohEner; hDirAC->h_output_synthesis_psd_state.direct_power_factor[i] += surCohEner; Loading Loading @@ -2181,10 +2177,6 @@ void ivas_dirac_dec( ivas_dirac_dec_compute_directional_responses( hDirAC, st_ivas->hVBAPdata, st_ivas->hMasa, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES subframe_idx, subframe_idx, #endif surCohRatio, st_ivas->hHeadTrackData->shd_rot_max_order, p_Rmat ); Loading @@ -2194,10 +2186,6 @@ void ivas_dirac_dec( ivas_dirac_dec_compute_directional_responses( hDirAC, st_ivas->hVBAPdata, st_ivas->hMasa, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES subframe_idx, subframe_idx, #endif surCohRatio, 0, 0 ); Loading Loading @@ -2496,10 +2484,6 @@ void ivas_dirac_dec( st_ivas->hVBAPdata, hDirAC->hOutSetup, nchan_transport #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , index_slot #endif ); } else Loading @@ -2511,10 +2495,6 @@ void ivas_dirac_dec( st_ivas->hVBAPdata, hDirAC->hOutSetup, nchan_transport #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , index_slot #endif ); } Loading lib_dec/ivas_dirac_output_synthesis_dec.c +0 −40 Original line number Diff line number Diff line Loading @@ -518,10 +518,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const IVAS_OUTPUT_SETUP hOutSetup, /* i : output setup structure */ const int16_t nchan_transport /* i : number of transport channels*/ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , const int16_t index_slot #endif ) { int16_t num_freq_bands, num_channels_dir; Loading Loading @@ -560,10 +556,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( ivas_dirac_dec_compute_directional_responses( hDirAC, hVBAPdata, NULL, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES index_slot, index_slot / MAX_PARAM_SPATIAL_SUBFRAMES, #endif NULL, 2, p_Rmat ); Loading Loading @@ -1491,10 +1483,6 @@ void ivas_dirac_dec_compute_directional_responses( DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const MASA_DECODER_HANDLE hMasa, /* i : MASA decoder structure */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES const int16_t direction_idx, /* i : index for direction (azi and ele), can slot index (>2TCs) or subrame index (<=2TCs) */ const int16_t subframe_idx, /* i : subframe index */ #endif const float *surCohRatio, const int16_t shd_rot_max_order, /* i : split-order rotation method */ const float *p_Rmat /* i : rotation matrix */ Loading Loading @@ -1584,31 +1572,17 @@ void ivas_dirac_dec_compute_directional_responses( hDirAC->synthesisConf == DIRAC_SYNTHESIS_PSD_SHD || hDirAC->synthesisConf == DIRAC_SYNTHESIS_MONO ) { /* Synthesize the first direction */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningHoa( azimuth[k], elevation[k], hDirAC->spreadCoherence[hDirAC->dirac_read_idx][k], direct_response_hoa, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #else spreadCoherencePanningHoa( azimuth[k], elevation[k], hDirAC->spreadCoherence[subframe_idx][k], direct_response_hoa, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #endif /* Synthesize the second direction and combine the gains */ if ( hDirAC->numSimultaneousDirections == 2 ) { #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningHoa( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[hDirAC->dirac_read_idx][k], direct_response_dir2, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #else spreadCoherencePanningHoa( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[subframe_idx][k], direct_response_dir2, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #endif /* Combine gains from the two directions */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES totalDirect = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] + hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] / totalDirect; #else totalDirect = hDirAC->energy_ratio1[subframe_idx][k] + hDirAC->energy_ratio2[subframe_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[subframe_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[subframe_idx][k] / totalDirect; #endif for ( l = 0; l < num_channels_dir; l++ ) { Loading Loading @@ -1657,34 +1631,20 @@ void ivas_dirac_dec_compute_directional_responses( else if ( hDirAC->panningConf == DIRAC_PANNING_VBAP ) /*VBAP*/ { /* Synthesize the first direction */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningVbap( azimuth[k], elevation[k], hDirAC->spreadCoherence[hDirAC->dirac_read_idx][k], direct_response_ls, num_channels_dir, hVBAPdata ); #else spreadCoherencePanningVbap( azimuth[k], elevation[k], hDirAC->spreadCoherence[subframe_idx][k], direct_response_ls, num_channels_dir, hVBAPdata ); #endif normalizePanningGains( direct_response_ls, num_channels_dir ); /* Synthesize the second direction and combine the gains */ if ( hDirAC->numSimultaneousDirections == 2 ) { #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningVbap( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[hDirAC->dirac_read_idx][k], direct_response_dir2, num_channels_dir, hVBAPdata ); #else spreadCoherencePanningVbap( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[subframe_idx][k], direct_response_dir2, num_channels_dir, hVBAPdata ); #endif normalizePanningGains( direct_response_dir2, num_channels_dir ); /* Combine gains from the two directions */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES totalDirect = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] + hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] / totalDirect; #else totalDirect = hDirAC->energy_ratio1[subframe_idx][k] + hDirAC->energy_ratio2[subframe_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[subframe_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[subframe_idx][k] / totalDirect; #endif for ( l = 0; l < num_channels_dir; l++ ) { direct_response_ls[l] *= directRatio[0]; Loading Loading
lib_com/ivas_prot.h +0 −7 Original line number Diff line number Diff line Loading @@ -3469,9 +3469,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const IVAS_OUTPUT_SETUP hOutSetup, /* i : output setup structure */ const int16_t nchan_transport /* i : number of transport channels */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , const int16_t index_slot #endif ); void ivas_dirac_dec_output_synthesis_process_subframe_gain_shd( Loading Loading @@ -3524,10 +3521,6 @@ void ivas_dirac_dec_compute_directional_responses( DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const MASA_DECODER_HANDLE hMasa, /* i : MASA decoder structure */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES const int16_t direction_idx, /* i : index for direction (azi and ele) */ const int16_t subframe_idx, /* i : subframe index */ #endif const float *surCohRatio, const int16_t shd_rot_max_order, /* i : split-order rotation method */ const float *p_Rmat /* i : rotation matrix */ Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,6 @@ #define FIX_398_MASA_DIRECTION_ALIGNMENT /* Nokia: Issue 398: in 2dir MASA, dynamically adjust directions to be consistent */ #define FIX_401_DIRAC_RENDERER_META_READ_INDICES /* Nokia: Issue 401: Fix metadata reading indices in DirAC renderer. */ #define FIX_406_IVAS_POSITION /* Eri: Issue 406: Unify IVAS_POSITION to use IVAS_VECTOR3 instead */ #define REND_DEBUGGING_REVISION /* VA: encapsulate rendering debugging options with DEBUGGING */ #define FIX_419_ISM_MD_FIX /* VA: Issue 419: fix the upper value limitation for parameter angle1_diff_cnt */ Loading
lib_dec/ivas_dirac_dec.c +0 −20 Original line number Diff line number Diff line Loading @@ -2139,11 +2139,7 @@ void ivas_dirac_dec( for ( i = 0; i < hDirAC->num_freq_bands; i++ ) { dirEne = hDirAC->h_output_synthesis_psd_state.direct_power_factor[i]; #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES surCohEner = hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] * hDirAC->surroundingCoherence[hDirAC->dirac_read_idx][i]; #else surCohEner = hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] * hDirAC->surroundingCoherence[subframe_idx][i]; #endif hDirAC->h_output_synthesis_psd_state.diffuse_power_factor[i] -= surCohEner; hDirAC->h_output_synthesis_psd_state.direct_power_factor[i] += surCohEner; Loading Loading @@ -2181,10 +2177,6 @@ void ivas_dirac_dec( ivas_dirac_dec_compute_directional_responses( hDirAC, st_ivas->hVBAPdata, st_ivas->hMasa, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES subframe_idx, subframe_idx, #endif surCohRatio, st_ivas->hHeadTrackData->shd_rot_max_order, p_Rmat ); Loading @@ -2194,10 +2186,6 @@ void ivas_dirac_dec( ivas_dirac_dec_compute_directional_responses( hDirAC, st_ivas->hVBAPdata, st_ivas->hMasa, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES subframe_idx, subframe_idx, #endif surCohRatio, 0, 0 ); Loading Loading @@ -2496,10 +2484,6 @@ void ivas_dirac_dec( st_ivas->hVBAPdata, hDirAC->hOutSetup, nchan_transport #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , index_slot #endif ); } else Loading @@ -2511,10 +2495,6 @@ void ivas_dirac_dec( st_ivas->hVBAPdata, hDirAC->hOutSetup, nchan_transport #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , index_slot #endif ); } Loading
lib_dec/ivas_dirac_output_synthesis_dec.c +0 −40 Original line number Diff line number Diff line Loading @@ -518,10 +518,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const IVAS_OUTPUT_SETUP hOutSetup, /* i : output setup structure */ const int16_t nchan_transport /* i : number of transport channels*/ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES , const int16_t index_slot #endif ) { int16_t num_freq_bands, num_channels_dir; Loading Loading @@ -560,10 +556,6 @@ void ivas_dirac_dec_output_synthesis_process_slot( ivas_dirac_dec_compute_directional_responses( hDirAC, hVBAPdata, NULL, #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES index_slot, index_slot / MAX_PARAM_SPATIAL_SUBFRAMES, #endif NULL, 2, p_Rmat ); Loading Loading @@ -1491,10 +1483,6 @@ void ivas_dirac_dec_compute_directional_responses( DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ const VBAP_HANDLE hVBAPdata, /* i : VBAP structure */ const MASA_DECODER_HANDLE hMasa, /* i : MASA decoder structure */ #ifndef FIX_401_DIRAC_RENDERER_META_READ_INDICES const int16_t direction_idx, /* i : index for direction (azi and ele), can slot index (>2TCs) or subrame index (<=2TCs) */ const int16_t subframe_idx, /* i : subframe index */ #endif const float *surCohRatio, const int16_t shd_rot_max_order, /* i : split-order rotation method */ const float *p_Rmat /* i : rotation matrix */ Loading Loading @@ -1584,31 +1572,17 @@ void ivas_dirac_dec_compute_directional_responses( hDirAC->synthesisConf == DIRAC_SYNTHESIS_PSD_SHD || hDirAC->synthesisConf == DIRAC_SYNTHESIS_MONO ) { /* Synthesize the first direction */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningHoa( azimuth[k], elevation[k], hDirAC->spreadCoherence[hDirAC->dirac_read_idx][k], direct_response_hoa, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #else spreadCoherencePanningHoa( azimuth[k], elevation[k], hDirAC->spreadCoherence[subframe_idx][k], direct_response_hoa, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #endif /* Synthesize the second direction and combine the gains */ if ( hDirAC->numSimultaneousDirections == 2 ) { #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningHoa( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[hDirAC->dirac_read_idx][k], direct_response_dir2, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #else spreadCoherencePanningHoa( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[subframe_idx][k], direct_response_dir2, num_channels_dir, hDirAC->hOutSetup.ambisonics_order ); #endif /* Combine gains from the two directions */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES totalDirect = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] + hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] / totalDirect; #else totalDirect = hDirAC->energy_ratio1[subframe_idx][k] + hDirAC->energy_ratio2[subframe_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[subframe_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[subframe_idx][k] / totalDirect; #endif for ( l = 0; l < num_channels_dir; l++ ) { Loading Loading @@ -1657,34 +1631,20 @@ void ivas_dirac_dec_compute_directional_responses( else if ( hDirAC->panningConf == DIRAC_PANNING_VBAP ) /*VBAP*/ { /* Synthesize the first direction */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningVbap( azimuth[k], elevation[k], hDirAC->spreadCoherence[hDirAC->dirac_read_idx][k], direct_response_ls, num_channels_dir, hVBAPdata ); #else spreadCoherencePanningVbap( azimuth[k], elevation[k], hDirAC->spreadCoherence[subframe_idx][k], direct_response_ls, num_channels_dir, hVBAPdata ); #endif normalizePanningGains( direct_response_ls, num_channels_dir ); /* Synthesize the second direction and combine the gains */ if ( hDirAC->numSimultaneousDirections == 2 ) { #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES spreadCoherencePanningVbap( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[hDirAC->dirac_read_idx][k], direct_response_dir2, num_channels_dir, hVBAPdata ); #else spreadCoherencePanningVbap( azimuth2[k], elevation2[k], hDirAC->spreadCoherence2[subframe_idx][k], direct_response_dir2, num_channels_dir, hVBAPdata ); #endif normalizePanningGains( direct_response_dir2, num_channels_dir ); /* Combine gains from the two directions */ #ifdef FIX_401_DIRAC_RENDERER_META_READ_INDICES totalDirect = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] + hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[hDirAC->dirac_read_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[hDirAC->dirac_read_idx][k] / totalDirect; #else totalDirect = hDirAC->energy_ratio1[subframe_idx][k] + hDirAC->energy_ratio2[subframe_idx][k] + EPSILON; directRatio[0] = hDirAC->energy_ratio1[subframe_idx][k] / totalDirect; directRatio[1] = hDirAC->energy_ratio2[subframe_idx][k] / totalDirect; #endif for ( l = 0; l < num_channels_dir; l++ ) { direct_response_ls[l] *= directRatio[0]; Loading