Commit 55e32cf9 authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_997_REMOVE_SPAR_DEC_UPMIXER

parent b6b0e802
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -4368,14 +4368,6 @@ void ivas_spar_dec_upmixer_sf(
    const int16_t nchan_internal                                /* i  : number of internal channels             */
);

#ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER
void ivas_spar_dec_upmixer(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder handle                     */
    float *output[],                                            /* i/o: input/output audio channels             */
    const int16_t nchan_internal,                               /* i  : number of internal channels             */
    const int16_t output_frame                                  /* i  : output frame length                     */
);
#endif
/* MD module */
ivas_error ivas_spar_md_enc_open(
    ivas_spar_md_enc_state_t **hMdEnc,                          /* i/o: SPAR MD encoder handle                  */
+0 −1
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
/*#define SPLIT_REND_WITH_HEAD_ROT  */                  /* Dlb,FhG: Split Rendering contributions 21 and 35 */

#define FIX_997_REMOVE_SPAR_DEC_UPMIXER                 /* VA: issue 997: remove obsolete function ivas_spar_dec_upmixer() */
#define FIX_944_REMOVE_LS_RENDERER_CALL_IN_STEREO       /* VA: issue 994: remove an obsolete call of function ivas_ls_setup_conversion() in stereo */
#define FIX_1003_PARAMISM_BINAURAL_RECONFIG_USAN        /* FhG: fix for #1003: fix USAN caused by ParamISM reconfig                    */
#define FIX_1001_ARI_HM_OVERFLOW                        /* FhG: fix for undef behaviour in in the harmonic TCX model arithmetic coder */
+0 −134
Original line number Diff line number Diff line
@@ -1250,19 +1250,11 @@ void ivas_spar_dec_set_render_map(
    return;
}

#ifdef FIX_997_REMOVE_SPAR_DEC_UPMIXER
/*-------------------------------------------------------------------*
 * ivas_spar_dec_set_render_params()
 *
 * IVAS SPAR set rendering parameters
 *-------------------------------------------------------------------*/
#else
/*-------------------------------------------------------------------*
 * ivas_spar_dec_upmixer()
 *
 * IVAS SPAR upmixer
 *-------------------------------------------------------------------*/
#endif

void ivas_spar_dec_set_render_params(
    Decoder_Struct *st_ivas,    /* i/o: IVAS decoder handle                     */
@@ -1369,132 +1361,6 @@ void ivas_spar_dec_digest_tc(
    return;
}

#ifndef FIX_997_REMOVE_SPAR_DEC_UPMIXER
/*-------------------------------------------------------------------*
 * ivas_spar_dec_upmixer()
 *
 *
 *-------------------------------------------------------------------*/

void ivas_spar_dec_upmixer(
    Decoder_Struct *st_ivas,      /* i/o: IVAS decoder handle                     */
    float *output[],              /* i/o: input/output audio channels             */
    const int16_t nchan_internal, /* i  : number of internal channels             */
    const int16_t output_frame    /* i  : output frame length                     */
)
{
    SPAR_DEC_HANDLE hSpar;
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom;
    int16_t nchan_transport, nchan_out;
    int16_t subframe_idx, n, i;
    int16_t n_samples_sf;
    float *output_f_local[MAX_OUTPUT_CHANNELS];
    float Pcm_tmp[MAX_OUTPUT_CHANNELS][L_FRAME48k];
    float *pPcm_tmp[MAX_OUTPUT_CHANNELS];
    int16_t nchan_internal_total;
    int16_t sba_ch_offset;

    hSpar = st_ivas->hSpar;
    nchan_transport = hSpar->hMdDec->spar_md_cfg.nchan_transport;
    nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe;
    n_samples_sf = JBM_CLDFB_SLOTS_IN_SUBFRAME * NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS );

    nchan_internal_total = nchan_internal;
    sba_ch_offset = 0;
    if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC )
    {
        nchan_internal_total += st_ivas->nchan_ism;
        sba_ch_offset = st_ivas->nchan_ism;
    }

    for ( n = 0; n < MAX_OUTPUT_CHANNELS; n++ )
    {
        output_f_local[n] = output[n + sba_ch_offset];
    }

    for ( n = 0; n < nchan_internal_total; n++ )
    {
        st_ivas->hTcBuffer->tc[n] = output[n];
    }

    /*---------------------------------------------------------------------*
     * TD decorrelation
     *---------------------------------------------------------------------*/

    for ( i = 0; i < nchan_internal; i++ )
    {
        pPcm_tmp[i] = Pcm_tmp[i];
    }

    if ( hSpar->hMdDec->td_decorr_flag )
    {
        if ( hSpar->hTdDecorr )
        {
            ivas_td_decorr_process( hSpar->hTdDecorr, output_f_local, pPcm_tmp, output_frame );

            if ( hSpar->hTdDecorr->num_apd_outputs >= ( nchan_internal - nchan_transport ) )
            {
                for ( i = 0; i < nchan_internal - nchan_transport; i++ )
                {
                    mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame );
                }
            }
            else
            {
                for ( i = 0; i < nchan_internal - nchan_transport; i++ )
                {
                    set_zero( st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame );
                }

                for ( i = 0; i < hSpar->hTdDecorr->num_apd_outputs; i++ )
                {
                    mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], st_ivas->hTcBuffer->tc[nchan_internal_total - 1 - i], output_frame );
                }
            }
        }
    }

    ivas_spar_dec_set_render_params( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS );

    if ( st_ivas->hDirAC != 0 )
    {
        ivas_dirac_dec_set_md_map( st_ivas, DEFAULT_JBM_CLDFB_TIMESLOTS );
    }

    for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ )
    {
        ivas_spar_dec_upmixer_sf( st_ivas, output_f_local, nchan_internal );

        for ( n = 0; n < nchan_out; n++ )
        {
            output_f_local[n] += n_samples_sf;
        }

        /* update combined orientation access index */
        ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_sf );
    }

    for ( n = 0; n < nchan_internal_total; n++ )
    {
        st_ivas->hTcBuffer->tc[n] = NULL;
    }

    if ( st_ivas->hDirAC != NULL && st_ivas->hSpatParamRendCom != NULL )
    {
        hSpatParamRendCom = st_ivas->hSpatParamRendCom;
        if ( st_ivas->hDirAC->hConfig->dec_param_estim == 1 )
        {
            hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_CLDFB_TIMESLOTS ) % hSpatParamRendCom->dirac_md_buffer_length;
        }
        else
        {
            hSpatParamRendCom->dirac_read_idx = ( hSpatParamRendCom->dirac_read_idx + DEFAULT_JBM_SUBFRAMES_5MS ) % hSpatParamRendCom->dirac_md_buffer_length;
        }
    }

    return;
}
#endif

/*-------------------------------------------------------------------*
 * ivas_spar_dec_upmixer_sf()