Commit acaa4cc5 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

set mono flag based on SPAR data in previous frame

parent 4d066b79
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -74,6 +74,10 @@ ivas_error ivas_qmetadata_open(
    ( *hQMetaData )->surcoh_band_data = NULL;
    ( *hQMetaData )->bandMap = NULL;

#ifdef FIX_527_MONO_HEURISTICS
    ( *hQMetaData )->dirac_mono_flag = 0;
#endif

    return IVAS_ERR_OK;
}

+1 −1
Original line number Diff line number Diff line
@@ -1789,7 +1789,7 @@ void ivas_dirac_dec_read_BS(
        st->next_bit_pos = next_bit_pos_orig;
    }

#if defined( FIX_527_SBA_MONO_INPUT ) && !defined( FIX_527_MONO_HEURISTICS )
#if defined( FIX_527_SBA_MONO_INPUT ) 
    if ( hQMetaData->dirac_mono_flag )
    {
        for ( b = 0; b < hQMetaData->q_direction[0].cfg.nbands; b++ )
+9 −14
Original line number Diff line number Diff line
@@ -680,9 +680,12 @@ void ivas_spar_md_dec_process(

#ifdef FIX_527_MONO_HEURISTICS
    {
		int16_t ndm, ndec,i;
        int16_t lmf;
        int16_t ndm;
		int16_t ndec;
	    int16_t i;

        st_ivas->hQMetaData->dirac_mono_flag = 1;
        lmf = 1;
        for ( b = 0; b < SPAR_DIRAC_SPLIT_START_BAND; b++ )
        {
            ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b * bw];
@@ -692,7 +695,7 @@ void ivas_spar_md_dec_process(
            {
                if ( hMdDec->spar_md.band_coeffs[b].pred_quant_re[i] != 0.0f )
                {
                    st_ivas->hQMetaData->dirac_mono_flag = 0;
                    lmf = 0;
                }
            }

@@ -702,7 +705,7 @@ void ivas_spar_md_dec_process(
                {
                    if ( hMdDec->spar_md.band_coeffs[0].C_quant_re[i][j] != 0.f )
                    {
                        st_ivas->hQMetaData->dirac_mono_flag = 0;
                        lmf = 0;
                    }
                }
            }
@@ -711,19 +714,11 @@ void ivas_spar_md_dec_process(
            {
                if ( hMdDec->spar_md.band_coeffs[0].P_re[i] != 0.f )
                {
                    st_ivas->hQMetaData->dirac_mono_flag = 0;
                }
            }
                    lmf = 0;
                }
            }

    if ( st_ivas->hQMetaData->dirac_mono_flag )
    {
        for ( b = 0; b < st_ivas->hQMetaData->q_direction[0].cfg.nbands; b++ )
        {
            set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES );
            set_zero( st_ivas->hQMetaData->q_direction[0].band_data[b].energy_ratio, MAX_PARAM_SPATIAL_SUBFRAMES );
        }
        st_ivas->hQMetaData->dirac_mono_flag = lmf;
    }
#endif