Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,7 @@ #define PARAMUPMIX_BINAURAL_UPDATES /* Dlb : issue 652, MC ParamUpmix Binaural Updates */ #define FIX_657_REMOVE_EDITING /* Nokia: Remove remaining unused coded related to object editing */ #define FIX_634_MASA_JBM_UNUSED_PARAMETER /* Nokia: Fix issue 634 by removing the unnecessary argument. */ #define FIX_675_WB_OMASA /* Nokia: Fix for issue 675 solving the crash in OMASA for WB input */ /* ################## End BE DEVELOPMENT switches ######################### */ Loading lib_enc/ivas_masa_enc.c +46 −3 Original line number Diff line number Diff line Loading @@ -3527,15 +3527,23 @@ static void ivas_encode_masaism_metadata( int16_t tmp, rotate; int16_t n_ism_tmp, i; OMASA_ENCODER_DATA_HANDLE hOmasaData = hMasa->data.hOmasaData; #ifdef FIX_675_WB_OMASA int16_t nbands_work; #endif /* use the values from hQMetaData */ numCodingBands = (uint8_t) hQMetaData->q_direction->cfg.nbands; numSf = (int8_t) hQMetaData->q_direction->cfg.nblocks; #ifdef FIX_675_WB_OMASA nbands_work = min( numCodingBands, omasa_nbands ); if ( numCodingBands == 1 ) #else if ( numCodingBands != omasa_nbands ) #endif { #ifndef FIX_675_WB_OMASA assert( numCodingBands == 1 ); #endif for ( sf = 0; sf < numSf; sf++ ) { if ( sum_f( hOmasaData->energy_ism[sf], omasa_nbands ) == 0.0f ) Loading Loading @@ -3575,11 +3583,20 @@ static void ivas_encode_masaism_metadata( } } } #ifdef FIX_675_WB_OMASA else if ( numSf == 1 ) #else else if ( numSf != omasa_nblocks ) #endif { #ifndef FIX_675_WB_OMASA assert( numSf == 1 ); #endif #ifdef FIX_675_WB_OMASA for ( band = 0; band < nbands_work; band++ ) #else for ( band = 0; band < numCodingBands; band++ ) #endif { energy_ism = 0.0f; /* ISM energy for current subband */ for ( obj = 0; obj < nchan_ism; obj++ ) Loading Loading @@ -3619,12 +3636,27 @@ static void ivas_encode_masaism_metadata( hQMetaData->masa_to_total_energy_ratio[0][band] = eneBand / ( eneBand + energy_ism + EPSILON ); } } #ifdef FIX_675_WB_OMASA for ( band = nbands_work; band < numCodingBands; band++ ) { hQMetaData->masa_to_total_energy_ratio[0][band] = 1.0f; for ( obj = 0; obj < nchan_ism; obj++ ) { hOmasaData->energy_ratio_ism[0][band][obj] = hOmasaData->energy_ratio_ism[0][nbands_work - 1][obj]; } } #endif } else { for ( sf = 0; sf < numSf; sf++ ) { #ifdef FIX_675_WB_OMASA for ( band = 0; band < nbands_work; band++ ) #else for ( band = 0; band < numCodingBands; band++ ) #endif { if ( hOmasaData->energy_ism[sf][band] == 0.0f ) { Loading @@ -3643,6 +3675,17 @@ static void ivas_encode_masaism_metadata( hQMetaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->energy_ism[sf][band] + EPSILON ); } } #ifdef FIX_675_WB_OMASA for ( band = nbands_work; band < numCodingBands; band++ ) { hQMetaData->masa_to_total_energy_ratio[sf][band] = 1.0f; for ( obj = 0; obj < nchan_ism; obj++ ) { hOmasaData->energy_ratio_ism[sf][band][obj] = hOmasaData->energy_ratio_ism[sf][nbands_work - 1][obj]; } } #endif } } Loading Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -232,7 +232,7 @@ #define PARAMUPMIX_BINAURAL_UPDATES /* Dlb : issue 652, MC ParamUpmix Binaural Updates */ #define FIX_657_REMOVE_EDITING /* Nokia: Remove remaining unused coded related to object editing */ #define FIX_634_MASA_JBM_UNUSED_PARAMETER /* Nokia: Fix issue 634 by removing the unnecessary argument. */ #define FIX_675_WB_OMASA /* Nokia: Fix for issue 675 solving the crash in OMASA for WB input */ /* ################## End BE DEVELOPMENT switches ######################### */ Loading
lib_enc/ivas_masa_enc.c +46 −3 Original line number Diff line number Diff line Loading @@ -3527,15 +3527,23 @@ static void ivas_encode_masaism_metadata( int16_t tmp, rotate; int16_t n_ism_tmp, i; OMASA_ENCODER_DATA_HANDLE hOmasaData = hMasa->data.hOmasaData; #ifdef FIX_675_WB_OMASA int16_t nbands_work; #endif /* use the values from hQMetaData */ numCodingBands = (uint8_t) hQMetaData->q_direction->cfg.nbands; numSf = (int8_t) hQMetaData->q_direction->cfg.nblocks; #ifdef FIX_675_WB_OMASA nbands_work = min( numCodingBands, omasa_nbands ); if ( numCodingBands == 1 ) #else if ( numCodingBands != omasa_nbands ) #endif { #ifndef FIX_675_WB_OMASA assert( numCodingBands == 1 ); #endif for ( sf = 0; sf < numSf; sf++ ) { if ( sum_f( hOmasaData->energy_ism[sf], omasa_nbands ) == 0.0f ) Loading Loading @@ -3575,11 +3583,20 @@ static void ivas_encode_masaism_metadata( } } } #ifdef FIX_675_WB_OMASA else if ( numSf == 1 ) #else else if ( numSf != omasa_nblocks ) #endif { #ifndef FIX_675_WB_OMASA assert( numSf == 1 ); #endif #ifdef FIX_675_WB_OMASA for ( band = 0; band < nbands_work; band++ ) #else for ( band = 0; band < numCodingBands; band++ ) #endif { energy_ism = 0.0f; /* ISM energy for current subband */ for ( obj = 0; obj < nchan_ism; obj++ ) Loading Loading @@ -3619,12 +3636,27 @@ static void ivas_encode_masaism_metadata( hQMetaData->masa_to_total_energy_ratio[0][band] = eneBand / ( eneBand + energy_ism + EPSILON ); } } #ifdef FIX_675_WB_OMASA for ( band = nbands_work; band < numCodingBands; band++ ) { hQMetaData->masa_to_total_energy_ratio[0][band] = 1.0f; for ( obj = 0; obj < nchan_ism; obj++ ) { hOmasaData->energy_ratio_ism[0][band][obj] = hOmasaData->energy_ratio_ism[0][nbands_work - 1][obj]; } } #endif } else { for ( sf = 0; sf < numSf; sf++ ) { #ifdef FIX_675_WB_OMASA for ( band = 0; band < nbands_work; band++ ) #else for ( band = 0; band < numCodingBands; band++ ) #endif { if ( hOmasaData->energy_ism[sf][band] == 0.0f ) { Loading @@ -3643,6 +3675,17 @@ static void ivas_encode_masaism_metadata( hQMetaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->energy_ism[sf][band] + EPSILON ); } } #ifdef FIX_675_WB_OMASA for ( band = nbands_work; band < numCodingBands; band++ ) { hQMetaData->masa_to_total_energy_ratio[sf][band] = 1.0f; for ( obj = 0; obj < nchan_ism; obj++ ) { hOmasaData->energy_ratio_ism[sf][band][obj] = hOmasaData->energy_ratio_ism[sf][nbands_work - 1][obj]; } } #endif } } Loading