Commit d411e5e7 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

JBM crash fixes

parent dcb57b19
Loading
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -2790,8 +2790,18 @@ ivas_error ivas_jbm_dec_render(
    else if ( st_ivas->hTcBuffer->tc_buffer_mode == TC_BUFFER_MODE_BUFFER )
    {
#ifdef IVAS_FLOAT_FIXED
        Word16 slot_size, slots_to_render, tmp, e, slots_rendered, nSamplesRendered_tmp;

        slot_size = st_ivas->hTcBuffer->n_samples_granularity;

        /* loop for synthesis, assume we always have to render in multiples of 5ms subframes with spills */
        tmp = BASOP_Util_Divide1616_Scale( nSamplesAsked, slot_size, &e );
        tmp = shr( tmp, sub( 15, e ) );
        slots_to_render = s_min( sub( st_ivas->hTcBuffer->num_slots, st_ivas->hTcBuffer->slots_rendered ), tmp );
        slots_rendered = add( st_ivas->hTcBuffer->slots_rendered, slots_to_render );
        nSamplesRendered_tmp = (UWord16) L_mult0( slots_to_render, slot_size );
        FOR(Word16 ind = 0; ind < st_ivas->hTcBuffer->nchan_transport_jbm; ind++) {
            floatToFixed_arrL(st_ivas->hTcBuffer->tc[ind] + st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hTcBuffer->tc_fx[ind] + st_ivas->hTcBuffer->n_samples_rendered, Q11, s_max(*nSamplesRendered, nSamplesAskedLocal));
            floatToFixed_arrL(st_ivas->hTcBuffer->tc[ind] + st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hTcBuffer->tc_fx[ind] + st_ivas->hTcBuffer->n_samples_rendered, Q11, nSamplesRendered_tmp);
            p_output_fx[ind] = malloc(sizeof(Word32) * 960);
            floatToFixed_arrL(p_output[ind], p_output_fx[ind], Q11, s_max(*nSamplesRendered, nSamplesAskedLocal));
        }
+9 −0
Original line number Diff line number Diff line
@@ -862,12 +862,21 @@ static void JB4_adaptActivePlayout(
        {
            IF ( convertToLateLoss )
            {
#ifdef EVS_FLOAT
                JB4_dropFromBuffer( h );
#else
                JB4_dropFromBuffer( h );
                h->nLostOrStretched = L_add( h->nLostOrStretched, 1 );
#endif // EVS_FLOAT
            }
            ELSE IF ( dropEarly )
            {
#ifdef EVS_FLOAT
                JB4_dropFromBuffer( h );
                ++h->nLostOrStretched;
#else
                JB4_dropFromBuffer( h );
#endif
            }
            ELSE
            {