Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ /* ##################### End NON-BE switches ########################### */ Loading lib_dec/ivas_ism_dec.c +22 −0 Original line number Diff line number Diff line Loading @@ -124,7 +124,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->hDecoderConfig->output_config ); } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif /* transfer subframe info from DirAC or ParamMC to central tc buffer */ /* only do this if we are not having done everything already in the TC decoding part and having only played out from the TC buffer */ if ( last_ism_mode == ISM_MODE_PARAM && st_ivas->hSpatParamRendCom != NULL && st_ivas->hTcBuffer->tc_buffer_mode != TC_BUFFER_MODE_BUFFER ) Loading @@ -142,10 +144,19 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( tc_granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { #ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* write back info for correct rendering of the flushable samples */ int16_t nchan_transport_ref = st_ivas->nchan_transport; st_ivas->nchan_transport = nchan_transport_old; #endif if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, tc_granularity_new, renderer_type_old, intern_config_old, &hIntSetupOld, MC_MODE_NONE, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) { return error; } #ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH st_ivas->nchan_transport = nchan_transport_ref; #endif } /* JBM: when granularity goes up set samples to discard at the beginning of the frame */ else if ( tc_granularity_new > st_ivas->hTcBuffer->n_samples_granularity ) Loading @@ -155,7 +166,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( return error; } } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif if ( st_ivas->ism_mode != last_ism_mode ) { Loading Loading @@ -311,19 +324,26 @@ static ivas_error ivas_ism_bitrate_switching_dec( * floating-point output audio buffers *-----------------------------------------------------------------*/ #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ); if ( ( error = ivas_output_buff_dec( st_ivas->p_output_f, nchan_out_buff_old, nchan_out_buff ) ) != IVAS_ERR_OK ) { return error; } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif /*-----------------------------------------------------------------* * JBM TC buffers *-----------------------------------------------------------------*/ #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif int16_t tc_nchan_full_new; DECODER_TC_BUFFER_HANDLE hTcBuffer; Loading Loading @@ -359,7 +379,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( mvs2s( st_ivas->hTcBuffer->subframe_nbslots, st_ivas->hSpatParamRendCom->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS ); } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif return error; } Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,7 @@ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ #define NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* VA: issue 1200: fix bug in renderer flush in ISM JBM bitrate switching */ /* ##################### End NON-BE switches ########################### */ Loading
lib_dec/ivas_ism_dec.c +22 −0 Original line number Diff line number Diff line Loading @@ -124,7 +124,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->hDecoderConfig->output_config ); } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif /* transfer subframe info from DirAC or ParamMC to central tc buffer */ /* only do this if we are not having done everything already in the TC decoding part and having only played out from the TC buffer */ if ( last_ism_mode == ISM_MODE_PARAM && st_ivas->hSpatParamRendCom != NULL && st_ivas->hTcBuffer->tc_buffer_mode != TC_BUFFER_MODE_BUFFER ) Loading @@ -142,10 +144,19 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( tc_granularity_new < st_ivas->hTcBuffer->n_samples_granularity ) { #ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH /* write back info for correct rendering of the flushable samples */ int16_t nchan_transport_ref = st_ivas->nchan_transport; st_ivas->nchan_transport = nchan_transport_old; #endif if ( ( error = ivas_jbm_dec_flush_renderer( st_ivas, tc_granularity_new, renderer_type_old, intern_config_old, &hIntSetupOld, MC_MODE_NONE, last_ism_mode, nSamplesRendered, pcm_resolution, data ) ) != IVAS_ERR_OK ) { return error; } #ifdef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH st_ivas->nchan_transport = nchan_transport_ref; #endif } /* JBM: when granularity goes up set samples to discard at the beginning of the frame */ else if ( tc_granularity_new > st_ivas->hTcBuffer->n_samples_granularity ) Loading @@ -155,7 +166,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( return error; } } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif if ( st_ivas->ism_mode != last_ism_mode ) { Loading Loading @@ -311,19 +324,26 @@ static ivas_error ivas_ism_bitrate_switching_dec( * floating-point output audio buffers *-----------------------------------------------------------------*/ #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 ); if ( ( error = ivas_output_buff_dec( st_ivas->p_output_f, nchan_out_buff_old, nchan_out_buff ) ) != IVAS_ERR_OK ) { return error; } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif /*-----------------------------------------------------------------* * JBM TC buffers *-----------------------------------------------------------------*/ #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH { #endif int16_t tc_nchan_full_new; DECODER_TC_BUFFER_HANDLE hTcBuffer; Loading Loading @@ -359,7 +379,9 @@ static ivas_error ivas_ism_bitrate_switching_dec( mvs2s( st_ivas->hTcBuffer->subframe_nbslots, st_ivas->hSpatParamRendCom->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS ); } #ifndef NONBE_1200_ISM_JBM_BRATE_SW_FLUSH } #endif return error; } Loading