Commit 40da2feb authored by TYAGIRIS's avatar TYAGIRIS
Browse files

fix for issue 862

parent 2ad7a310
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@
#define NONBE_FIX_856_TCX_LTP_SYNTH_FILTER                    /* FhG: issue 856: correct filtering length for tcx-ltp synth filtering*/
#define NONBE_UNIFIED_DECODING_PATHS                          /* FhG: unify decoding paths   */
#define NONBE_FIX_874_OMASA_BRSW_2TD                          /* Nokia: issue 874: Fixes the crashes with the long test vectors that prompted switching to TD*/

#define NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC                /* DLB: issue 862 : UBSAN: out-of-bound error in SPAR for OSBA bitrate switching with PLC*/
/* ##################### End NON-BE switches ########################### */

/* ################## End DEVELOPMENT switches ######################### */
+13 −0
Original line number Diff line number Diff line
@@ -64,6 +64,10 @@ ivas_error ivas_corecoder_dec_reconfig(
    MC_MODE last_mc_mode;
    DECODER_CONFIG_HANDLE hDecoderConfig;
    ivas_error error;
#ifdef NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC
    int16_t prev_bfi;
    Decoder_State *st0;
#endif

    /*-----------------------------------------------------------------*
     * Initialization
@@ -141,6 +145,10 @@ ivas_error ivas_corecoder_dec_reconfig(
    }
    else
    {
#ifdef NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC
        st0 = ( nSCE_old > 0 ) ? st_ivas->hSCE[0]->hCoreCoder[0] : st_ivas->hCPE[0]->hCoreCoder[0];
        prev_bfi = st0->prev_bfi;
#endif
        nSCE_existing = min( nSCE_old, st_ivas->nSCE );
        nCPE_existing = min( nCPE_old, st_ivas->nCPE );

@@ -293,6 +301,11 @@ ivas_error ivas_corecoder_dec_reconfig(
                st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR;
            }
        }

#ifdef NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC
        st0 = ( st_ivas->nSCE > 0 ) ? st_ivas->hSCE[0]->hCoreCoder[0] : st_ivas->hCPE[0]->hCoreCoder[0];
        st0->prev_bfi = prev_bfi;
#endif
    }

    /* create dummy CPE element for DFT stereo-like upmix */
+8 −2
Original line number Diff line number Diff line
@@ -1645,8 +1645,14 @@ static void ivas_spar_dec_parse_md_bs(
            do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 );
            do_repeat[i] = 0;
        }

#ifdef NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC
        if ( st0->prev_bfi == 0 )
        {
#endif
            ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB );
#ifdef NONBE_FIX_862_UBSAN_SPAR_DEC_BR_SW_PLC
        }
#endif
    }
#ifdef SPAR_HOA_DBG
    fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat );