Commit 15281eaf authored by PLAINSI's avatar PLAINSI
Browse files

Fix binaural crash

parent a7aa869d
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -397,7 +397,6 @@ ivas_error ivas_jbm_dec_tc(
                    ivas_ls_setup_conversion( st_ivas, audioCfg2channels( AUDIO_CONFIG_5_1_2 ), output_frame, p_output, p_output );
                }
            }

        }
#endif
        else if ( st_ivas->mc_mode == MC_MODE_PARAMMC )
+34 −24
Original line number Diff line number Diff line
@@ -346,7 +346,7 @@ void ivas_mc_paramupmix_dec_render(
        output_f_local[ch] = output_f[ch];
    }

    slot_size = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS );
    slot_size = st_ivas->hTcBuffer->n_samples_granularity;

    /* 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 );
@@ -387,12 +387,19 @@ void ivas_mc_paramupmix_dec_render(

    *nSamplesAvailable = ( st_ivas->hTcBuffer->num_slots - st_ivas->hTcBuffer->slots_rendered ) * slot_size;

    /* 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;
    }


    pop_wmops();
}
#endif



/*-------------------------------------------------------------------------
 * ivas_mc_paramupmix_dec_open()
 *
@@ -478,10 +485,13 @@ ivas_error ivas_mc_paramupmix_dec_open(
        {
            nchan_to_allocate = 2 * BINAURAL_CHANNELS;
        }
        if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV && st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM )
        {
            if ( ( error = ivas_jbm_dec_tc_buffer_open( st_ivas, buffer_mode, nchan_tc, nchan_to_allocate, nchan_to_allocate, NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ) ) ) != IVAS_ERR_OK )
            {
                return error;
            }
        }
        if ( ( hMCParamUpmix->param_interpolator = (float *) malloc( MAX_JBM_CLDFB_TIMESLOTS * sizeof( float ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for interpolator\n" ) );