Commit fd85c524 authored by Vidhya V P's avatar Vidhya V P
Browse files

Fix for issue #723

parent 93521388
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@
#define CR_FIX_586_BPF_DFT_MEM                          /* FhG: issue 586: set input memory of DFT analysis of BPF signal to zero for HQ core to fix issue with PLC and bitrate switching */
#define CR_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods */
#define CR_FIX_698_SBA_MSAN                             /* Dlb: issue 698: Uninitialized memory read in SBA init */

#define CR_FIX_723_SBA_BR_SWITCH_MSAN                   /* Dlb: issue 723: Uninitialised value used after BR switching*/
/* ##################### End NON-BE CR switches ########################### */

/* ################## End DEVELOPMENT switches ######################### */
+12 −0
Original line number Diff line number Diff line
@@ -1098,6 +1098,9 @@ void ivas_dirac_dec_read_BS(
                hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0];
                hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0];
                hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0];
#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
                hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio_index[0];
#endif
            }
            for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
            {
@@ -1106,6 +1109,9 @@ void ivas_dirac_dec_read_BS(
                    hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0];
                    hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0];
                    hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0];
#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
                    hQMetaData->q_direction[0].band_data[j].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio_index[0];
#endif
                }
            }

@@ -1164,6 +1170,9 @@ void ivas_dirac_dec_read_BS(
            hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0];
            hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0];
            hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0];
#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
            hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio_index[0];
#endif
        }
        for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
        {
@@ -1172,6 +1181,9 @@ void ivas_dirac_dec_read_BS(
                hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0];
                hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0];
                hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0];
#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
                hQMetaData->q_direction[0].band_data[j].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio_index[0];
#endif
            }
        }

+9 −1
Original line number Diff line number Diff line
@@ -1498,7 +1498,9 @@ static void ivas_spar_dec_parse_md_bs(
    float quant[IVAS_SPAR_MAX_C_COEFF];
    int16_t do_repeat[IVAS_MAX_NUM_BANDS];
    int16_t bw_final, bw_fact;

#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
    int32_t active_brate;
#endif 
    *dtx_vad = 1;
    *bands_bw = 1;
    qsi = 0;
@@ -1569,8 +1571,13 @@ static void ivas_spar_dec_parse_md_bs(
        }

        ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band );
#ifdef CR_FIX_723_SBA_BR_SWITCH_MSAN
        active_brate = ( ivas_total_brate > IVAS_SID_5k2 ) ? ivas_total_brate : last_active_brate;

        if ( active_brate >= IVAS_24k4 )
#else
        if ( last_active_brate >= IVAS_24k4 )
#endif
        {
            bw_final = 1;
        }
@@ -1578,6 +1585,7 @@ static void ivas_spar_dec_parse_md_bs(
        {
            bw_final = 2;
        }

        bw_fact = *bands_bw / bw_final;

        for ( i = *nB - 1; i >= 0; i-- )