Commit f23ebeb1 authored by PLAINSI's avatar PLAINSI
Browse files

Fix issue with non-100 speeds

parent dee7136e
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -5174,6 +5174,9 @@ void ivas_binaural_cldfb(
void ivas_binaural_cldfb_sf(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                                  */
    const int16_t n_samples_to_render,                          /* i  : output frame length per channel                         */
#ifdef JBM_PARAMUPMIX
    const int16_t slot_size,                                    /* i  : JBM slot size                                           */
#endif
    float *output_f[]                                           /* i/o: synthesized core-coder transport channels/DirAC output  */

);
+9 −0
Original line number Diff line number Diff line
@@ -1027,6 +1027,9 @@ void ivas_binaural_cldfb(
void ivas_binaural_cldfb_sf(
    Decoder_Struct *st_ivas,           /* i/o: IVAS decoder structure                                  */
    const int16_t n_samples_to_render, /* i  : output frame length per channel                         */
#ifdef JBM_PARAMUPMIX
    const int16_t slot_size,           /* i  : JBM slot size                                           */
#endif
    float *output_f[]                  /* i/o: synthesized core-coder transport channels/DirAC output  */
)
{
@@ -1035,12 +1038,18 @@ void ivas_binaural_cldfb_sf(
    float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    int16_t slot_idx, subframeIdx, index_slot, idx_in, idx_lfe, maxBand, ch;
#ifdef JBM_PARAMUPMIX
    int16_t slots_to_render, first_sf, last_sf;
#else
    int16_t slot_size, slots_to_render, first_sf, last_sf;
#endif
    int16_t slot_index_start, slot_index_start_cldfb;

    /* Implement a 5 msec loops */
    maxBand = (int16_t) ( ( CLDFB_NO_CHANNELS_MAX * st_ivas->hDecoderConfig->output_Fs ) / 48000 );
#ifndef JBM_PARAMUPMIX
    slot_size = st_ivas->hTcBuffer->nb_subframes;
#endif

    /* 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, n_samples_to_render / slot_size );
+4 −0
Original line number Diff line number Diff line
@@ -797,7 +797,11 @@ ivas_error ivas_jbm_dec_render(
#ifdef DEBUGGING
            else if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM )
            {
#ifdef JBM_PARAMUPMIX
                ivas_binaural_cldfb_sf( st_ivas, *nSamplesRendered, st_ivas->hTcBuffer->nb_subframes, p_output );
#else
                ivas_binaural_cldfb_sf( st_ivas, *nSamplesRendered, p_output );
#endif
            }
#endif
        }
+1 −1
Original line number Diff line number Diff line
@@ -387,7 +387,7 @@ void ivas_mc_paramupmix_dec_render(
    /* Implement binaural rendering */
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM )
    {
        ivas_binaural_cldfb_sf( st_ivas, *nSamplesRendered, output_f_local );
        ivas_binaural_cldfb_sf( st_ivas, *nSamplesRendered, slot_size, output_f_local );
    }
    else
    {