Commit 617913d1 authored by multrus's avatar multrus
Browse files

[cleanup] accept NONBE_1360_LFE_DELAY

parent c0773e1f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -159,7 +159,6 @@
#define FIX_1129_EXT_REND_OUTPUT_HIGH                   /* Philips: issue 1129: External renderer BINAURAL_ROOM_REVERB format output level too high compared to internal rendering output */
#define NONBE_1244_FIX_SWB_BWE_MEMORY                   /* VA: issue 1244: fix to SWB BWE memory in case of switching from FB coding - pending a review by Huawei */
#define FIX_1113_CLDFB_REND_IN_ISAR                     /* issue 1113: fix the use of CLDFB renderer in split-rendering at the external renderer */
#define NONBE_1360_LFE_DELAY                            /* Dlb: LFE delay alignment when rendering in CLDFB domain*/
#define NONBE_1229_FIX_ISM1_DPID                        /* Eri: issue 1229: fix bug causing ISM 1 to use default -dpid instead of the specified one */
#define NONBE_SVD_OPTIMIZATION                          /* FhG: port-2211-svd-optimization */
#define FIX_1135_EXT_RENDERER_HANDLES                   /* VA: issue 1135: Memory usage reduction in external renderer: Allocate only handles that are really needed. */
+0 −4
Original line number Diff line number Diff line
@@ -2388,7 +2388,6 @@ ivas_error ivas_init_decoder(

    if ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX )
    {
#ifdef NONBE_1360_LFE_DELAY
        if ( st_ivas->hIntSetup.index_lfe[0] != -1 )
        {
            delay_ns = st_ivas->binaural_latency_ns;
@@ -2397,9 +2396,6 @@ ivas_error ivas_init_decoder(
        {
            delay_ns = 0;
        }
#else
        delay_ns = st_ivas->binaural_latency_ns;
#endif
        if ( st_ivas->hBinRenderer != NULL )
        {
            if ( st_ivas->hBinRenderer->render_lfe )
+0 −26
Original line number Diff line number Diff line
@@ -379,11 +379,7 @@ ivas_error ivas_create_lfe_dec(
    LFE_DEC_HANDLE hLFE;
    float lfe_addl_delay_s;
    int16_t i, j;
#ifndef NONBE_1360_LFE_DELAY
    int16_t add_delay_sa;
#else
    float lfe_block_delay_s;
#endif

    low_pass_delay_dec_out = 0;
    block_offset_s = 0;
@@ -421,11 +417,7 @@ ivas_error ivas_create_lfe_dec(
    hLFE->cum_freq_models[1][3] = &ivas_str_lfe_freq_models.entropy_coder_model_coarse_sg4;

    /* delay calculation */
#ifndef NONBE_1360_LFE_DELAY
    hLFE->lfe_block_delay_s = ( IVAS_LFE_FADE_NS / 1000000000.f ) + ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3];
#else
    lfe_block_delay_s = ( IVAS_LFE_FADE_NS / 1000000000.f ) + ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3];
#endif

    block_offset_s = BLOCK_OFFSET_MS * 0.001f;
    filt_order = 0;
@@ -433,39 +425,21 @@ ivas_error ivas_create_lfe_dec(
    if ( ( delay_ns / 1000000000.f ) > ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] )
    {
        filt_order = 4;
#ifdef NONBE_1360_LFE_DELAY
        low_pass_delay_dec_out = ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3];
#else
        low_pass_delay_dec_out = ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000.f;
#endif
        ivas_create_lfe_lpf_dec( &( hLFE->filter_state ), output_Fs );
    }
    hLFE->filter_state.order = filt_order;
#ifndef NONBE_1360_LFE_DELAY
    hLFE->lfe_block_delay_s = hLFE->lfe_block_delay_s + low_pass_delay_dec_out;
#else
    lfe_block_delay_s = lfe_block_delay_s + low_pass_delay_dec_out;
#endif
    hLFE->lfe_prior_buf_len = NS2SA( output_Fs, IVAS_LFE_FADE_NS );

    hLFE->bfi_count = 0;

#ifdef NONBE_1360_LFE_DELAY
    block_offset_s += delay_ns / 1000000000.f;
    lfe_addl_delay_s = block_offset_s - lfe_block_delay_s;
#else
    lfe_addl_delay_s = block_offset_s - hLFE->lfe_block_delay_s;
#endif
    lfe_addl_delay_s = max( 0.0f, lfe_addl_delay_s );

#ifndef NONBE_1360_LFE_DELAY
    add_delay_sa = (int16_t) roundf( (float) delay_ns * output_Fs / 1000000000.f );
    hLFE->lfe_addl_delay = (int16_t) ( lfe_addl_delay_s * output_Fs ) + add_delay_sa;
    hLFE->lfe_block_delay_s += lfe_addl_delay_s + add_delay_sa / output_Fs;
#else
    hLFE->lfe_addl_delay = (int16_t) ( lfe_addl_delay_s * output_Fs );
    hLFE->delay_ns = delay_ns;
#endif
    if ( hLFE->lfe_addl_delay > 0 )
    {
        if ( ( hLFE->lfe_delay_buf = (float *) malloc( hLFE->lfe_addl_delay * sizeof( float ) ) ) == NULL )
+0 −8
Original line number Diff line number Diff line
@@ -841,38 +841,30 @@ static void ivas_mc_paramupmix_dec_sf(
        {
            for ( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ )
            {
#ifdef NONBE_1360_LFE_DELAY
                /*delay is handled within LFE decoder*/
                if ( st_ivas->hIntSetup.index_lfe[0] != ch )
                {
#endif
                    float tmp_buf[L_SUBFRAME5MS_48k];
                    mvr2r( &output_f[ch][n_samples_rendered - noparamupmix_delay], tmp_buf, noparamupmix_delay );
                    mvr2r( output_f[ch], &output_f[ch][noparamupmix_delay], n_samples_rendered - noparamupmix_delay );
                    mvr2r( hMCParamUpmix->pcm_delay[ch], output_f[ch], noparamupmix_delay );
                    mvr2r( tmp_buf, hMCParamUpmix->pcm_delay[ch], noparamupmix_delay );
#ifdef NONBE_1360_LFE_DELAY
                }
#endif
            }
        }
        else
        {
            for ( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ )
            {
#ifdef NONBE_1360_LFE_DELAY
                /*delay is handled within LFE decoder*/
                if ( st_ivas->hIntSetup.index_lfe[0] != ch )
                {
#endif
                    float tmp_buf[L_SUBFRAME5MS_48k];
                    mvr2r( &output_f[ch][0], tmp_buf, n_samples_rendered );
                    mvr2r( hMCParamUpmix->pcm_delay[ch], output_f[ch], n_samples_rendered );
                    mvr2r( &hMCParamUpmix->pcm_delay[ch][n_samples_rendered], &hMCParamUpmix->pcm_delay[ch][0], noparamupmix_delay - n_samples_rendered );
                    mvr2r( tmp_buf, &hMCParamUpmix->pcm_delay[ch][noparamupmix_delay - n_samples_rendered], n_samples_rendered );
#ifdef NONBE_1360_LFE_DELAY
                }
#endif
            }
        }
    }
+0 −52
Original line number Diff line number Diff line
@@ -1118,42 +1118,6 @@ static ivas_error ivas_mc_dec_reconfig(
        return error;
    }

#ifndef NONBE_1360_LFE_DELAY
    /*-----------------------------------------------------------------*
     * Allocate the LFE handle that is coded separately after the allocation of the core coders
     *-----------------------------------------------------------------*/
    if ( ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) && st_ivas->hLFE == NULL )
    {
        int32_t delay_ns = st_ivas->binaural_latency_ns;
        if ( st_ivas->hBinRenderer != NULL )
        {
            if ( st_ivas->hBinRenderer->render_lfe )
            {
                /* Account for filterbank delay */
                delay_ns += IVAS_FB_DEC_DELAY_NS;
            }
            else
            {
                delay_ns = 0;
            }
        }
        else
        {
            if ( ( st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) && ( st_ivas->cldfbSynDec[0] != NULL ) )
            {
                delay_ns += IVAS_FB_DEC_DELAY_NS;
            }
        }

        if ( ( error = ivas_create_lfe_dec( &st_ivas->hLFE, st_ivas->hDecoderConfig->output_Fs, delay_ns ) ) != IVAS_ERR_OK )
        {
            return error;
        }

        set_zero( st_ivas->hLFE->prevsynth_buf, LFE_PLC_BUFLEN );
        set_zero( st_ivas->hLFE->prior_out_buffer, L_FRAME48k );
    }
#endif

    /*-----------------------------------------------------------------*
     * Reconfigure renderers
@@ -1305,17 +1269,11 @@ static ivas_error ivas_mc_dec_reconfig(
        return error;
    }

#ifdef NONBE_1360_LFE_DELAY
    /*-----------------------------------------------------------------*
     * Allocate the LFE handle that is coded separately after the allocation of the core coders
     *-----------------------------------------------------------------*/
#ifdef NONBE_1360_LFE_DELAY
    if ( ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) )
#else
    if ( ( st_ivas->mc_mode == MC_MODE_MCT || st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) && st_ivas->hLFE == NULL )
#endif
    {
#ifdef NONBE_1360_LFE_DELAY
        int32_t delay_ns;
        if ( st_ivas->hIntSetup.index_lfe[0] != -1 )
        {
@@ -1325,9 +1283,6 @@ static ivas_error ivas_mc_dec_reconfig(
        {
            delay_ns = 0;
        }
#else
        int32_t delay_ns = st_ivas->binaural_latency_ns;
#endif
        if ( st_ivas->hBinRenderer != NULL )
        {
            if ( st_ivas->hBinRenderer->render_lfe )
@@ -1348,7 +1303,6 @@ static ivas_error ivas_mc_dec_reconfig(
            }
        }

#ifdef NONBE_1360_LFE_DELAY
        if ( st_ivas->hLFE != NULL )
        {
            if ( st_ivas->hLFE->delay_ns != delay_ns )
@@ -1356,12 +1310,9 @@ static ivas_error ivas_mc_dec_reconfig(
                ivas_lfe_dec_close( &( st_ivas->hLFE ) );
            }
        }
#endif

#ifdef NONBE_1360_LFE_DELAY
        if ( st_ivas->hLFE == NULL )
        {
#endif
            if ( ( error = ivas_create_lfe_dec( &st_ivas->hLFE, st_ivas->hDecoderConfig->output_Fs, delay_ns ) ) != IVAS_ERR_OK )
            {
                return error;
@@ -1369,11 +1320,8 @@ static ivas_error ivas_mc_dec_reconfig(

            set_zero( st_ivas->hLFE->prevsynth_buf, LFE_PLC_BUFLEN );
            set_zero( st_ivas->hLFE->prior_out_buffer, L_FRAME48k );
#ifdef NONBE_1360_LFE_DELAY
        }
#endif
    }
#endif

    /*-----------------------------------------------------------------*
     * JBM TC buffers
Loading