From 61aa8ab27d1a3a58dc9efbce24128aa3f3c691f4 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Wed, 22 Oct 2025 10:14:11 +0300 Subject: [PATCH] Add missing part from IVAS_DEC_GetEditableParameters and adjust to be in line with float main. --- lib_dec/lib_dec.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 375981981..0e601cbc7 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1527,7 +1527,11 @@ ivas_error IVAS_DEC_GetEditableParameters( } #endif } +#ifdef NONBE_1217_INIT_OBJ_EDIT + else if ( st_ivas->ivas_format == MASA_ISM_FORMAT || ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 ) ) +#else else if ( st_ivas->ivas_format == MASA_ISM_FORMAT && ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) +#endif { /* object editing possible only in two highest OMASA modes */ if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) @@ -1546,7 +1550,11 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = st_ivas->hIsmMetaData[obj]->non_diegetic_flag; } } +#ifdef NONBE_1217_INIT_OBJ_EDIT + else if ( ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) +#else else +#endif { /* Handle MONO output */ if ( st_ivas->renderer_type != RENDERER_MONO_DOWNMIX ) @@ -1573,6 +1581,18 @@ ivas_error IVAS_DEC_GetEditableParameters( hIvasEditableParameters->ism_metadata[obj].non_diegetic_flag = st_ivas->hIsmMetaData[obj]->non_diegetic_flag; } } +#ifdef NONBE_1217_INIT_OBJ_EDIT + else if ( ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ || ism_mode == ISM_MODE_NONE ) + { + hIvasEditableParameters->num_obj = 0; + } +#ifdef DEBUGGING + else + { + assert( 0 && "This should never happen!" ); + } +#endif +#endif } return IVAS_ERR_OK; @@ -1709,14 +1729,16 @@ ivas_error IVAS_DEC_SetEditableParameters( return IVAS_ERR_OBJECTS_EDITING_NOT_SUPPORTED; } } +#ifdef DEBUGGING else { assert( 0 && "This should never happen!" ); } +#endif } else if ( st_ivas->ivas_format == MASA_ISM_FORMAT && ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_DISC ) ) { - int32_t id_th; + int16_t id_th; float threshold_azi, threshold_ele; #ifdef DEBUGGING @@ -1764,7 +1786,7 @@ ivas_error IVAS_DEC_SetEditableParameters( * which in turn depends from the object priority and importance: * importance -> priority -> number of bits -> elevation resolution -> elevation ring index -> azimuth resolution. * leading to elevation_resolution -> elevation threshold and azimuth resolution -> azimuth threshold */ - id_th = (int) ( fabsf( (float) st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx] ) / delta_theta_masa[st_ivas->hMasaIsmData->bits_ism[obj] - 3] + 0.5f ); + id_th = (int16_t) ( fabsf( (float) st_ivas->hMasaIsmData->elevation_ism[obj][dirac_read_idx] ) / delta_theta_masa[st_ivas->hMasaIsmData->bits_ism[obj] - 3] + 0.5f ); threshold_azi = 360.0f / (float) no_phi_masa[st_ivas->hMasaIsmData->bits_ism[obj] - 1][id_th]; threshold_ele = delta_theta_masa[st_ivas->hMasaIsmData->bits_ism[obj] - 3]; -- GitLab