Commit 8b912c2e authored by vaclav's avatar vaclav
Browse files

accept FIX_RENDERER_STACK and FIX_NCHAN_BUFFERS

parent 648b9cce
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -160,8 +160,6 @@

/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define TMP_FIX_1119_SPLIT_RENDERING_VOIP               /* FhG: Add error check for unsupported config: split rendering with VoIP mode */
#define FIX_NCHAN_BUFFERS                               /* VA: issue 1322: Correct the number of float buffers (channels) at the decoder */
#define FIX_RENDERER_STACK                              /* VA: issue 1322: reduction of renderers' buffers size */
#define FIX_1319_STACK_SBA_DECODER                      /* VA: issue 1319: Optimize the definition of buffer lengths in the SBA decoder */
#define JBM_MEMORY_OPT                                  /* VA: issue 916: optimization of RAM in the JBM decoder */

+0 −21
Original line number Diff line number Diff line
@@ -1554,12 +1554,8 @@ void ivas_dirac_dec_render(
    uint16_t slot_size, n_samples_sf, ch, nchan_intern;
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom;
    float *output_f_local[MAX_OUTPUT_CHANNELS];
#ifdef FIX_RENDERER_STACK
    float *p_output_f[MAX_OUTPUT_CHANNELS];
    float output_f_local_buff[MAX_OUTPUT_CHANNELS][L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES];
#else
    float output_f_local_buff[MAX_OUTPUT_CHANNELS][L_FRAME48k];
#endif

    hSpatParamRendCom = st_ivas->hSpatParamRendCom;

@@ -1570,11 +1566,7 @@ void ivas_dirac_dec_render(
    for ( ch = 0; ch < nchan_intern; ch++ )
    {
        output_f_local[ch] = output_f_local_buff[ch];
#ifdef FIX_RENDERER_STACK
        p_output_f[ch] = output_f[ch];
#else
        set_zero( output_f_local_buff[ch], nSamplesAsked );
#endif
    }
    slot_size = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS );

@@ -1601,7 +1593,6 @@ void ivas_dirac_dec_render(

        for ( ch = 0; ch < nchan_intern; ch++ )
        {
#ifdef FIX_RENDERER_STACK
            /* move to output */
            if ( !( ( st_ivas->hDirACRend->hOutSetup.separateChannelEnabled ) && ( st_ivas->hDirACRend->hOutSetup.separateChannelIndex == ch || st_ivas->hDirACRend->hOutSetup.separateChannelIndex + 1 == ch ) ) )
            {
@@ -1609,24 +1600,12 @@ void ivas_dirac_dec_render(
            }

            p_output_f[ch] += n_samples_sf;
#else
            output_f_local[ch] += n_samples_sf;
#endif
        }

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

#ifndef FIX_RENDERER_STACK
    for ( ch = 0; ch < nchan_intern; ch++ )
    {
        if ( !( ( st_ivas->hDirACRend->hOutSetup.separateChannelEnabled ) && ( st_ivas->hDirACRend->hOutSetup.separateChannelIndex == ch || st_ivas->hDirACRend->hOutSetup.separateChannelIndex + 1 == ch ) ) )
        {
            mvr2r( output_f_local_buff[ch], output_f[ch], *nSamplesRendered );
        }
    }
#endif
    if ( hSpatParamRendCom->slots_rendered == hSpatParamRendCom->num_slots )
    {
        if ( st_ivas->hDirAC->hConfig->dec_param_estim == 1 )
+0 −4
Original line number Diff line number Diff line
@@ -2378,12 +2378,8 @@ ivas_error ivas_init_decoder(
     * Allocate floating-point output audio buffers
     *-----------------------------------------------------------------*/

#ifdef FIX_NCHAN_BUFFERS
    k = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate );
    for ( n = 0; n < k; n++ )
#else
    for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); n++ )
#endif
    {
        /* note: these are intra-frame heap memories */
        if ( ( st_ivas->p_output_f[n] = (float *) malloc( ( 48000 / FRAMES_PER_SEC ) * sizeof( float ) ) ) == NULL )
+0 −4
Original line number Diff line number Diff line
@@ -862,16 +862,12 @@ void ivas_jbm_dec_feed_tc_to_renderer(
            p_data_f[n] = &st_ivas->p_output_f[n][0];
        }

#ifdef FIX_NCHAN_BUFFERS
#ifdef JBM_MEMORY_OPT
        ch = max( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full );
#else
        ch = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate );
#endif
        for ( n = 0; n < ch; n++ )
#else
        for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); n++ )
#endif
        {
            hTcBuffer->tc[n] = st_ivas->p_output_f[n]; /* note: buffers needed in the TD decorellator */
        }
+0 −10
Original line number Diff line number Diff line
@@ -1320,9 +1320,7 @@ ivas_error ivas_masa_dec_reconfigure(
    Decoder_State **sts;
    int32_t ivas_total_brate, last_ivas_total_brate;
    int16_t numCldfbAnalyses_old, numCldfbSyntheses_old;
#ifdef FIX_NCHAN_BUFFERS
    int16_t nchan_out_buff_old, nchan_out_buff;
#endif
    ivas_error error;
    int16_t pos_idx;
    int32_t ism_total_brate;
@@ -1330,10 +1328,8 @@ ivas_error ivas_masa_dec_reconfigure(
    ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate;
    last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate;

#ifdef FIX_NCHAN_BUFFERS
    nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas, -1, -1 );

#endif
    /* Copy state to TC buffer if granularity matches and we are not in OMASA EXT rendering mode */
    if ( st_ivas->hSpatParamRendCom != NULL && st_ivas->hSpatParamRendCom->slot_size == st_ivas->hTcBuffer->n_samples_granularity && st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_EXTERNAL )
    {
@@ -1497,15 +1493,11 @@ ivas_error ivas_masa_dec_reconfigure(
            }
            else
            {
#ifdef FIX_NCHAN_BUFFERS
                tc_nchan_to_allocate = BINAURAL_CHANNELS;
                if ( st_ivas->hDiracDecBin[0] != NULL && st_ivas->hDiracDecBin[0]->useTdDecorr )
                {
                    tc_nchan_to_allocate = 2 * BINAURAL_CHANNELS;
                }
#else
                tc_nchan_to_allocate = 2 * BINAURAL_CHANNELS;
#endif
            }
        }
        else if ( st_ivas->nchan_transport == 1 && ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirACRend->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) )
@@ -1545,7 +1537,6 @@ ivas_error ivas_masa_dec_reconfigure(
        }
    }

#ifdef FIX_NCHAN_BUFFERS
    /*-----------------------------------------------------------------*
     * floating-point output audio buffers
     *-----------------------------------------------------------------*/
@@ -1559,7 +1550,6 @@ ivas_error ivas_masa_dec_reconfigure(
        }
    }

#endif
    return IVAS_ERR_OK;
}

Loading