Commit f3f6b625 authored by eichenseer's avatar eichenseer
Browse files

Missing changes from MR 1074 added to ivas_ism_param_dec.c

parent 262e8d5f
Loading
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -1672,6 +1672,7 @@ static void ivas_param_ism_dec_dequant_powrat(
    return;
}


static void ivas_ism_get_interpolator(
    const int16_t subframe_nbslots,
    float *interpolator )
@@ -1853,6 +1854,7 @@ static void ivas_param_ism_compute_mixing_matrix(
                }
                direct_power[w] = sqrtf( direct_power[w] );
            }

            /* Compute mixing matrix */
            computeMixingMatricesISM( nchan_transport, num_wave, nchan_out_woLFE, response_matrix, direct_power, cx_diag[bin_idx], cy_diag, proto_matrix, 1,
                                      PARAM_MC_REG_SX, PARAM_MC_REG_GHAT, mixing_matrix[bin_idx] );
@@ -2447,12 +2449,12 @@ void ivas_param_ism_dec(
            }
        }
    }

    ivas_ism_param_dec_tc_gain_ajust( st_ivas, output_frame, output_frame / 2, p_tc );

    for ( ch = 0; ch < nchan_transport; ch++ )
    {
        /*-----------------------------------------------------------------*
         * CLDFB Analysis
         *-----------------------------------------------------------------*/
        /* CLDFB Analysis */
        for ( slot_idx = 0; slot_idx < CLDFB_NO_COL_MAX; slot_idx++ )
        {
            cldfbAnalysis_ts( &( output_f[ch][hSpatParamRendCom->num_freq_bands * slot_idx] ), Cldfb_RealBuffer_in[ch][slot_idx], Cldfb_ImagBuffer_in[ch][slot_idx], hSpatParamRendCom->num_freq_bands, st_ivas->cldfbAnaDec[ch] );
@@ -2469,6 +2471,7 @@ void ivas_param_ism_dec(

    /* Compute mixing matrix */
    ivas_param_ism_compute_mixing_matrix( st_ivas->nchan_ism, hParamIsmDec, st_ivas->hISMDTX, direct_response, nchan_transport, nchan_out_woLFE, cx_diag, ref_power, mixing_matrix );
    
    /* subframe loop for synthesis*/
    for ( subframe_idx = 0; subframe_idx < hSpatParamRendCom->nb_subframes; subframe_idx++ )
    {
@@ -2565,7 +2568,6 @@ void ivas_ism_dec_digest_tc(
    Decoder_Struct *st_ivas /* i/o: IVAS decoder structure      */
)
{

    ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas );

    if ( st_ivas->renderer_type == RENDERER_TD_PANNING ||
@@ -2602,6 +2604,7 @@ void ivas_ism_dec_digest_tc(
        {
            ivas_jbm_dec_get_adapted_linear_interpolator( (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ), st_ivas->hTcBuffer->n_samples_available, st_ivas->hIsmRendererData->interpolator );
        }

        /* also get the gains here */
        num_objects = st_ivas->nchan_transport;
        for ( i = 0; i < num_objects; i++ )
@@ -2610,10 +2613,7 @@ void ivas_ism_dec_digest_tc(

            if ( st_ivas->intern_config == IVAS_AUDIO_CONFIG_STEREO )
            {
                ivas_ism_get_stereo_gains( st_ivas->hIsmMetaData[i]->azimuth,
                                           st_ivas->hIsmMetaData[i]->elevation,
                                           &st_ivas->hIsmRendererData->gains[i][0],
                                           &st_ivas->hIsmRendererData->gains[i][1] );
                ivas_ism_get_stereo_gains( st_ivas->hIsmMetaData[i]->azimuth, st_ivas->hIsmMetaData[i]->elevation, &st_ivas->hIsmRendererData->gains[i][0], &st_ivas->hIsmRendererData->gains[i][1] );
            }
            else
            {
@@ -2794,6 +2794,7 @@ void ivas_param_ism_dec_digest_tc(
                mvr2r( RealBuffer, &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands );
                mvr2r( ImagBuffer, &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands );
            }

            ivas_param_ism_collect_slot( hParamIsmDec, &hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], &hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], ch, ref_power, cx_diag );
        }
    }
@@ -2835,7 +2836,6 @@ void ivas_ism_param_dec_tc_gain_ajust(
    ene_sum = 0.0f;
    last_gain = st_ivas->hParamIsmDec->hParamIsm->last_dmx_gain;


    for ( i = 0; i < nSamples; i++ )
    {
        ene_tc += transport_channels_f[0][i] * transport_channels_f[0][i] + transport_channels_f[1][i] * transport_channels_f[1][i];          // L*L + R*R
@@ -2867,11 +2867,13 @@ void ivas_ism_param_dec_tc_gain_ajust(
            transport_channels_f[1][i] *= gain;
        }
    }

    st_ivas->hParamIsmDec->hParamIsm->last_dmx_gain = gain;

    return;
}


/*-------------------------------------------------------------------------*
 * ivas_ism_param_dec_render_sf()
 *
@@ -2895,7 +2897,6 @@ static void ivas_ism_param_dec_render_sf(
    float *Cldfb_ImagBuffer_in[PARAM_ISM_MAX_DMX];
    PARAM_ISM_DEC_HANDLE hParamIsmDec;
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom;

    int16_t slot_idx_start;
    int16_t idx_in;
    int16_t idx_lfe;
@@ -2928,8 +2929,7 @@ static void ivas_ism_param_dec_render_sf(

        /* Compute bandwise rendering to target LS using covariance rendering */
        ivas_param_ism_render_slot( hParamIsmDec, hSpatParamRendCom, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in,
                                    Cldfb_RealBuffer, Cldfb_ImagBuffer, hParamIsmDec->hParamIsmRendering->mixing_matrix_lin, index_slot, slot_idx,
                                    nchan_out_woLFE, nchan_transport );
                                    Cldfb_RealBuffer, Cldfb_ImagBuffer, hParamIsmDec->hParamIsmRendering->mixing_matrix_lin, index_slot, slot_idx, nchan_out_woLFE, nchan_transport );
    }

    /* CLDFB Synthesis */
@@ -2957,8 +2957,8 @@ static void ivas_ism_param_dec_render_sf(
                RealBuffer[i] = Cldfb_RealBuffer[idx_in][i];
                ImagBuffer[i] = Cldfb_ImagBuffer[idx_in][i];
            }
            cldfbSynthesis( RealBuffer, ImagBuffer, output_f[ch],
                            hSpatParamRendCom->num_freq_bands * hSpatParamRendCom->subframe_nbslots[subframe_idx], st_ivas->cldfbSynDec[ch] );

            cldfbSynthesis( RealBuffer, ImagBuffer, output_f[ch], hSpatParamRendCom->num_freq_bands * hSpatParamRendCom->subframe_nbslots[subframe_idx], st_ivas->cldfbSynDec[ch] );
            idx_in++;
        }
    }