Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA /* Nokia: issue 635 adding cast to uint16_t in q_metadata_enc */ /* Fixes for bugs found during split rendering contribution development */ #define TD_TDREND_FIX_NULLPTR_ACCESS /* FhG: avoid nullptr access in ivas_rend_TDObjRendOpen */ Loading lib_enc/ivas_qmetadata_enc.c +0 −35 Original line number Diff line number Diff line Loading @@ -2522,15 +2522,10 @@ static int16_t ivas_qmetadata_entropy_encode_dir( float avg_direction_vector[3], direction_vector[3], avg_azimuth, avg_elevation; int16_t avg_azimuth_alphabet, avg_elevation_alphabet; uint16_t avg_azimuth_index, avg_elevation_index; #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA int16_t avg_elevation_index_projected; int16_t avg_azimuth_index_projected; uint16_t avg_elevation_index_initial, avg_elevation_offset; uint16_t avg_azimuth_index_initial, avg_azimuth_offset; #else int16_t avg_elevation_index_initial, avg_elevation_offset, avg_elevation_index_projected; int16_t avg_azimuth_index_initial, avg_azimuth_offset, avg_azimuth_index_projected; #endif int16_t elevation_bits_ec_best, azimuth_bits_ec_best; int16_t gr_param_elevation_best = 0, avg_elevation_index_best = 0; Loading Loading @@ -2650,7 +2645,6 @@ static int16_t ivas_qmetadata_entropy_encode_dir( } else { #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA if ( sign_th < 0 ) { avg_elevation_index = ( avg_elevation_alphabet >> 1 ) - avg_elevation_index; Loading @@ -2660,20 +2654,8 @@ static int16_t ivas_qmetadata_entropy_encode_dir( avg_elevation_index += ( avg_elevation_alphabet >> 1 ); } avg_elevation *= sign_th; #else if ( sign_th < 0 ) { avg_elevation_index = -avg_elevation_index; } avg_elevation *= sign_th; avg_elevation_index += ( avg_elevation_alphabet >> 1 ); #endif } #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ) ); #else avg_azimuth_index = quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ); #endif /* Elevation only if not 2D */ if ( q_direction->not_in_2D > 0 ) { Loading @@ -2690,17 +2672,9 @@ static int16_t ivas_qmetadata_entropy_encode_dir( } else { #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_elevation_index = (uint16_t) ( avg_elevation_index_initial + ivas_qmetadata_dereorder_generic( avg_elevation_offset ) ); #else avg_elevation_index = avg_elevation_index_initial + ivas_qmetadata_dereorder_generic( avg_elevation_offset ); #endif } #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_elevation_index = (uint16_t) ( ( avg_elevation_index + avg_elevation_alphabet ) % avg_elevation_alphabet ); #else avg_elevation_index = ( avg_elevation_index + avg_elevation_alphabet ) % avg_elevation_alphabet; #endif all_zero_dist_elevation_indexes = 1; if ( q_direction->cfg.mc_ls_setup != MC_LS_SETUP_INVALID ) Loading Loading @@ -2803,11 +2777,7 @@ static int16_t ivas_qmetadata_entropy_encode_dir( if ( ( nbands - start_band >= 5 ) && ( q_direction->cfg.mc_ls_setup != MC_LS_SETUP_INVALID ) && ( nblocks > 1 ) ) { use_adapt_avg = calc_var_azi( q_direction, diffuseness_index_max_ec_frame, avg_azimuth - 180, &avg_azimuth ); #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ) ); #else avg_azimuth_index = quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ); #endif } avg_azimuth_index_initial = avg_azimuth_index; /* avg_azimuth_index;*/ azimuth_bits_ec_best = MAX16B; Loading @@ -2817,13 +2787,8 @@ static int16_t ivas_qmetadata_entropy_encode_dir( for ( avg_azimuth_offset = 0; avg_azimuth_offset < q_direction->cfg.search_effort; avg_azimuth_offset++ ) { set_zero( avg_direction_vector, 3 ); #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( avg_azimuth_index_initial + ivas_qmetadata_dereorder_generic( avg_azimuth_offset ) ); avg_azimuth_index = (uint16_t) ( ( avg_azimuth_index + avg_azimuth_alphabet ) % avg_azimuth_alphabet ); #else avg_azimuth_index = avg_azimuth_index_initial + ivas_qmetadata_dereorder_generic( avg_azimuth_offset ); avg_azimuth_index = ( avg_azimuth_index + avg_azimuth_alphabet ) % avg_azimuth_alphabet; #endif all_zero_dist_azimuth_indexes = 1; azimuth_bits_ec = ivas_qmetadata_encode_quasi_uniform_length( ivas_qmetadata_reorder_generic( avg_azimuth_index - ( avg_azimuth_alphabet >> 1 ) ), avg_azimuth_alphabet ); Loading Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA /* Nokia: issue 635 adding cast to uint16_t in q_metadata_enc */ /* Fixes for bugs found during split rendering contribution development */ #define TD_TDREND_FIX_NULLPTR_ACCESS /* FhG: avoid nullptr access in ivas_rend_TDObjRendOpen */ Loading
lib_enc/ivas_qmetadata_enc.c +0 −35 Original line number Diff line number Diff line Loading @@ -2522,15 +2522,10 @@ static int16_t ivas_qmetadata_entropy_encode_dir( float avg_direction_vector[3], direction_vector[3], avg_azimuth, avg_elevation; int16_t avg_azimuth_alphabet, avg_elevation_alphabet; uint16_t avg_azimuth_index, avg_elevation_index; #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA int16_t avg_elevation_index_projected; int16_t avg_azimuth_index_projected; uint16_t avg_elevation_index_initial, avg_elevation_offset; uint16_t avg_azimuth_index_initial, avg_azimuth_offset; #else int16_t avg_elevation_index_initial, avg_elevation_offset, avg_elevation_index_projected; int16_t avg_azimuth_index_initial, avg_azimuth_offset, avg_azimuth_index_projected; #endif int16_t elevation_bits_ec_best, azimuth_bits_ec_best; int16_t gr_param_elevation_best = 0, avg_elevation_index_best = 0; Loading Loading @@ -2650,7 +2645,6 @@ static int16_t ivas_qmetadata_entropy_encode_dir( } else { #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA if ( sign_th < 0 ) { avg_elevation_index = ( avg_elevation_alphabet >> 1 ) - avg_elevation_index; Loading @@ -2660,20 +2654,8 @@ static int16_t ivas_qmetadata_entropy_encode_dir( avg_elevation_index += ( avg_elevation_alphabet >> 1 ); } avg_elevation *= sign_th; #else if ( sign_th < 0 ) { avg_elevation_index = -avg_elevation_index; } avg_elevation *= sign_th; avg_elevation_index += ( avg_elevation_alphabet >> 1 ); #endif } #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ) ); #else avg_azimuth_index = quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ); #endif /* Elevation only if not 2D */ if ( q_direction->not_in_2D > 0 ) { Loading @@ -2690,17 +2672,9 @@ static int16_t ivas_qmetadata_entropy_encode_dir( } else { #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_elevation_index = (uint16_t) ( avg_elevation_index_initial + ivas_qmetadata_dereorder_generic( avg_elevation_offset ) ); #else avg_elevation_index = avg_elevation_index_initial + ivas_qmetadata_dereorder_generic( avg_elevation_offset ); #endif } #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_elevation_index = (uint16_t) ( ( avg_elevation_index + avg_elevation_alphabet ) % avg_elevation_alphabet ); #else avg_elevation_index = ( avg_elevation_index + avg_elevation_alphabet ) % avg_elevation_alphabet; #endif all_zero_dist_elevation_indexes = 1; if ( q_direction->cfg.mc_ls_setup != MC_LS_SETUP_INVALID ) Loading Loading @@ -2803,11 +2777,7 @@ static int16_t ivas_qmetadata_entropy_encode_dir( if ( ( nbands - start_band >= 5 ) && ( q_direction->cfg.mc_ls_setup != MC_LS_SETUP_INVALID ) && ( nblocks > 1 ) ) { use_adapt_avg = calc_var_azi( q_direction, diffuseness_index_max_ec_frame, avg_azimuth - 180, &avg_azimuth ); #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ) ); #else avg_azimuth_index = quantize_phi( avg_azimuth + 180, 0, &avg_azimuth, avg_azimuth_alphabet ); #endif } avg_azimuth_index_initial = avg_azimuth_index; /* avg_azimuth_index;*/ azimuth_bits_ec_best = MAX16B; Loading @@ -2817,13 +2787,8 @@ static int16_t ivas_qmetadata_entropy_encode_dir( for ( avg_azimuth_offset = 0; avg_azimuth_offset < q_direction->cfg.search_effort; avg_azimuth_offset++ ) { set_zero( avg_direction_vector, 3 ); #ifdef FIX_635_UBSAN_UNDEFINED_BEHAVIOUR_QMETA avg_azimuth_index = (uint16_t) ( avg_azimuth_index_initial + ivas_qmetadata_dereorder_generic( avg_azimuth_offset ) ); avg_azimuth_index = (uint16_t) ( ( avg_azimuth_index + avg_azimuth_alphabet ) % avg_azimuth_alphabet ); #else avg_azimuth_index = avg_azimuth_index_initial + ivas_qmetadata_dereorder_generic( avg_azimuth_offset ); avg_azimuth_index = ( avg_azimuth_index + avg_azimuth_alphabet ) % avg_azimuth_alphabet; #endif all_zero_dist_azimuth_indexes = 1; azimuth_bits_ec = ivas_qmetadata_encode_quasi_uniform_length( ivas_qmetadata_reorder_generic( avg_azimuth_index - ( avg_azimuth_alphabet >> 1 ) ), avg_azimuth_alphabet ); Loading