Commit 6d7d0eff authored by PLAINSI's avatar PLAINSI
Browse files

Fix binaural crash for vs!=100

parent 67d82c2a
Loading
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -318,14 +318,7 @@ void ivas_mc_paramupmix_dec_digest_tc(
    /* adapt subframes */
    ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas );

    if ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM )
    {
    ivas_jbm_dec_get_adapted_linear_interpolator( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbSlots, hMCParamUpmix->param_interpolator );
    }
    else
    {
        ivas_jbm_dec_get_adapted_linear_interpolator( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbSlots, hMCParamUpmix->param_interpolator );
    }

    pop_wmops();
}
@@ -344,6 +337,8 @@ void ivas_mc_paramupmix_dec_render(
    uint16_t slot_size, ch;
    float *output_f_local[MAX_OUTPUT_CHANNELS];
    MC_PARAMUPMIX_DEC_HANDLE hMCParamUpmix;
    int16_t saved_subframes_rendered;
    int16_t saved_slots_rendered;
    hMCParamUpmix = st_ivas->hMCParamUpmix;
    assert( hMCParamUpmix );

@@ -359,6 +354,8 @@ void ivas_mc_paramupmix_dec_render(
    /* loop for synthesis, assume we always have to render in multiples of 5ms subframes with spills */
    slots_to_render = min( st_ivas->hTcBuffer->num_slots - st_ivas->hTcBuffer->slots_rendered, nSamplesAsked / slot_size );
    *nSamplesRendered = slots_to_render * slot_size;
    saved_subframes_rendered = st_ivas->hTcBuffer->subframes_rendered;
    saved_slots_rendered = st_ivas->hTcBuffer->slots_rendered;
    first_sf = st_ivas->hTcBuffer->subframes_rendered;
    last_sf = first_sf;

@@ -404,8 +401,8 @@ void ivas_mc_paramupmix_dec_render(
    /* Binaural renderer will do the slot rendering */
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM )
    {
        st_ivas->hTcBuffer->slots_rendered = 0;
        st_ivas->hTcBuffer->subframes_rendered = 0;
        st_ivas->hTcBuffer->slots_rendered = saved_slots_rendered;
        st_ivas->hTcBuffer->subframes_rendered = saved_subframes_rendered;
    }

    pop_wmops();
+5 −1
Original line number Diff line number Diff line
@@ -1514,8 +1514,9 @@ ivas_error ivas_rend_crendProcessSubframe(
    slots_to_render = min( hTcBuffer->num_slots - hTcBuffer->slots_rendered, n_samples_to_render / slot_size );
    first_sf = hTcBuffer->subframes_rendered;
    last_sf = first_sf;
#ifndef JBM_PARAMUPMIX
    hTcBuffer->slots_rendered += slots_to_render;

#endif
    while ( slots_to_render > 0 )
    {
        slots_to_render -= hTcBuffer->subframe_nbslots[last_sf];
@@ -1569,6 +1570,9 @@ ivas_error ivas_rend_crendProcessSubframe(
            {
                p_pcm_tmp[ch] += subframe_len;
            }
#ifdef JBM_PARAMUPMIX
            hTcBuffer->slots_rendered += hTcBuffer->subframe_nbslots[subframe_idx];
#endif
        }
        else
        {