Loading lib_dec/ivas_sba_dec.c +13 −2 Original line number Diff line number Diff line Loading @@ -606,9 +606,20 @@ ivas_error ivas_sba_dec_reconfigure( *-----------------------------------------------------------------*/ ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); #ifndef SBA_BR_SWITCHING_RECONFIG nchan_hp20_old = getNumChanSynthesis( st_ivas ); #else int16_t analysis_order_old; analysis_order_old = ivas_sba_get_analysis_order( last_ivas_total_brate, st_ivas->sba_order ); if ( analysis_order_old > 1 ) { nchan_hp20_old = 0; } else { nchan_hp20_old = st_ivas->nchan_transport; } #endif nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; Loading lib_enc/ivas_sba_enc.c +65 −0 Original line number Diff line number Diff line Loading @@ -352,7 +352,72 @@ ivas_error ivas_sba_enc_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, hEncoderConfig->sba_order ); #ifdef SBA_BR_SWITCHING st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); #ifdef SBA_BR_SWITCHING_RECONFIG int16_t analysis_order_old = ivas_sba_get_analysis_order( hEncoderConfig->last_ivas_total_brate, hEncoderConfig->sba_order ); if ( analysis_order_old != st_ivas->sba_analysis_order ) { int16_t n, i, n_old; float **old_mem_hp20_in; n_old = ivas_sba_get_nchan_metadata( analysis_order_old ); n = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); if ( n > n_old ) { /* save old mem_hp_20 pointer */ old_mem_hp20_in = st_ivas->mem_hp20_in; st_ivas->mem_hp20_in = NULL; if ( ( st_ivas->mem_hp20_in = (float **) malloc( n * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } for ( i = 0; i < n_old; i++ ) { st_ivas->mem_hp20_in[i] = old_mem_hp20_in[i]; old_mem_hp20_in[i] = NULL; } /* create additional hp20 memories */ for ( ; i < n; i++ ) { if ( ( st_ivas->mem_hp20_in[i] = (float *) malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); } free( old_mem_hp20_in ); old_mem_hp20_in = NULL; } else if ( n < n_old ) { /* save old mem_hp_20 pointer */ old_mem_hp20_in = st_ivas->mem_hp20_in; st_ivas->mem_hp20_in = NULL; if ( ( st_ivas->mem_hp20_in = (float **) malloc( n * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } for ( i = 0; i < n; i++ ) { st_ivas->mem_hp20_in[i] = old_mem_hp20_in[i]; old_mem_hp20_in[i] = NULL; } /* remove superfluous hp20 memories */ for ( ; i < n_old; i++ ) { free( old_mem_hp20_in[i] ); old_mem_hp20_in[i] = NULL; } free( old_mem_hp20_in ); old_mem_hp20_in = NULL; } } #endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { if ( st_ivas->hSpar == NULL ) Loading Loading
lib_dec/ivas_sba_dec.c +13 −2 Original line number Diff line number Diff line Loading @@ -606,9 +606,20 @@ ivas_error ivas_sba_dec_reconfigure( *-----------------------------------------------------------------*/ ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); #ifndef SBA_BR_SWITCHING_RECONFIG nchan_hp20_old = getNumChanSynthesis( st_ivas ); #else int16_t analysis_order_old; analysis_order_old = ivas_sba_get_analysis_order( last_ivas_total_brate, st_ivas->sba_order ); if ( analysis_order_old > 1 ) { nchan_hp20_old = 0; } else { nchan_hp20_old = st_ivas->nchan_transport; } #endif nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; Loading
lib_enc/ivas_sba_enc.c +65 −0 Original line number Diff line number Diff line Loading @@ -352,7 +352,72 @@ ivas_error ivas_sba_enc_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, hEncoderConfig->sba_order ); #ifdef SBA_BR_SWITCHING st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); #ifdef SBA_BR_SWITCHING_RECONFIG int16_t analysis_order_old = ivas_sba_get_analysis_order( hEncoderConfig->last_ivas_total_brate, hEncoderConfig->sba_order ); if ( analysis_order_old != st_ivas->sba_analysis_order ) { int16_t n, i, n_old; float **old_mem_hp20_in; n_old = ivas_sba_get_nchan_metadata( analysis_order_old ); n = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); if ( n > n_old ) { /* save old mem_hp_20 pointer */ old_mem_hp20_in = st_ivas->mem_hp20_in; st_ivas->mem_hp20_in = NULL; if ( ( st_ivas->mem_hp20_in = (float **) malloc( n * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } for ( i = 0; i < n_old; i++ ) { st_ivas->mem_hp20_in[i] = old_mem_hp20_in[i]; old_mem_hp20_in[i] = NULL; } /* create additional hp20 memories */ for ( ; i < n; i++ ) { if ( ( st_ivas->mem_hp20_in[i] = (float *) malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); } free( old_mem_hp20_in ); old_mem_hp20_in = NULL; } else if ( n < n_old ) { /* save old mem_hp_20 pointer */ old_mem_hp20_in = st_ivas->mem_hp20_in; st_ivas->mem_hp20_in = NULL; if ( ( st_ivas->mem_hp20_in = (float **) malloc( n * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } for ( i = 0; i < n; i++ ) { st_ivas->mem_hp20_in[i] = old_mem_hp20_in[i]; old_mem_hp20_in[i] = NULL; } /* remove superfluous hp20 memories */ for ( ; i < n_old; i++ ) { free( old_mem_hp20_in[i] ); old_mem_hp20_in[i] = NULL; } free( old_mem_hp20_in ); old_mem_hp20_in = NULL; } } #endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { if ( st_ivas->hSpar == NULL ) Loading