diff --git a/lib_com/options.h b/lib_com/options.h index 4e48199891b0bdfb8dfb7ee09c7b46000897c3b7..8a491e2499bd71b273c0b4360859c8629157da06 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -227,6 +227,7 @@ #define FIX_170_DTX_MASA /* Nokia: Fix issue 170, relaxing the use of DTX in MASA format */ #define FIX_510 /* FhG: fix issue 510, misleading error message for invalid input format */ #define FIX_509 /* FhG: fix issue 509, too low number of bitsream indices in SBA */ +#define FIX_519_JBM_ACCESS_NULL_TC_BUFFER /* FhG: fix issue 519, accessing a yet uninitialized TC Buffer in frame 0*/ #define FIX_TODO_NON_DIEGETIC_PAN_NOT_IMPLELENTED_IN_RENDERER /* ..\apps\renderer.c(240): .... (todo: implementation)",*/ #define REMOVE_OBS_CODE /* FhG: Remove unnecessary assignement after LFE cleanup (Issue #451)*/ diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 69b6e127fdd60ab0f2c471563252528e97f2b30a..fd33c411010fd697521351795c506ff4eb4415db 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1084,8 +1084,15 @@ ivas_error IVAS_DEC_GetBufferedNumberOfSamples( { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - - *nSamplesBuffered = hIvasDec->st_ivas->hTcBuffer->n_samples_buffered - hIvasDec->st_ivas->hTcBuffer->n_samples_rendered; +#ifdef FIX_519_JBM_ACCESS_NULL_TC_BUFFER + /* check if the TC buffer already exists, otherweise nothing is buffered anyway */ + if ( hIvasDec->st_ivas->hTcBuffer != NULL ) + { +#endif + *nSamplesBuffered = hIvasDec->st_ivas->hTcBuffer->n_samples_buffered - hIvasDec->st_ivas->hTcBuffer->n_samples_rendered; +#ifdef FIX_519_JBM_ACCESS_NULL_TC_BUFFER + } +#endif return error; } @@ -1945,7 +1952,11 @@ ivas_error IVAS_DEC_VoIP_GetSamples( { int16_t nSamplesBuffered; nSamplesBuffered = 0; +#ifdef FIX_519_JBM_ACCESS_NULL_TC_BUFFER + if ( hIvasDec->hasDecodedFirstGoodFrame ) +#else if ( hIvasDec->hasBeenFedFirstGoodFrame ) +#endif { IVAS_DEC_GetBufferedNumberOfSamples( hIvasDec, &nSamplesBuffered ); }