Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define NONBE_FIX_1220_OMASA_JBM_EXT_USAN /* Nokia: fix issue 1220 OMASA EXT JBM USAN, also fix similar cases of free to avoid future problems */ /* ##################### End NON-BE switches ########################### */ Loading lib_dec/ivas_masa_dec.c +16 −0 Original line number Diff line number Diff line Loading @@ -1326,7 +1326,12 @@ ivas_error ivas_masa_dec_reconfigure( ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN /* Copy state to TC buffer if granularity matches and we are not in OMASA EXT rendering mode */ if ( st_ivas->hSpatParamRendCom != NULL && st_ivas->hSpatParamRendCom->slot_size == st_ivas->hTcBuffer->n_samples_granularity && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #else if ( st_ivas->hSpatParamRendCom != NULL && st_ivas->hSpatParamRendCom->slot_size == st_ivas->hTcBuffer->n_samples_granularity ) #endif { mvs2s( st_ivas->hSpatParamRendCom->subframe_nbslots, st_ivas->hTcBuffer->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS ); st_ivas->hTcBuffer->nb_subframes = st_ivas->hSpatParamRendCom->nb_subframes; Loading @@ -1347,6 +1352,16 @@ ivas_error ivas_masa_dec_reconfigure( return error; } } #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN else if ( st_ivas->renderer_type == RENDERER_DISABLE || st_ivas->renderer_type == RENDERER_MONO_DOWNMIX || st_ivas->renderer_type == RENDERER_OMASA_MIX_EXT ) { /* close all unnecessary parametric decoding and rendering */ ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin ); ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); } #else else if ( st_ivas->renderer_type == RENDERER_DISABLE || st_ivas->renderer_type == RENDERER_MONO_DOWNMIX ) { if ( st_ivas->hDirAC != NULL ) Loading @@ -1358,6 +1373,7 @@ ivas_error ivas_masa_dec_reconfigure( ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); } } #endif /* possible reconfigure is done later */ /*-----------------------------------------------------------------* Loading lib_dec/ivas_mct_dec.c +12 −0 Original line number Diff line number Diff line Loading @@ -849,13 +849,17 @@ static ivas_error ivas_mc_dec_reconfig( ivas_masa_dec_close( &( st_ivas->hMasa ) ); ivas_qmetadata_close( &st_ivas->hQMetaData ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN if ( st_ivas->hDirAC != NULL ) { #endif ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); vbap_free_data( &( st_ivas->hVBAPdata ) ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN } #endif /* init LS conversion if the renderer type asks for it */ if ( st_ivas->renderer_type == RENDERER_MC && st_ivas->hLsSetUpConversion == NULL ) Loading Loading @@ -935,14 +939,18 @@ static ivas_error ivas_mc_dec_reconfig( ivas_masa_dec_close( &( st_ivas->hMasa ) ); ivas_qmetadata_close( &st_ivas->hQMetaData ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN if ( st_ivas->hDirAC != NULL ) { #endif ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); vbap_free_data( &( st_ivas->hVBAPdata ) ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN } #endif if ( last_mc_mode == MC_MODE_MCT ) { Loading Loading @@ -1177,7 +1185,11 @@ static ivas_error ivas_mc_dec_reconfig( } } } #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN else if ( st_ivas->renderer_type == RENDERER_DISABLE ) #else else if ( st_ivas->renderer_type == RENDERER_DISABLE && st_ivas->hDirAC != NULL ) #endif { ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define NONBE_FIX_1220_OMASA_JBM_EXT_USAN /* Nokia: fix issue 1220 OMASA EXT JBM USAN, also fix similar cases of free to avoid future problems */ /* ##################### End NON-BE switches ########################### */ Loading
lib_dec/ivas_masa_dec.c +16 −0 Original line number Diff line number Diff line Loading @@ -1326,7 +1326,12 @@ ivas_error ivas_masa_dec_reconfigure( ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN /* Copy state to TC buffer if granularity matches and we are not in OMASA EXT rendering mode */ if ( st_ivas->hSpatParamRendCom != NULL && st_ivas->hSpatParamRendCom->slot_size == st_ivas->hTcBuffer->n_samples_granularity && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_EXTERNAL ) #else if ( st_ivas->hSpatParamRendCom != NULL && st_ivas->hSpatParamRendCom->slot_size == st_ivas->hTcBuffer->n_samples_granularity ) #endif { mvs2s( st_ivas->hSpatParamRendCom->subframe_nbslots, st_ivas->hTcBuffer->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS ); st_ivas->hTcBuffer->nb_subframes = st_ivas->hSpatParamRendCom->nb_subframes; Loading @@ -1347,6 +1352,16 @@ ivas_error ivas_masa_dec_reconfigure( return error; } } #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN else if ( st_ivas->renderer_type == RENDERER_DISABLE || st_ivas->renderer_type == RENDERER_MONO_DOWNMIX || st_ivas->renderer_type == RENDERER_OMASA_MIX_EXT ) { /* close all unnecessary parametric decoding and rendering */ ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin ); ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); } #else else if ( st_ivas->renderer_type == RENDERER_DISABLE || st_ivas->renderer_type == RENDERER_MONO_DOWNMIX ) { if ( st_ivas->hDirAC != NULL ) Loading @@ -1358,6 +1373,7 @@ ivas_error ivas_masa_dec_reconfigure( ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); } } #endif /* possible reconfigure is done later */ /*-----------------------------------------------------------------* Loading
lib_dec/ivas_mct_dec.c +12 −0 Original line number Diff line number Diff line Loading @@ -849,13 +849,17 @@ static ivas_error ivas_mc_dec_reconfig( ivas_masa_dec_close( &( st_ivas->hMasa ) ); ivas_qmetadata_close( &st_ivas->hQMetaData ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN if ( st_ivas->hDirAC != NULL ) { #endif ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); vbap_free_data( &( st_ivas->hVBAPdata ) ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN } #endif /* init LS conversion if the renderer type asks for it */ if ( st_ivas->renderer_type == RENDERER_MC && st_ivas->hLsSetUpConversion == NULL ) Loading Loading @@ -935,14 +939,18 @@ static ivas_error ivas_mc_dec_reconfig( ivas_masa_dec_close( &( st_ivas->hMasa ) ); ivas_qmetadata_close( &st_ivas->hQMetaData ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN if ( st_ivas->hDirAC != NULL ) { #endif ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); ivas_dirac_dec_close( &( st_ivas->hDirAC ) ); vbap_free_data( &( st_ivas->hVBAPdata ) ); #ifndef NONBE_FIX_1220_OMASA_JBM_EXT_USAN } #endif if ( last_mc_mode == MC_MODE_MCT ) { Loading Loading @@ -1177,7 +1185,11 @@ static ivas_error ivas_mc_dec_reconfig( } } } #ifdef NONBE_FIX_1220_OMASA_JBM_EXT_USAN else if ( st_ivas->renderer_type == RENDERER_DISABLE ) #else else if ( st_ivas->renderer_type == RENDERER_DISABLE && st_ivas->hDirAC != NULL ) #endif { ivas_dirac_rend_close( &( st_ivas->hDirACRend ) ); ivas_spat_hSpatParamRendCom_close( &( st_ivas->hSpatParamRendCom ) ); Loading