Loading lib_dec/ivas_corecoder_dec_reconfig.c +37 −3 Original line number Diff line number Diff line Loading @@ -90,8 +90,13 @@ ivas_error ivas_corecoder_dec_reconfig( *-----------------------------------------------------------------*/ /* remove dummy CPE element for DFT stereo-like upmix */ #ifdef SBA2MONO if ( ( st_ivas->ivas_format == SBA_FORMAT && sba_dirac_stereo_flag_old && nchan_transport_old == 1 && ( !st_ivas->sba_dirac_stereo_flag || st_ivas->nchan_transport > 1 ) ) || ( st_ivas->ivas_format == MC_FORMAT && last_mc_mode == MC_MODE_MCMASA && sba_dirac_stereo_flag_old && nchan_transport_old == 1 && ( !st_ivas->sba_dirac_stereo_flag || st_ivas->nchan_transport > 1 ) ) ) #else if ( ( st_ivas->ivas_format == SBA_FORMAT && sba_dirac_stereo_flag_old && !st_ivas->sba_dirac_stereo_flag ) || ( st_ivas->ivas_format == MC_FORMAT && last_mc_mode == MC_MODE_MCMASA && sba_dirac_stereo_flag_old && !st_ivas->sba_dirac_stereo_flag ) ) #endif { st_ivas->hCPE[0]->hCoreCoder[0] = NULL; st_ivas->hCPE[0]->hCoreCoder[1] = NULL; Loading Loading @@ -150,9 +155,19 @@ ivas_error ivas_corecoder_dec_reconfig( for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) { #ifdef SBA2MONO /* don't deallocate first CPE in case of mono/stereo output of 1 TC SBA */ if ( cpe_id == 0 && st_ivas->sba_dirac_stereo_flag ) /* don't deallocate first CPE in case of mono/stereo output of 1 TC SBA, only deallocate core coder */ if ( cpe_id == 0 && st_ivas->sba_dirac_stereo_flag && sba_dirac_stereo_flag_old ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { if ( st_ivas->hCPE[cpe_id]->hCoreCoder[n] != NULL ) { destroy_core_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); free( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); st_ivas->hCPE[cpe_id]->hCoreCoder[n] = NULL; } } continue; } #endif Loading Loading @@ -196,7 +211,7 @@ ivas_error ivas_corecoder_dec_reconfig( } } #ifdef SBA2MONO if ( st_ivas->sba_dirac_stereo_flag && st_ivas->nchan_transport == 1 && nchan_transport_old > 1 ) if ( st_ivas->sba_dirac_stereo_flag && sba_dirac_stereo_flag_old && st_ivas->nchan_transport == 1 && nSCE_old == 0 ) { st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ st_ivas->hCPE[0]->hCoreCoder[1] = NULL; Loading Loading @@ -280,10 +295,29 @@ ivas_error ivas_corecoder_dec_reconfig( if ( ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_dirac_stereo_flag && !sba_dirac_stereo_flag_old ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA && st_ivas->sba_dirac_stereo_flag && !sba_dirac_stereo_flag_old ) ) { #ifdef SBA2MONO /* if at least one CPE is already available, only allocate DFT Stereo struct */ if ( st_ivas->nCPE > 0 ) { if ( ( error = stereo_dft_dec_create( &(st_ivas->hCPE[0]->hStereoDft ), st_ivas->hCPE[0]->element_brate, st_ivas->hDecoderConfig->output_Fs, st_ivas->sba_dirac_stereo_flag, st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) { return error; } } /* otherwise create extra dummy CPE */ else { if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } } #else if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } #endif // VE: TBV - just reset for now set_f( st_ivas->hCPE[0]->hStereoDft->buff_LBTCX_mem, 0, NS2SA( 16000, STEREO_DFT32MS_OVL_NS ) ); Loading Loading
lib_dec/ivas_corecoder_dec_reconfig.c +37 −3 Original line number Diff line number Diff line Loading @@ -90,8 +90,13 @@ ivas_error ivas_corecoder_dec_reconfig( *-----------------------------------------------------------------*/ /* remove dummy CPE element for DFT stereo-like upmix */ #ifdef SBA2MONO if ( ( st_ivas->ivas_format == SBA_FORMAT && sba_dirac_stereo_flag_old && nchan_transport_old == 1 && ( !st_ivas->sba_dirac_stereo_flag || st_ivas->nchan_transport > 1 ) ) || ( st_ivas->ivas_format == MC_FORMAT && last_mc_mode == MC_MODE_MCMASA && sba_dirac_stereo_flag_old && nchan_transport_old == 1 && ( !st_ivas->sba_dirac_stereo_flag || st_ivas->nchan_transport > 1 ) ) ) #else if ( ( st_ivas->ivas_format == SBA_FORMAT && sba_dirac_stereo_flag_old && !st_ivas->sba_dirac_stereo_flag ) || ( st_ivas->ivas_format == MC_FORMAT && last_mc_mode == MC_MODE_MCMASA && sba_dirac_stereo_flag_old && !st_ivas->sba_dirac_stereo_flag ) ) #endif { st_ivas->hCPE[0]->hCoreCoder[0] = NULL; st_ivas->hCPE[0]->hCoreCoder[1] = NULL; Loading Loading @@ -150,9 +155,19 @@ ivas_error ivas_corecoder_dec_reconfig( for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) { #ifdef SBA2MONO /* don't deallocate first CPE in case of mono/stereo output of 1 TC SBA */ if ( cpe_id == 0 && st_ivas->sba_dirac_stereo_flag ) /* don't deallocate first CPE in case of mono/stereo output of 1 TC SBA, only deallocate core coder */ if ( cpe_id == 0 && st_ivas->sba_dirac_stereo_flag && sba_dirac_stereo_flag_old ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { if ( st_ivas->hCPE[cpe_id]->hCoreCoder[n] != NULL ) { destroy_core_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); free( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); st_ivas->hCPE[cpe_id]->hCoreCoder[n] = NULL; } } continue; } #endif Loading Loading @@ -196,7 +211,7 @@ ivas_error ivas_corecoder_dec_reconfig( } } #ifdef SBA2MONO if ( st_ivas->sba_dirac_stereo_flag && st_ivas->nchan_transport == 1 && nchan_transport_old > 1 ) if ( st_ivas->sba_dirac_stereo_flag && sba_dirac_stereo_flag_old && st_ivas->nchan_transport == 1 && nSCE_old == 0 ) { st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ st_ivas->hCPE[0]->hCoreCoder[1] = NULL; Loading Loading @@ -280,10 +295,29 @@ ivas_error ivas_corecoder_dec_reconfig( if ( ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_dirac_stereo_flag && !sba_dirac_stereo_flag_old ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA && st_ivas->sba_dirac_stereo_flag && !sba_dirac_stereo_flag_old ) ) { #ifdef SBA2MONO /* if at least one CPE is already available, only allocate DFT Stereo struct */ if ( st_ivas->nCPE > 0 ) { if ( ( error = stereo_dft_dec_create( &(st_ivas->hCPE[0]->hStereoDft ), st_ivas->hCPE[0]->element_brate, st_ivas->hDecoderConfig->output_Fs, st_ivas->sba_dirac_stereo_flag, st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) { return error; } } /* otherwise create extra dummy CPE */ else { if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } } #else if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } #endif // VE: TBV - just reset for now set_f( st_ivas->hCPE[0]->hStereoDft->buff_LBTCX_mem, 0, NS2SA( 16000, STEREO_DFT32MS_OVL_NS ) ); Loading