Commit a3d01c36 authored by vaclav's avatar vaclav
Browse files

Merge branch '1940-ref-PortFlpMr1858' into 'ivas-float-update'

[non-BE] Port MR1858 from float to FLP-ref

See merge request !2135
parents 4b5bebea 7deebdec
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -212,6 +212,7 @@
#define FIX_587_DEFAULT_REVERB                          /* Philips: issue 587: inconsistent default reverb parameters across renderers */
#define NONBE_1214_PLC_LSF_MEMORY                       /* VA: issue 1224: reset ACELP PLC FEC memory in case of switching from MDCT stereo to TD/DFT stereo */
#define NONBE_1293_SR_HRTF                              /* VA: issue 1293: add support of external HRTFs in split rendering */
#define NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH             /* VA: issue 1220: fix bug in renderer flush in OMASA 1ISM JBM bitrate switching */

/* #################### End BASOP porting switches ############################ */

+12 −1
Original line number Diff line number Diff line
@@ -1538,7 +1538,7 @@ ivas_error ivas_jbm_dec_render(


/*--------------------------------------------------------------------------*
 * ivas_jbm_dec_dec_flush_renderer()
 * ivas_jbm_dec_flush_renderer()
 *
 * Flush samples if renderer granularity changes on a bitrate change
 *--------------------------------------------------------------------------*/
@@ -1696,7 +1696,11 @@ 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];
#else
                float *tc_local[MAX_TRANSPORT_CHANNELS];
#endif

                for ( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ )
                {
@@ -1704,6 +1708,12 @@ 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
                if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_output, hTcBuffer->n_samples_granularity ) ) != IVAS_ERR_OK )
                {
                    return error;
                }
#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 )
@@ -1720,6 +1730,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 )
+5 −1
Original line number Diff line number Diff line
@@ -97,11 +97,15 @@ ivas_error ivas_td_binaural_renderer_sf(
    int16_t nchan_ism_internal, nchan_ism, ch_offset;

    /* Set the number of ISMs */
#ifdef NONBE_1220_OMASA_JBM_BRATE_SW_FLUSH
    if ( st_ivas->ivas_format == MASA_ISM_FORMAT || ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 ) )
#else
    if ( st_ivas->ivas_format == MASA_ISM_FORMAT )
#endif
    {
        nchan_ism_internal = st_ivas->nchan_ism;
        nchan_ism = st_ivas->nchan_ism;
        ch_offset = 2;
        ch_offset = CPE_CHANNELS;
    }
    else if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
+14 −2
Original line number Diff line number Diff line
@@ -782,7 +782,7 @@ void ivas_omasa_dirac_rend_jbm(


/*--------------------------------------------------------------------------*
 * ivas_omasa_dirac_td_binaural_render()
 * ivas_omasa_dirac_td_binaural_jbm()
 *
 * Binaural rendering in OMASA format for JBM
 *--------------------------------------------------------------------------*/
@@ -797,19 +797,30 @@ 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];
    }


    ivas_dirac_dec_binaural_render( st_ivas, nSamplesAsked, nSamplesRendered, nSamplesAvailable, nchan_transport, output_f );

    /* reset combined orientation access index before calling the td renderer */
@@ -861,6 +872,7 @@ ivas_error ivas_omasa_dirac_td_binaural_jbm(
            v_add( output_f[n], p_sepobj[n], output_f[n], *nSamplesRendered );
        }
    }

    return IVAS_ERR_OK;
}