Commit 5a699aff authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Fix lower sampling rates

parent b991f4de
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -84,13 +84,7 @@ static void ivas_dirac_dec_binaural_determine_processing_matrices( Decoder_Struc

static void ivas_dirac_dec_binaural_process_output( Decoder_Struct *st_ivas, float output_f[][L_FRAME48k], float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const int16_t max_band_decorr, const uint8_t numInputChannels, const uint8_t firstSlot, const uint8_t slotEnd );

#ifdef NOKIA_ADAPTIVE_BINAURAL_PROTOS
#ifdef NOKIA_ADAPTIVE_BINAURAL_PROTOS_OPT
static void adaptTransportSignalsHeadtracked( HEAD_TRACK_DATA_HANDLE hHeadTrackData, float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const uint8_t firstSlot, const uint8_t slotEnd, float Rmat[3][3] );
#else
static void adaptTransportSignalsHeadtracked( HEAD_TRACK_DATA_HANDLE hHeadTrackData, float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const uint8_t firstSlot, const uint8_t slotEnd, const uint8_t nBins, float Rmat[3][3] );
#endif
#endif

static void ivas_dirac_dec_binaural_check_and_switch_transports_headtracked( HEAD_TRACK_DATA_HANDLE hHeadTrackData, float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], const uint8_t firstSlot, const uint8_t slotEnd, const uint8_t nBins, float Rmat[3][3] );

@@ -586,13 +580,7 @@ static void ivas_dirac_dec_binaural_internal(

        if ( nchan_transport == 2 )
        {
#ifdef NOKIA_ADAPTIVE_BINAURAL_PROTOS
#ifdef NOKIA_ADAPTIVE_BINAURAL_PROTOS_OPT
            adaptTransportSignalsHeadtracked( st_ivas->hHeadTrackData, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, firstSlot, slotEnd, Rmat );
#else
            adaptTransportSignalsHeadtracked( st_ivas->hHeadTrackData, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, firstSlot, slotEnd, nBins, Rmat );
#endif
#endif

            ivas_dirac_dec_binaural_check_and_switch_transports_headtracked( st_ivas->hHeadTrackData, Cldfb_ImagBuffer_in, Cldfb_RealBuffer_in, firstSlot, slotEnd, nBins, Rmat );
        }
@@ -1380,6 +1368,7 @@ static void adaptTransportSignalsHeadtracked(
#ifdef NOKIA_ADAPTIVE_BINAURAL_PROTOS_OPT
    float ILD, mono_factor_ILD, mono_factor_rotation, mono_factor, y_val, ene_proc, ene_target;
    uint8_t n_slots_per_sf, sf_idx, n_sf;
    int16_t max_band;
#else
    float re[2], im[2], ILD, mono_factor_ILD, mono_factor_rotation, mono_factor, y_val;
    float proc_re[2], proc_im[2], sum_re, sum_im, ene_proc, ene_target, mf;
@@ -1397,6 +1386,12 @@ static void adaptTransportSignalsHeadtracked(
    n_slots_per_sf = CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES;
    n_sf = ( slotEnd - firstSlot ) / n_slots_per_sf;

    max_band = 0;
    while ( max_band < MASA_FREQUENCY_BANDS && MASA_band_grouping_24[max_band] < nBins )
    {
        max_band++;
    }

    for ( sf_idx = 0; sf_idx < n_sf; sf_idx++ )
    {
        float eqVal;
@@ -1406,12 +1401,11 @@ static void adaptTransportSignalsHeadtracked(
        start_slot = firstSlot + sf_idx * n_slots_per_sf;
        stop_slot = start_slot + n_slots_per_sf;

        for ( band_idx = 0; band_idx < MASA_FREQUENCY_BANDS; band_idx++ )
        for ( band_idx = 0; band_idx < max_band; band_idx++ )
        {
            float ch_nrg[2]; /* storage for input signal channel energies */
            bin_lo = MASA_band_grouping_24[band_idx];
            bin_hi = MASA_band_grouping_24[band_idx + 1];

            bin_hi = min( MASA_band_grouping_24[band_idx + 1], (int16_t) nBins );
            for ( ch = 0; ch < 2; ch++ )
            {
                ch_nrg[ch] = 0.0f;