Commit 7e5ecc04 authored by vaclav's avatar vaclav
Browse files

add ISM channels samples to MASA ones + reduce memory in ivas_omasa_dirac_td_binaural_jbm()

parent 763c659f
Loading
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -1679,7 +1679,14 @@ ivas_error ivas_jbm_dec_flush_renderer(
        {
            if ( ism_mode_old == ISM_MASA_MODE_DISC )
            {
#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
                float *tc_local[MAX_NUM_OBJECTS];
                float data_separated_objects[BINAURAL_CHANNELS][L_FRAME48k];
                float *p_sepobj[BINAURAL_CHANNELS];
                int16_t n;
#else
                float *tc_local[MAX_TRANSPORT_CHANNELS];
#endif

                for ( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ )
                {
@@ -1687,6 +1694,22 @@ ivas_error ivas_jbm_dec_flush_renderer(
                    mvr2r( st_ivas->hMasaIsmData->delayBuffer[ch_idx], tc_local[ch_idx], st_ivas->hMasaIsmData->delayBuffer_size );
                }

#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
                for ( n = 0; n < BINAURAL_CHANNELS; n++ )
                {
                    p_sepobj[n] = &data_separated_objects[n][0];
                }

                if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_sepobj, hTcBuffer->n_samples_granularity ) ) != IVAS_ERR_OK )
                {
                    return error;
                }

                for ( n = 0; n < BINAURAL_CHANNELS; n++ )
                {
                    v_add( p_output[n], p_sepobj[n], p_output[n], *nSamplesRendered );
                }
#else
                if ( st_ivas->nchan_ism > 0 )
                {
                    if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_output, hTcBuffer->n_samples_granularity ) ) != IVAS_ERR_OK )
@@ -1703,6 +1726,7 @@ ivas_error ivas_jbm_dec_flush_renderer(
                    st_ivas->hTcBuffer->slots_rendered += 1;
                    st_ivas->hTcBuffer->subframes_rendered += 1;
                }
#endif
            }
        }
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
+13 −0
Original line number Diff line number Diff line
@@ -850,14 +850,26 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm(
)
{
    int16_t n;
#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
    float data_separated_objects[BINAURAL_CHANNELS][L_FRAME48k];
#else
    float data_separated_objects[MAX_NUM_OBJECTS][L_FRAME48k];
#endif
    ivas_error error;
#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
    float *p_sepobj[BINAURAL_CHANNELS];
#else
    float *p_sepobj[MAX_NUM_OBJECTS];
#endif
    int16_t slot_idx_start;

    slot_idx_start = st_ivas->hSpatParamRendCom->slots_rendered;

#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
    for ( n = 0; n < BINAURAL_CHANNELS; n++ )
#else
    for ( n = 0; n < MAX_NUM_OBJECTS; n++ )
#endif
    {
        p_sepobj[n] = &data_separated_objects[n][0];
    }
@@ -908,6 +920,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm(
        {
            return error;
        }

        for ( n = 0; n < BINAURAL_CHANNELS; n++ )
        {
            v_add( output_f[n], p_sepobj[n], output_f[n], *nSamplesRendered );