Loading lib_com/options.h +4 −1 Original line number Diff line number Diff line Loading @@ -157,6 +157,9 @@ #define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ #endif #define FIX_380_BFI_PARAMISM /* VA: issue 380 - fix metadata recovery in ParamISM BFI */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif lib_dec/ivas_ism_metadata_dec.c +19 −1 Original line number Diff line number Diff line Loading @@ -488,12 +488,26 @@ ivas_error ivas_ism_metadata_dec( } else /* BFI */ { #ifdef FIX_380_BFI_PARAMISM /* "num_obj", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ if ( ism_mode == ISM_MODE_PARAM ) { num_obj = hParamIsm->num_obj; } else if ( ism_mode == ISM_MODE_DISC ) { num_obj = *nchan_transport; } for ( ch = 0; ch < num_obj; ch++ ) #else /* "*nISms", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ for ( ch = 0; ch < *nchan_transport; ch++ ) { hIsmMeta[ch]->ism_metadata_flag = hIsmMeta[ch]->last_ism_metadata_flag; } for ( ; ch < num_obj; ch++ ) #endif { hIsmMeta[ch]->last_ism_metadata_flag = hIsmMeta[ch]->ism_metadata_flag; } Loading @@ -504,12 +518,17 @@ ivas_error ivas_ism_metadata_dec( { for ( ch = 0; ch < num_obj; ch++ ) { #ifdef FIX_380_BFI_PARAMISM hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; #else hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; /*hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] % hParamIsm->az_alpha[ch];*/ hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch]; hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; /*hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] % hParamIsm->ele_alpha;*/ hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch]; #endif #ifdef TD5 hIsmMeta[ch]->angle[0].last_azimuth_idx = hParamIsm->azi_index[ch]; hIsmMeta[ch]->angle[0].last_elevation_idx = hParamIsm->ele_index[ch]; Loading Loading @@ -558,7 +577,6 @@ ivas_error ivas_ism_metadata_dec( { for ( ch = 0; ch < *nchan_transport; ch++ ) { hSCE[ch]->element_brate = hSCE[ch]->last_element_brate; hSCE[ch]->hCoreCoder[0]->total_brate = hSCE[ch]->hCoreCoder[0]->last_total_brate; } Loading Loading
lib_com/options.h +4 −1 Original line number Diff line number Diff line Loading @@ -157,6 +157,9 @@ #define OTR_REFERENCE_VECTOR_TRACKING /* FhG: enables the reference position orientation tracking mode */ #endif #define FIX_380_BFI_PARAMISM /* VA: issue 380 - fix metadata recovery in ParamISM BFI */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif
lib_dec/ivas_ism_metadata_dec.c +19 −1 Original line number Diff line number Diff line Loading @@ -488,12 +488,26 @@ ivas_error ivas_ism_metadata_dec( } else /* BFI */ { #ifdef FIX_380_BFI_PARAMISM /* "num_obj", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ if ( ism_mode == ISM_MODE_PARAM ) { num_obj = hParamIsm->num_obj; } else if ( ism_mode == ISM_MODE_DISC ) { num_obj = *nchan_transport; } for ( ch = 0; ch < num_obj; ch++ ) #else /* "*nISms", "hIsmMeta->azimuth" and "hIsmMeta->elevation" are recycled from the last frame */ for ( ch = 0; ch < *nchan_transport; ch++ ) { hIsmMeta[ch]->ism_metadata_flag = hIsmMeta[ch]->last_ism_metadata_flag; } for ( ; ch < num_obj; ch++ ) #endif { hIsmMeta[ch]->last_ism_metadata_flag = hIsmMeta[ch]->ism_metadata_flag; } Loading @@ -504,12 +518,17 @@ ivas_error ivas_ism_metadata_dec( { for ( ch = 0; ch < num_obj; ch++ ) { #ifdef FIX_380_BFI_PARAMISM hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; #else hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] + hParamIsm->last_az_sgn[ch] * hParamIsm->last_az_diff[ch]; /*hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch] % hParamIsm->az_alpha[ch];*/ hParamIsm->azi_index[ch] = hParamIsm->azi_index[ch]; hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] + hParamIsm->last_el_sgn[ch] * hParamIsm->last_el_diff[ch]; /*hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch] % hParamIsm->ele_alpha;*/ hParamIsm->ele_index[ch] = hParamIsm->ele_index[ch]; #endif #ifdef TD5 hIsmMeta[ch]->angle[0].last_azimuth_idx = hParamIsm->azi_index[ch]; hIsmMeta[ch]->angle[0].last_elevation_idx = hParamIsm->ele_index[ch]; Loading Loading @@ -558,7 +577,6 @@ ivas_error ivas_ism_metadata_dec( { for ( ch = 0; ch < *nchan_transport; ch++ ) { hSCE[ch]->element_brate = hSCE[ch]->last_element_brate; hSCE[ch]->hCoreCoder[0]->total_brate = hSCE[ch]->hCoreCoder[0]->last_total_brate; } Loading