Commit 0e8ce29c authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch '568-crash-ism-bitrate-switching' into 'main'

Resolve "Crash in ISM4 bitrate switching with BINAURAL_ROOM_REVERB out"

See merge request !772
parents 1b0cf878 6e39402c
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -148,11 +148,11 @@
#define FIX_558_PLC_DISCONT                             /* FhG: issue 558: fix discontinuities in DFT Stereo when switching from TCX concealment to ACELP */
#define FIX_564                                         /* Nokia: Issue 564: Fix gains in JBM path for SBA with parametric binaural renderer */
#define FIX_566_2DIR_MASA_384K                          /* Nokia: Issued 566:  Bugfix in 384k MASA metadata encoding of second direction */
#define FIX_568_ISM_BITRATE_SWITCHING                   /* Philips: Issue 568: Bugfix for renderer re-initialization by ISM and bitrate switching */
#define FIX_565_SBA_BURST_IN_FEC                        /* VA: Issue 565: Fix noise burst during FEC, due to wrong total_brate initialization */
#define FIX_562_ISM2_64KBPS                             /* VA: issue 562: fix ISM2 at 64kbps issue */
#define FIX_559_EXTL_IGF_MISMATCH                       /* VA: issue 559: fix mismatch between st->extl and st->igf observed as crash in PlanarSBA bitrate switching */


/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */

+16 −1
Original line number Diff line number Diff line
@@ -168,7 +168,11 @@ static ivas_error ivas_ism_bitrate_switching(
        /* Deallocate the ParamISM struct */
        ivas_param_ism_dec_close( &( st_ivas->hDirAC ), st_ivas->hDecoderConfig->output_config );

#ifdef FIX_568_ISM_BITRATE_SWITCHING
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
#else
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL )
#endif
        {
            /* close the parametric binaural renderer */
            ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
@@ -198,7 +202,11 @@ static ivas_error ivas_ism_bitrate_switching(
            }
        }

#ifdef FIX_568_ISM_BITRATE_SWITCHING
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_IR )
#else
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_IR || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
#endif
        {
            /* close the parametric binaural renderer */
            ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
@@ -221,8 +229,11 @@ static ivas_error ivas_ism_bitrate_switching(
        {
            return error;
        }

#ifdef FIX_568_ISM_BITRATE_SWITCHING
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
#else
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL )
#endif
        {
            /* open the parametric binaural renderer */
            if ( ( error = ivas_dirac_dec_binaural_copy_hrtfs( &st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK )
@@ -260,7 +271,11 @@ static ivas_error ivas_ism_bitrate_switching(
            }
        }

#ifdef FIX_568_ISM_BITRATE_SWITCHING
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_IR )
#else
        if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_IR || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
#endif
        {
            /* open the parametric binaural renderer */
            if ( ( error = ivas_dirac_dec_binaural_copy_hrtfs( &st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK )