Loading lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -210,6 +210,9 @@ #define FIX_I503_ASAN_ERROR_IND_LIST /* VA: fix issue #503: address sanitizer error with IND_LIST_DYN */ #define FIX_473_JITTER_NONDIEGETIC_PANNING /* FhG,Orange: add missing non-diegetic panning to JITTER */ #ifdef HR_METADATA #define FIX_505_MASA_SPHGRID_REUSE /* Nokia: Fix issue #505: MASA spherical grid reuse fix */ #endif /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_enc/ivas_masa_enc.c +21 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,10 @@ static void average_masa_metadata( MASA_METADATA_FRAME *masaMetadata, float ener #ifdef HR_METADATA , const SPHERICAL_GRID_DATA *sphGrid #ifdef FIX_505_MASA_SPHGRID_REUSE , const uint8_t useSphGrid #endif #endif ); Loading Loading @@ -505,7 +509,9 @@ ivas_error ivas_masa_enc_config( #endif ivas_error error; #ifdef HR_METADATA #ifndef FIX_505_MASA_SPHGRID_REUSE SPHERICAL_GRID_DATA *sphGrid; #endif #endif error = IVAS_ERR_OK; Loading @@ -528,6 +534,7 @@ ivas_error ivas_masa_enc_config( if ( hMasa->data.sync_state.frame_mode == MASA_FRAME_1SF && hMasa->data.sync_state.prev_offset != 0 ) { #ifdef HR_METADATA #ifndef FIX_505_MASA_SPHGRID_REUSE if ( ( sphGrid = (SPHERICAL_GRID_DATA *) malloc( sizeof( SPHERICAL_GRID_DATA ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MASA spherical grid\n" ) ); Loading @@ -541,13 +548,19 @@ ivas_error ivas_masa_enc_config( { sphGrid->no_theta = 0; } #endif #endif /* average over sub-frames */ average_masa_metadata( &( hMasa->masaMetadata ), hMasa->data.energy #ifdef HR_METADATA , #ifdef FIX_505_MASA_SPHGRID_REUSE &( hMasa->data.Sph_Grid16 ), ivas_total_brate == IVAS_512k ? TRUE : FALSE #else sphGrid #endif #endif ); } Loading Loading @@ -1826,6 +1839,10 @@ static void average_masa_metadata( #ifdef HR_METADATA , const SPHERICAL_GRID_DATA *Sph_Grid16 #ifdef FIX_505_MASA_SPHGRID_REUSE , const uint8_t useSphGrid #endif #endif ) { Loading Loading @@ -1875,7 +1892,11 @@ static void average_masa_metadata( hMeta->directional_meta[i].azimuth[j][k] = atan2f( y_sum, x_sum ) / EVS_PI * 180.0f; hMeta->directional_meta[i].elevation[j][k] = atan2f( z_sum, sqrtf( x_sum * x_sum + y_sum * y_sum ) ) / EVS_PI * 180.0f; #ifdef HR_METADATA #ifdef FIX_505_MASA_SPHGRID_REUSE if ( useSphGrid == TRUE ) #else if ( Sph_Grid16->no_theta > 0 ) #endif { hMeta->directional_meta[i].spherical_index[j][k] = index_theta_phi_16( &( hMeta->directional_meta[i].elevation[j][k] ), &( hMeta->directional_meta[i].azimuth[j][k] ), Sph_Grid16 ); Loading Loading
lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -210,6 +210,9 @@ #define FIX_I503_ASAN_ERROR_IND_LIST /* VA: fix issue #503: address sanitizer error with IND_LIST_DYN */ #define FIX_473_JITTER_NONDIEGETIC_PANNING /* FhG,Orange: add missing non-diegetic panning to JITTER */ #ifdef HR_METADATA #define FIX_505_MASA_SPHGRID_REUSE /* Nokia: Fix issue #505: MASA spherical grid reuse fix */ #endif /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_enc/ivas_masa_enc.c +21 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,10 @@ static void average_masa_metadata( MASA_METADATA_FRAME *masaMetadata, float ener #ifdef HR_METADATA , const SPHERICAL_GRID_DATA *sphGrid #ifdef FIX_505_MASA_SPHGRID_REUSE , const uint8_t useSphGrid #endif #endif ); Loading Loading @@ -505,7 +509,9 @@ ivas_error ivas_masa_enc_config( #endif ivas_error error; #ifdef HR_METADATA #ifndef FIX_505_MASA_SPHGRID_REUSE SPHERICAL_GRID_DATA *sphGrid; #endif #endif error = IVAS_ERR_OK; Loading @@ -528,6 +534,7 @@ ivas_error ivas_masa_enc_config( if ( hMasa->data.sync_state.frame_mode == MASA_FRAME_1SF && hMasa->data.sync_state.prev_offset != 0 ) { #ifdef HR_METADATA #ifndef FIX_505_MASA_SPHGRID_REUSE if ( ( sphGrid = (SPHERICAL_GRID_DATA *) malloc( sizeof( SPHERICAL_GRID_DATA ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MASA spherical grid\n" ) ); Loading @@ -541,13 +548,19 @@ ivas_error ivas_masa_enc_config( { sphGrid->no_theta = 0; } #endif #endif /* average over sub-frames */ average_masa_metadata( &( hMasa->masaMetadata ), hMasa->data.energy #ifdef HR_METADATA , #ifdef FIX_505_MASA_SPHGRID_REUSE &( hMasa->data.Sph_Grid16 ), ivas_total_brate == IVAS_512k ? TRUE : FALSE #else sphGrid #endif #endif ); } Loading Loading @@ -1826,6 +1839,10 @@ static void average_masa_metadata( #ifdef HR_METADATA , const SPHERICAL_GRID_DATA *Sph_Grid16 #ifdef FIX_505_MASA_SPHGRID_REUSE , const uint8_t useSphGrid #endif #endif ) { Loading Loading @@ -1875,7 +1892,11 @@ static void average_masa_metadata( hMeta->directional_meta[i].azimuth[j][k] = atan2f( y_sum, x_sum ) / EVS_PI * 180.0f; hMeta->directional_meta[i].elevation[j][k] = atan2f( z_sum, sqrtf( x_sum * x_sum + y_sum * y_sum ) ) / EVS_PI * 180.0f; #ifdef HR_METADATA #ifdef FIX_505_MASA_SPHGRID_REUSE if ( useSphGrid == TRUE ) #else if ( Sph_Grid16->no_theta > 0 ) #endif { hMeta->directional_meta[i].spherical_index[j][k] = index_theta_phi_16( &( hMeta->directional_meta[i].elevation[j][k] ), &( hMeta->directional_meta[i].azimuth[j][k] ), Sph_Grid16 ); Loading