From 2201a4557cbe32a7022bbcf5f18ede04bfec65b0 Mon Sep 17 00:00:00 2001 From: advasila Date: Wed, 2 Aug 2023 16:53:52 +0300 Subject: [PATCH 01/10] removing obsolete code --- lib_com/options.h | 2 +- lib_dec/ivas_dec.c | 3 ++- lib_dec/ivas_masa_dec.c | 3 ++- lib_dec/ivas_omasa_dec.c | 3 +++ lib_dec/ivas_stat_dec.h | 3 ++- lib_dec/lib_dec.c | 2 ++ 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ce7c744e7b..302acd0b80 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -211,7 +211,7 @@ #define FIX_625_IDX_OOB /* FhG: Fix index out-of-bounds UBSAN error (issue 625) */ #define MASA_AND_OBJECTS /* Nokia: Combination of MASA and objects */ - +#define FIX_657_REMOVE_EDITING /* Nokia: Remove remaining unused coded related to object editing */ /* ################## End BE DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index abc2e9a72c..8b3be5ba8a 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -567,9 +567,10 @@ ivas_error ivas_dec( hp20( output[n], output_frame, st_ivas->mem_hp20_out[n], output_Fs ); } + #ifndef FIX_657_REMOVE_EDITING /* Set edited object positions, if editing enabled */ ivas_omasa_set_edited_objects( st_ivas ); - +#endif /* Rendering */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) { diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 001465bf51..b0356529b9 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -2434,7 +2434,7 @@ static int16_t ivas_decode_masaism_metadata( return ( nb_bits_read - *next_bit_pos ); } - +#ifndef FIX_657_REMOVE_EDITING /*-------------------------------------------------------------------* * ivas_omasa_set_edited_objects() * @@ -2501,3 +2501,4 @@ void ivas_omasa_set_edited_objects( return; } #endif +#endif diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 9ba6877cfb..3c54624d54 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -82,6 +82,9 @@ ivas_error ivas_omasa_data_open( { hMasaIsmData->q_elevation_old[ch] = 0.0f; hMasaIsmData->q_azimuth_old[ch] = 0.0f; +#ifdef FIX_657_REMOVE_EDITING + hMasaIsmData->ism_is_edited[ch] = 0; +#endif } for ( obj_idx = 0; obj_idx < MAX_NUM_OBJECTS; obj_idx++ ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 4706c6d89b..4d531ff1e5 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1059,11 +1059,12 @@ typedef struct Decoder_Struct SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; /* Spatial parametric (DirAC rend, ParamBin, ParamISM) rendering common data handle. */ #ifdef MASA_AND_OBJECTS MASA_ISM_DATA_HANDLE hMasaIsmData; /* MASA_ISM rendering structure */ +#ifndef FIX_657_REMOVE_EDITING uint8_t editing_ism_enabled; /* Todo Nokia: Temporary, used until proper ISM control available */ int16_t index_of_edited_ism; /* Todo Nokia: Temporary, used until proper ISM control available */ int16_t azimuth_edited; /* Todo Nokia: Temporary, used until proper ISM control available */ int16_t elevation_edited; /* Todo Nokia: Temporary, used until proper ISM control available */ - +#endif int16_t flag_omasa_brate; #endif diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 8458bb867a..3cd7fb9574 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -215,10 +215,12 @@ ivas_error IVAS_DEC_Open( st_ivas->sba_analysis_order = 0; #ifdef MASA_AND_OBJECTS +#ifndef FIX_657_REMOVE_EDITING hIvasDec->st_ivas->editing_ism_enabled = 0; hIvasDec->st_ivas->index_of_edited_ism = 0; hIvasDec->st_ivas->azimuth_edited = 0; hIvasDec->st_ivas->elevation_edited = 0; +#endif #endif return IVAS_ERR_OK; -- GitLab From db3e11cf4e4ff0e9f73fad5e2766520f416424f2 Mon Sep 17 00:00:00 2001 From: advasila Date: Wed, 2 Aug 2023 18:41:05 +0300 Subject: [PATCH 02/10] fix clang --- lib_dec/ivas_dec.c | 2 +- lib_dec/ivas_omasa_dec.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 8b3be5ba8a..f452ab3856 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -567,7 +567,7 @@ ivas_error ivas_dec( hp20( output[n], output_frame, st_ivas->mem_hp20_out[n], output_Fs ); } - #ifndef FIX_657_REMOVE_EDITING +#ifndef FIX_657_REMOVE_EDITING /* Set edited object positions, if editing enabled */ ivas_omasa_set_edited_objects( st_ivas ); #endif diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 3c54624d54..ee0c47faaa 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -82,8 +82,8 @@ ivas_error ivas_omasa_data_open( { hMasaIsmData->q_elevation_old[ch] = 0.0f; hMasaIsmData->q_azimuth_old[ch] = 0.0f; -#ifdef FIX_657_REMOVE_EDITING - hMasaIsmData->ism_is_edited[ch] = 0; +#ifdef FIX_657_REMOVE_EDITING + hMasaIsmData->ism_is_edited[ch] = 0; #endif } -- GitLab From 05fbd86e1a07de0ca643b5886101494a53a14922 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Aug 2023 18:50:54 +0200 Subject: [PATCH 03/10] add check for malloc return --- lib_dec/ivas_ism_renderer.c | 8 +++++++- lib_dec/ivas_masa_dec.c | 7 ++++++- lib_dec/ivas_vbap.c | 19 +++++++++++++------ lib_enc/ivas_omasa_enc.c | 10 ++++++++-- lib_rend/ivas_omasa_ana.c | 15 ++++++++++++--- 5 files changed, 46 insertions(+), 13 deletions(-) diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 33d3598e0e..ced15186f9 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -92,7 +92,13 @@ ivas_error ivas_ism_renderer_open( init_interpolator_length = (uint16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ); interpolator_length = init_interpolator_length; } - st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length ); + + if ( ( st_ivas->hIsmRendererData->interpolator = (float *) malloc( sizeof( float ) * init_interpolator_length ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for ISM renderer interpolator\n" ) ); + } + + for ( i = 0; i < interpolator_length; i++ ) { st_ivas->hIsmRendererData->interpolator[i] = (float) i / ( (float) interpolator_length - 1 ); diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index b0356529b9..f955f3f064 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -799,6 +799,7 @@ static ivas_error ivas_masa_dec_config( ivas_masa_set_coding_config( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ); #endif + #ifdef MASA_AND_OBJECTS if ( ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT ) && st_ivas->hDecoderConfig->ivas_total_brate == IVAS_512k ) #else @@ -806,10 +807,14 @@ static ivas_error ivas_masa_dec_config( #endif { hMasa->config.mergeRatiosOverSubframes = 0; + /* initialize spherical grid */ if ( hMasa->data.sph_grid16 == NULL ) { - hMasa->data.sph_grid16 = (SPHERICAL_GRID_DATA *) malloc( sizeof( SPHERICAL_GRID_DATA ) ); + if ( ( hMasa->data.sph_grid16 = (SPHERICAL_GRID_DATA *) malloc( sizeof( SPHERICAL_GRID_DATA ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MASA data handle\n" ) ); + } generate_gridEq( hMasa->data.sph_grid16 ); } } diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index dcc73907e2..e5bc4756bf 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -246,9 +246,11 @@ ivas_error vbap_init_data( #ifdef MASA_AND_OBJECTS if ( ivas_format == MASA_ISM_FORMAT ) { - vbap->object_mode_bottom_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ); + if ( ( vbap->object_mode_bottom_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); + } set_zero( vbap->object_mode_bottom_virtual_speaker_node_division_gains, num_speaker_nodes ); - is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; } #endif @@ -268,9 +270,11 @@ ivas_error vbap_init_data( #ifdef MASA_AND_OBJECTS if ( ivas_format == MASA_ISM_FORMAT ) { - vbap->object_mode_top_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ); + if ( ( vbap->object_mode_top_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); + } set_zero( vbap->object_mode_top_virtual_speaker_node_division_gains, num_speaker_nodes ); - is_success &= vbap->object_mode_top_virtual_speaker_node_division_gains != NULL; } #endif @@ -286,12 +290,15 @@ ivas_error vbap_init_data( } set_zero( vbap->back_virtual_speaker_node_division_gains, num_speaker_nodes ); is_success &= vbap->back_virtual_speaker_node_division_gains != NULL; + #ifdef MASA_AND_OBJECTS if ( ivas_format == MASA_ISM_FORMAT ) { - vbap->object_mode_back_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ); + if ( ( vbap->object_mode_back_virtual_speaker_node_division_gains = (float *) malloc( num_speaker_nodes * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); + } set_zero( vbap->object_mode_back_virtual_speaker_node_division_gains, num_speaker_nodes ); - is_success &= vbap->object_mode_back_virtual_speaker_node_division_gains != NULL; } #endif speaker_node_azi_deg_internal[vbap->back_virtual_speaker_node_index] = 180.0f; diff --git a/lib_enc/ivas_omasa_enc.c b/lib_enc/ivas_omasa_enc.c index ea782115bb..4d013c623a 100644 --- a/lib_enc/ivas_omasa_enc.c +++ b/lib_enc/ivas_omasa_enc.c @@ -101,7 +101,10 @@ ivas_error ivas_omasa_enc_open( for ( j = 0; j < MAX_PARAM_SPATIAL_SUBFRAMES; j++ ) { - hOMasa->direction_vector_m[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ); + if ( ( hOMasa->direction_vector_m[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA data\n" ) ); + } set_zero( hOMasa->direction_vector_m[i][j], MASA_FREQUENCY_BANDS ); } } @@ -110,7 +113,10 @@ ivas_error ivas_omasa_enc_open( { for ( j = 0; j < DIRAC_NO_COL_AVG_DIFF; j++ ) { - hOMasa->buffer_intensity_real[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ); + if ( ( hOMasa->buffer_intensity_real[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA data\n" ) ); + } set_zero( hOMasa->buffer_intensity_real[i][j], MASA_FREQUENCY_BANDS ); } } diff --git a/lib_rend/ivas_omasa_ana.c b/lib_rend/ivas_omasa_ana.c index eeed6a8253..f669a67671 100644 --- a/lib_rend/ivas_omasa_ana.c +++ b/lib_rend/ivas_omasa_ana.c @@ -116,11 +116,17 @@ ivas_error ivas_omasa_ana_open( /* intensity 3-dim */ for ( i = 0; i < DIRAC_NUM_DIMS; i++ ) { - hOMasa->direction_vector_m[i] = (float **) malloc( MAX_PARAM_SPATIAL_SUBFRAMES * sizeof( float * ) ); + if ( ( hOMasa->direction_vector_m[i] = (float **) malloc( MAX_PARAM_SPATIAL_SUBFRAMES * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA data\n" ) ); + } for ( j = 0; j < MAX_PARAM_SPATIAL_SUBFRAMES; j++ ) { - hOMasa->direction_vector_m[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ); + if ( ( hOMasa->direction_vector_m[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA data\n" ) ); + } set_zero( hOMasa->direction_vector_m[i][j], MASA_FREQUENCY_BANDS ); } } @@ -129,7 +135,10 @@ ivas_error ivas_omasa_ana_open( { for ( j = 0; j < DIRAC_NO_COL_AVG_DIFF; j++ ) { - hOMasa->buffer_intensity_real[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ); + if ( ( hOMasa->buffer_intensity_real[i][j] = (float *) malloc( MASA_FREQUENCY_BANDS * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA data\n" ) ); + } set_zero( hOMasa->buffer_intensity_real[i][j], MASA_FREQUENCY_BANDS ); } } -- GitLab From 230a0a5b367d3764f6814ef478e9a800332bf92f Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 3 Aug 2023 08:15:47 +0200 Subject: [PATCH 04/10] correct typos in comments; remove one outdated comment --- lib_com/ivas_prot.h | 2 +- lib_enc/ivas_stat_enc.h | 4 ++-- lib_enc/stat_enc.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 8432cef489..980c55022b 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -991,7 +991,7 @@ ivas_error ivas_ism_metadata_enc( const int16_t ism_extended_metadata_flag /* i : Extended metadata flag */ #ifdef MASA_AND_OBJECTS , - const float lp_noise_CPE, /* i : LP filterend total noise estimation */ + const float lp_noise_CPE, /* i : LP filtered total noise estimation */ const int16_t flag_omasa_ener_brate, /* i : less bitrate for objects in OMASA flag */ int16_t *omasa_stereo_sw_cnt #endif diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index d5aec62a0d..19cee451cf 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -796,10 +796,10 @@ typedef struct ivas_omasa_enc_state_structure typedef struct ivas_omasa_encoder_one_data_struct { - float energy_ism[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; /* TODO Nokia: Make an own MASAISM struct for these, and reserve it only for OMASA */ + float energy_ism[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; float energy_ratio_ism[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS][MAX_NUM_OBJECTS]; float q_energy_ratio_ism[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS][MAX_NUM_OBJECTS]; - float lp_noise_CPE; /* LP filterend total noise estimation */ + float lp_noise_CPE; /* LP filtered total noise estimation */ int16_t omasa_stereo_sw_cnt; } OMASA_ENCODER_DATA_STATE, *OMASA_ENCODER_DATA_HANDLE; diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index 34efc3da7f..95319fc5e8 100644 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1324,7 +1324,7 @@ typedef struct enc_core_structure float bckr_tilt_lt; float lp_speech; - float lp_noise; /* CNG and DTX - LP filterend total noise estimation */ + float lp_noise; /* CNG and DTX - LP filtered total noise estimation */ int16_t active_cnt; /* counter of active frames */ TD_CNG_ENC_HANDLE hTdCngEnc; -- GitLab From 8cecc237bd9e428d51caeed959830e5a44b61cfe Mon Sep 17 00:00:00 2001 From: advasila Date: Thu, 3 Aug 2023 10:57:55 +0300 Subject: [PATCH 05/10] remove two comments and move revert back to the initialization place of ism_is_edited --- lib_dec/ivas_masa_dec.c | 18 +++++++++++++----- lib_enc/ivas_qmetadata_enc.c | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 4a182d1cb1..d11f46b104 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -2363,7 +2363,7 @@ static int16_t ivas_decode_masaism_metadata( nb_bits_read = *next_bit_pos; nbands = hQMetaData->q_direction->cfg.nbands; - nblocks = hQMetaData->q_direction->cfg.nblocks; /* To do: what if other value than 4? */ + nblocks = hQMetaData->q_direction->cfg.nblocks; /* Read MASA-to-total energy ratios */ ivas_omasa_decode_masa_to_total( bit_stream, next_bit_pos, hQMetaData->masa_to_total_energy_ratio, nbands, nblocks ); @@ -2486,7 +2486,7 @@ static int16_t ivas_decode_masaism_metadata( return ( nb_bits_read - *next_bit_pos ); } -#ifndef FIX_657_REMOVE_EDITING + /*-------------------------------------------------------------------* * ivas_omasa_set_edited_objects() * @@ -2501,7 +2501,15 @@ void ivas_omasa_set_edited_objects( MASA_ISM_DATA_HANDLE hMasaIsmData; hMasaIsmData = st_ivas->hMasaIsmData; - +#ifdef FIX_657_REMOVE_EDITING + if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && st_ivas->ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) + { + for ( dir = 0; dir < MAX_NUM_OBJECTS; dir++ ) + { + hMasaIsmData->ism_is_edited[dir] = 0; + } + } +#else /* Set positions of the edited objects */ if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { @@ -2549,8 +2557,8 @@ void ivas_omasa_set_edited_objects( } } } - +#endif return; } -#endif + #endif diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 6be126ac83..b41103b757 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -6249,7 +6249,7 @@ static int16_t write_stream_dct_coeffs_omasa( bits_pos = hMetaData->nb_bits_tot; if ( low_bitrate_mode == 1 ) { - max_bits = 50; /* To do : find optimal allowed value*/ + max_bits = 50; } else { -- GitLab From 8b50a48c5ab011cbfb6dc4e6c26e73bddb272f86 Mon Sep 17 00:00:00 2001 From: advasila Date: Thu, 3 Aug 2023 11:54:49 +0300 Subject: [PATCH 06/10] remove header from prot.h --- lib_com/ivas_prot.h | 4 ++-- lib_dec/ivas_masa_dec.c | 18 +++++------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 5ce75ebfb0..217cbc3f33 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5795,11 +5795,11 @@ void ivas_omasa_separate_object_render( float output_f[][L_FRAME48k], /* i/o: output signals */ const int16_t output_frame /* i : output frame length per channel */ ); - +#ifndef FIX__657_REMOVE_EDITING void ivas_omasa_set_edited_objects( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); - +#endif void ivas_omasa_encode_masa_to_total( IVAS_QMETADATA_HANDLE hQMetaData, BSTR_ENC_HANDLE hMetaData, diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index d11f46b104..aa11b9797b 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -2363,7 +2363,7 @@ static int16_t ivas_decode_masaism_metadata( nb_bits_read = *next_bit_pos; nbands = hQMetaData->q_direction->cfg.nbands; - nblocks = hQMetaData->q_direction->cfg.nblocks; + nblocks = hQMetaData->q_direction->cfg.nblocks; /* Read MASA-to-total energy ratios */ ivas_omasa_decode_masa_to_total( bit_stream, next_bit_pos, hQMetaData->masa_to_total_energy_ratio, nbands, nblocks ); @@ -2486,7 +2486,7 @@ static int16_t ivas_decode_masaism_metadata( return ( nb_bits_read - *next_bit_pos ); } - +#ifndef FIX_657_REMOVE_EDITING /*-------------------------------------------------------------------* * ivas_omasa_set_edited_objects() * @@ -2497,19 +2497,11 @@ void ivas_omasa_set_edited_objects( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) { + int16_t dir, sf; MASA_ISM_DATA_HANDLE hMasaIsmData; hMasaIsmData = st_ivas->hMasaIsmData; -#ifdef FIX_657_REMOVE_EDITING - if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && st_ivas->ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) - { - for ( dir = 0; dir < MAX_NUM_OBJECTS; dir++ ) - { - hMasaIsmData->ism_is_edited[dir] = 0; - } - } -#else /* Set positions of the edited objects */ if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { @@ -2557,8 +2549,8 @@ void ivas_omasa_set_edited_objects( } } } -#endif + return; } - +#endif #endif -- GitLab From 202e01db66e1b8b0223a5e69fe4fb5b6b54db612 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 3 Aug 2023 11:33:54 +0200 Subject: [PATCH 07/10] reintorduce is_success parameter --- lib_dec/ivas_vbap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index e5bc4756bf..dce64aed9b 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -251,6 +251,7 @@ ivas_error vbap_init_data( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); } set_zero( vbap->object_mode_bottom_virtual_speaker_node_division_gains, num_speaker_nodes ); + is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; } #endif @@ -275,6 +276,7 @@ ivas_error vbap_init_data( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); } set_zero( vbap->object_mode_top_virtual_speaker_node_division_gains, num_speaker_nodes ); + is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; } #endif @@ -299,6 +301,7 @@ ivas_error vbap_init_data( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); } set_zero( vbap->object_mode_back_virtual_speaker_node_division_gains, num_speaker_nodes ); + is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; } #endif speaker_node_azi_deg_internal[vbap->back_virtual_speaker_node_index] = 180.0f; -- GitLab From 31ee6f9f18d8823cb13d0dbe9dadd1c1b727af12 Mon Sep 17 00:00:00 2001 From: advasila Date: Fri, 4 Aug 2023 10:26:04 +0300 Subject: [PATCH 08/10] fix clang --- lib_enc/ivas_qmetadata_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index b41103b757..bb89a61995 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -6249,7 +6249,7 @@ static int16_t write_stream_dct_coeffs_omasa( bits_pos = hMetaData->nb_bits_tot; if ( low_bitrate_mode == 1 ) { - max_bits = 50; + max_bits = 50; } else { -- GitLab From 328c347eac4ffbe1980a7b9ca2ea8d6150b24141 Mon Sep 17 00:00:00 2001 From: advasila Date: Mon, 7 Aug 2023 12:33:48 +0300 Subject: [PATCH 09/10] change initialization loop to max number of objects and fix comment in self_test --- lib_dec/ivas_omasa_dec.c | 13 ++++++++++--- scripts/config/self_test.prm | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index 833de7d634..832243883e 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -79,14 +79,21 @@ ivas_error ivas_omasa_data_open( hMasaIsmData->objectsMoved = 0; hMasaIsmData->delayBuffer = NULL; +#ifdef FIX_657_REMOVE_EDITING + for ( ch = 0; ch < MAX_NUM_OBJECTS; ch++ ) + { + hMasaIsmData->ism_is_edited[ch] = 0; + hMasaIsmData->q_elevation_old[ch] = 0.0f; + hMasaIsmData->q_azimuth_old[ch] = 0.0f; + } +#else for ( ch = 0; ch < st_ivas->nchan_ism; ch++ ) { hMasaIsmData->q_elevation_old[ch] = 0.0f; hMasaIsmData->q_azimuth_old[ch] = 0.0f; -#ifdef FIX_657_REMOVE_EDITING - hMasaIsmData->ism_is_edited[ch] = 0; -#endif } +#endif + for ( obj_idx = 0; obj_idx < MAX_NUM_OBJECTS; obj_idx++ ) { diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 205ff96f18..3a61256b3a 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -1274,7 +1274,7 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit ../IVAS_dec BINAURAL_ROOM_IR 32 bit testv/stvOMASA_2ISM_1MASA2TC48c.wav_BINAURAL_ROOM_IR_256000_48-32.tst -// OMASA 2Dir1TC 3ISM at 24.4 kbps, 48kHz in, 16kHz out, FOA out, FEC at 1% +// OMASA 2Dir1TC 3ISM at 24.4 kbps, 48kHz in, 16kHz out, FOA out, FEC at 10% ../IVAS_cod -ism_masa 3 1 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stv2MASA1TC48c.met 24400 48 testv/stvOMASA_3ISM_2MASA1TC48c.wav bit ../IVAS_dec -fec 10 FOA 16 bit testv/stvOMASA_3ISM_2MASA1TC48c.wav_FOA_24400_48-16.tst -- GitLab From 8bd0fdaaab841b8d17a791c2858d7f28daaf3d95 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Tue, 8 Aug 2023 06:24:28 +0000 Subject: [PATCH 10/10] Revert change in vbap for is_success update. --- lib_dec/ivas_vbap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index dce64aed9b..76ee5cb650 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -276,7 +276,7 @@ ivas_error vbap_init_data( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); } set_zero( vbap->object_mode_top_virtual_speaker_node_division_gains, num_speaker_nodes ); - is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; + is_success &= vbap->object_mode_top_virtual_speaker_node_division_gains != NULL; } #endif @@ -301,7 +301,7 @@ ivas_error vbap_init_data( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for VBAP data\n" ) ); } set_zero( vbap->object_mode_back_virtual_speaker_node_division_gains, num_speaker_nodes ); - is_success &= vbap->object_mode_bottom_virtual_speaker_node_division_gains != NULL; + is_success &= vbap->object_mode_back_virtual_speaker_node_division_gains != NULL; } #endif speaker_node_azi_deg_internal[vbap->back_virtual_speaker_node_index] = 180.0f; -- GitLab