From 5ba20af7a38fad978274542de69369350676b769 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 3 Sep 2024 09:40:30 +0200 Subject: [PATCH 1/5] enable OBJ_EDITING_INTERFACE and fix EVS non-bitexactness --- apps/decoder.c | 1 - lib_com/options.h | 2 +- lib_dec/ivas_jbm_dec.c | 4 ++-- lib_dec/lib_dec.c | 10 +++++----- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 9a0a7ebd64..fc003928e9 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1112,7 +1112,6 @@ static bool parseCmdlIVAS_dec( #ifdef OBJ_EDITING_EXAMPLE arg->objEditEnabled = false; #endif -# /*-----------------------------------------------------------------* diff --git a/lib_com/options.h b/lib_com/options.h index 02e3d0df8e..d1e85d2805 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 6eea0419a2..29b2cd1403 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 61ba65f590..69f344d4f5 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -895,7 +895,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; @@ -919,8 +918,8 @@ ivas_error IVAS_DEC_FeedFrame_Serial( #ifdef OBJ_EDITING_API /* decode TCs, do TSM and feed to renderer */ - /* setup */ - if ( hIvasDec->hasBeenFedFirstGoodFrame ) + if ( ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && hIvasDec->hasBeenFedFirstGoodFrame ) || + ( !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) ) ) { uint16_t l_ts, nTimeScalerOutSamples; uint8_t nTransportChannels, nOutChannels; @@ -989,6 +988,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( return IVAS_ERR_UNKNOWN; } } + hIvasDec->hasBeenFedFrame = false; } hIvasDec->hasBeenPreparedRendering = false; @@ -1388,7 +1388,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 ) @@ -1605,7 +1605,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; -- GitLab From c45b166288031c50108c1b2074360336b7f3dcf2 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 10 Sep 2024 12:08:42 +0200 Subject: [PATCH 2/5] run be-2-evs-linux in an MR --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8879290e16..df17abe8fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1231,7 +1231,7 @@ be-2-evs-windows: be-2-evs-linux: extends: - .test-job-linux - - .rules-main-push + - .rules-merge-request tags: - be-2-evs-temp stage: test -- GitLab From 4e69215d0e20dca5ed2f0faafe634483d1bc8b1b Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 10 Sep 2024 12:49:58 +0200 Subject: [PATCH 3/5] simplify condition to run decoding in IVAS_DEC_FeedFrame_Serial --- lib_dec/lib_dec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 69f344d4f5..9bb50ed941 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -918,8 +918,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( #ifdef OBJ_EDITING_API /* decode TCs, do TSM and feed to renderer */ - if ( ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && hIvasDec->hasBeenFedFirstGoodFrame ) || - ( !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && ( !hIvasDec->isInitialized || hIvasDec->hasBeenFedFrame ) ) ) + if ( ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm && hIvasDec->hasBeenFedFirstGoodFrame ) || !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm ) { uint16_t l_ts, nTimeScalerOutSamples; uint8_t nTransportChannels, nOutChannels; -- GitLab From 8c9b8cc3c0fd33011baf95e62d2b18a54dcd9f4f Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 12 Sep 2024 09:36:47 +0200 Subject: [PATCH 4/5] revert changes to .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 078cca2b01..a57b67497a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1231,7 +1231,7 @@ be-2-evs-windows: be-2-evs-linux: extends: - .test-job-linux - - .rules-merge-request + - .rules-main-push tags: - be-2-evs-temp stage: test -- GitLab From aeb471131e37e025fbe08b303d19e0c612bca93e Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Thu, 12 Sep 2024 14:03:53 +0200 Subject: [PATCH 5/5] add comment to explain the condition to decode a frame --- lib_dec/lib_dec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 9bb50ed941..4d4a0c4f43 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -917,7 +917,10 @@ ivas_error IVAS_DEC_FeedFrame_Serial( hIvasDec->nSamplesAvailableNext = hIvasDec->nSamplesFrame; #ifdef OBJ_EDITING_API - /* decode TCs, do TSM and feed to renderer */ + /* 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; -- GitLab