Commit b4c76218 authored by bayers's avatar bayers
Browse files

fix synchronization of subframe information, fix compile problem when API_5MS...

fix synchronization of subframe information, fix compile problem when API_5MS is deactivated, memory optimization
parent 43982584
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -421,8 +421,12 @@ int main(
    {
#ifdef API_5MS
        if ( ( error = IVAS_DEC_EnableVoIP( hIvasDec, 60, arg.inputFormat ) ) != IVAS_ERR_OK )
#else
#ifndef VARIABLE_SPEED_DECODING
        if ( ( error = IVAS_DEC_EnableVoIP( hIvasDec, 60, arg.inputFormat ) ) != IVAS_ERR_OK )
#else
        if ( ( error = IVAS_DEC_EnableVoIP( hIvasDec, IVAS_DEC_VOIP_MODE_VOIP, 100, 60, arg.inputFormat ) ) != IVAS_ERR_OK )
#endif
#endif
        {
            fprintf( stderr, "\nCould not enable VOIP: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
+4 −0
Original line number Diff line number Diff line
@@ -2141,6 +2141,10 @@ void ivas_dirac_dec_set_md_map(
    hDirAC->subframes_rendered = 0;

    ivas_jbm_dec_get_adapted_subframes( nCldfbTs, hDirAC->subframe_nbslots, &hDirAC->nb_subframes );
#ifdef API_5MS
    st_ivas->hTcBuffer->nb_subframes = hDirAC->nb_subframes;
    mvs2s( hDirAC->subframe_nbslots, st_ivas->hTcBuffer->subframe_nbslots, hDirAC->nb_subframes );
#endif

    /* set mapping according to dirac_read_idx */

+14 −5
Original line number Diff line number Diff line
@@ -1263,14 +1263,23 @@ void ivas_param_ism_dec_digest_tc(
         *-----------------------------------------------------------------*/
        for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ )
        {
#ifdef API_5MS
            if ( st_ivas->hDecoderConfig->tsm_active )
            {
#endif

                float RealBuffer[CLDFB_NO_CHANNELS_MAX];
                float ImagBuffer[CLDFB_NO_CHANNELS_MAX];

                cldfbAnalysis_ts( &( transport_channels_f[ch][hDirAC->num_freq_bands * slot_idx] ), RealBuffer, ImagBuffer, hDirAC->num_freq_bands, st_ivas->cldfbAnaDec[ch] );
                mvr2r( RealBuffer, &hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hDirAC->num_freq_bands * nchan_transport + ch * hDirAC->num_freq_bands], hDirAC->num_freq_bands );
                mvr2r( ImagBuffer, &hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hDirAC->num_freq_bands * nchan_transport + ch * hDirAC->num_freq_bands], hDirAC->num_freq_bands );

#ifdef API_5MS
            }
            ivas_param_ism_collect_slot( hDirAC, &hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hDirAC->num_freq_bands * nchan_transport + ch * hDirAC->num_freq_bands], &hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hDirAC->num_freq_bands * nchan_transport + ch * hDirAC->num_freq_bands], ch, ref_power, cx_diag );
#else
            ivas_param_ism_collect_slot( hDirAC, RealBuffer, ImagBuffer, ch, ref_power, cx_diag );
#endif
        }
    }

+506 −206

File changed.

Preview size limit exceeded, changes collapsed.

+19 −9
Original line number Diff line number Diff line
@@ -1456,6 +1456,10 @@ void ivas_param_mc_dec_digest_tc(
    hParamMC->slots_rendered = 0;
    hParamMC->subframes_rendered = 0;
    ivas_jbm_dec_get_adapted_subframes( nCldfbSlots, hParamMC->subframe_nbslots, &hParamMC->nb_subframes );
#ifdef API_5MS
    st_ivas->hTcBuffer->nb_subframes = hParamMC->nb_subframes;
    mvs2s( hParamMC->subframe_nbslots, st_ivas->hTcBuffer->subframe_nbslots, hParamMC->nb_subframes );
#endif

    ivas_param_mc_dec_compute_interpolator( hParamMC->hMetadataPMC->bAttackPresent, hParamMC->hMetadataPMC->attackIndex, nCldfbSlots, hParamMC->h_output_synthesis_params.interpolator );

@@ -1468,6 +1472,10 @@ void ivas_param_mc_dec_digest_tc(
    /* slot loop for gathering the input data */
    for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ )
    {
#ifdef API_5MS
        if ( st_ivas->hDecoderConfig->tsm_active )
        {
#endif
            float RealBuffer[CLDFB_NO_CHANNELS_MAX];
            float ImagBuffer[CLDFB_NO_CHANNELS_MAX];

@@ -1479,7 +1487,9 @@ void ivas_param_mc_dec_digest_tc(
                mvr2r( RealBuffer, &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands );
                mvr2r( ImagBuffer, &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport + ch * hParamMC->num_freq_bands], hParamMC->num_freq_bands );
            }

#ifdef API_5MS
        }
#endif
        if ( slot_idx >= 2 * hParamMC->hMetadataPMC->attackIndex )
        {
            ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( &hParamMC->Cldfb_RealBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport], &hParamMC->Cldfb_ImagBuffer_tc[slot_idx * hParamMC->num_freq_bands * nchan_transport], cx, cx_imag, hParamMC, nchan_transport );
Loading