diff --git a/lib_com/options.h b/lib_com/options.h index 91e0ec238256858c7b6f1c221c38cf1bf3cbe47a..ff1bc4ed7ac2e0512e86d17fefc9f74901b44859 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -154,7 +154,7 @@ /* ################## Start DEVELOPMENT switches ######################### */ -/*#define OBJ_EDITING_INTERFACE*/ /* Interface for object editing */ +#define OBJ_EDITING_INTERFACE /* Interface for object editing */ #ifdef OBJ_EDITING_INTERFACE #define OBJ_EDITING_API /* object editing changes related to the API */ #define OBJ_EDITING_EXAMPLE /* obj editing example code in decoder.c */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 6eea0419a29f31a65394034831ec423ed42af106..29b2cd140379307b64145cbcc49e58f3a2c17567 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -792,7 +792,7 @@ void ivas_jbm_dec_feed_tc_to_renderer( float *p_data_f[MAX_CLDFB_DIGEST_CHANNELS]; int16_t n, n_render_timeslots; - push_wmops( "ivas_jbm_dec_feed_tc_to_rendererer" ); + push_wmops( "ivas_jbm_dec_feed_tc_to_renderer" ); for ( n = 0; n < MAX_CLDFB_DIGEST_CHANNELS; n++ ) { p_data_f[n] = &data_f[n][0]; @@ -3012,7 +3012,7 @@ void ivas_jbm_dec_prepare_renderer( { int16_t n, n_render_timeslots; - push_wmops( "ivas_jbm_dec_feed_tc_to_rendererer" ); + push_wmops( "ivas_jbm_dec_prepare_renderer" ); n_render_timeslots = st_ivas->hTcBuffer->n_samples_available / st_ivas->hTcBuffer->n_samples_granularity; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 81c5e7fe657350dc6cb5a1d35519eb535a09a5a7..a3d3c7492a650c8a1bd9f0e5362e8b94480f2708 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -888,7 +888,6 @@ ivas_error IVAS_DEC_FeedFrame_Serial( bfi = 2; } } - if ( ( error = read_indices( hIvasDec->st_ivas, serial, num_bits, &hIvasDec->prev_ft_speech, &hIvasDec->CNG, bfi ) ) != IVAS_ERR_OK ) { return error; @@ -911,9 +910,11 @@ ivas_error IVAS_DEC_FeedFrame_Serial( hIvasDec->nSamplesAvailableNext = hIvasDec->nSamplesFrame; #ifdef OBJ_EDITING_API - /* decode TCs, do TSM and feed to renderer */ - /* setup */ - if ( hIvasDec->hasBeenFedFirstGoodFrame ) + /* Decode TCs, do TSM and feed to renderer. + If TSM is generally enabled, we have to wait for the first good frame. + Otherwise, we directly decode the first frame in any case. + */ + if ( ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && hIvasDec->hasBeenFedFirstGoodFrame ) || !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm ) { uint16_t l_ts, nTimeScalerOutSamples; uint8_t nTransportChannels, nOutChannels; @@ -982,6 +983,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( return IVAS_ERR_UNKNOWN; } } + hIvasDec->hasBeenFedFrame = false; } hIvasDec->hasBeenPreparedRendering = false; @@ -1381,7 +1383,7 @@ ivas_error IVAS_DEC_SetEditableParameters( /*---------------------------------------------------------------------* * IVAS_DEC_PrepareRenderer( ) * - * Main function to decode to PCM data + * prepare IVAS JBM renderer *---------------------------------------------------------------------*/ ivas_error IVAS_DEC_PrepareRenderer( IVAS_DEC_HANDLE hIvasDec ) @@ -1598,7 +1600,7 @@ ivas_error IVAS_DEC_GetSamples( #ifdef DEBUGGING else { - assert( 0 & "wrong PCM type for the flush buffer!" ); + assert( 0 && "wrong PCM type for the flush buffer!" ); } #endif nSamplesRendered += hIvasDec->nSamplesFlushed;