Commit 3e2bc87b authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

fix creash with bitrate switching

parent cb8ce2f7
Loading
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -467,7 +467,7 @@ ivas_error ivas_dec_setup(
        {

#ifdef NONBE_FIX_ISM_XOVER_BR
            int16_t osba_mode_bit = st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 1];
            st_ivas->osba_mode_bit = st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 1];
#endif

            /* the number of objects is written at the end of the bitstream, in the SBA metadata */
@@ -478,14 +478,7 @@ ivas_error ivas_dec_setup(
#endif

#ifdef NONBE_FIX_ISM_XOVER_BR
            if ( osba_mode_bit )
            {
                st_ivas->ism_mode = ISM_SBA_MODE_DISC;
            }
#endif

#ifdef NONBE_FIX_ISM_XOVER_BR
            if ( ivas_total_brate < IVAS_24k4 || osba_mode_bit )
            if ( ivas_total_brate < IVAS_24k4 || st_ivas->osba_mode_bit )
#else
            if ( ivas_total_brate < IVAS_24k4 || ivas_total_brate >= IVAS_256k )
#endif
@@ -501,7 +494,7 @@ ivas_error ivas_dec_setup(

            /* read Ambisonic (SBA) order */
#ifdef NONBE_FIX_ISM_XOVER_BR
            if ( !osba_mode_bit )
            if ( !st_ivas->osba_mode_bit )
#else
            if ( ivas_total_brate < IVAS_256k )
#endif
@@ -543,7 +536,7 @@ ivas_error ivas_dec_setup(
                }
            }
#ifdef NONBE_FIX_ISM_XOVER_BR
            if ( osba_mode_bit )
            if ( st_ivas->osba_mode_bit )
#else
            if ( ivas_total_brate >= IVAS_256k )
#endif
+1 −5
Original line number Diff line number Diff line
@@ -141,13 +141,10 @@ ivas_error ivas_sba_dec_reconfigure(
    ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old );
    nchan_hp20_old = getNumChanSynthesis( st_ivas );

#ifdef NONBE_FIX_ISM_XOVER_BR
    if ( !( st_ivas->ivas_format == SBA_ISM_FORMAT ) )
#else
    if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
#ifdef NONBE_FIX_ISM_XOVER_BR
        if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) )
        if ( st_ivas->osba_mode_bit )
#else
        if ( ivas_total_brate >= IVAS_256k )
#endif
@@ -160,7 +157,6 @@ ivas_error ivas_sba_dec_reconfigure(
        }
    }
    else
#endif
    {
        st_ivas->ism_mode = ISM_MODE_NONE;
    }
+3 −0
Original line number Diff line number Diff line
@@ -1102,6 +1102,9 @@ typedef struct Decoder_Struct
    int16_t sba_planar;                                     /* Ambisonic (SBA) planar flag */
    int16_t sba_analysis_order;                             /* Ambisonic (SBA) order used for analysis and coding */
    int16_t sba_dirac_stereo_flag;                          /* flag indicating stereo output for SBA DirAC modes with 1 TC */
#ifdef NONBE_FIX_ISM_XOVER_BR
	int16_t osba_mode_bit;
#endif

    /* rendering modules */
    RENDERER_TYPE renderer_type;                               /* renderer type */