Commit 275a75e5 authored by vaclav's avatar vaclav
Browse files

Merge remote-tracking branch 'remotes/origin/main' into...

Merge remote-tracking branch 'remotes/origin/main' into 1187-huge-static-ram-consumption-when-hrtfs-are-loaded-from-file
parents d1e5418b 9579701a
Loading
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
@@ -444,27 +444,6 @@ int main(
        }
    }

#ifndef FIX_1158_FASTCONV_REVERB_HRTF
    /*------------------------------------------------------------------------------------------*
     * Open renderer configuration reader file
     *------------------------------------------------------------------------------------------*/

    if ( arg.renderConfigEnabled )
    {
        /* sanity check */
        if ( arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && arg.outputConfig != IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM && arg.non_diegetic_pan_enabled == false )
        {
            fprintf( stderr, "\nError: Renderer configuration file cannot be used in this output configuration.\n\n" );
            goto cleanup;
        }

        if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename );
            goto cleanup;
        }
    }
#endif

    /*------------------------------------------------------------------------------------------*
     * Configure the decoder
@@ -627,15 +606,11 @@ int main(
        }
    }
#else
#ifdef FIX_VOIP_FUNCTIONS
    if ( ( error = IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\nIVAS_DEC_PrintConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
        goto cleanup;
    }
#else
    IVAS_DEC_PrintConfig( hIvasDec, 1, arg.voipMode );
#endif
#endif

    /*-------------------------------------------------------------------*
@@ -660,13 +635,11 @@ int main(
            goto cleanup;
        }

#ifdef FIX_1158_FASTCONV_REVERB_HRTF
        if ( ( error = RenderConfigReader_open( arg.renderConfigFilename, &renderConfigReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", arg.renderConfigFilename );
            goto cleanup;
        }
#endif

        if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK )
        {
+1 −3
Original line number Diff line number Diff line
@@ -169,9 +169,7 @@

#define TMP_FIX_1119_SPLIT_RENDERING_VOIP               /* FhG: Add error check for unsupported config: split rendering with VoIP mode */

#define FIX_1158_FASTCONV_REVERB_HRTF                   /* Philips: issue 1158: Rendering with FastConv to BINAURAL_ROOM_REVERB uses BRIR convolution instead of HRTF */
#define FIX_587_DEFAULT_REVERB                          /* Philips: issue 587: inconsistent default reverb parameters across renderers */
#define FIX_VOIP_FUNCTIONS                              /* VA: fix data type mismatch in IVAS_DEC_VoIP_SetScale() + add sanity checks to API functions */

#define FIX_HRTF_LOAD                                   /* VA: issue 1187: fix memory issue when HRTFs are loaded from a binary file */

@@ -184,11 +182,11 @@



#define NONBE_FIX_1174_MCMASA_LBR_LOOP_ERROR            /* Nokia: Fix issue 1174 by removing the unnecessary inner loop causing problems. */
#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR       /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */
#define NONBE_FIX_1197_OMASA_META_BUFFER                /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */

#define FIX_1139_REV_COLORATION_SHORT_T60               /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */
#define FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE  /* FhG: zero out all relevant imdct buffers in MCT decoding of channels with mct_chan_mode == MCT_CHAN_MODE_IGNORE */

/* ##################### End NON-BE switches ########################### */

+9 −0
Original line number Diff line number Diff line
@@ -865,6 +865,15 @@ void ivas_mdct_core_reconstruct(
                {
                    set_f( &synth[k * L_frame[ch]], 0.f, L_frame[ch] );
                    set_f( &synthFB[k * L_frame[ch]], 0.f, L_frameTCX[ch] );
#ifdef FIX_1206_ZERO_OUT_IMDCT_BUFFERS_FOR_MCT_IGNORE
                    /* Note: these buffers are not subframe-based, hence no indexing with k */
                    set_f( &st->hHQ_core->old_outLB[0], 0.f, L_frame[ch] );
                    set_f( &st->hHQ_core->old_out[0], 0.f, L_frameTCX[ch] );
                    set_f( &st->hTcxDec->syn_Overl[0], 0.f, L_frame[ch] / 2 );
                    set_f( &st->hTcxDec->syn_OverlFB[0], 0.f, L_frameTCX[ch] / 2 );
                    set_f( &st->hTcxDec->syn_Overl_TDAC[0], 0.f, L_frame[ch] / 2 );
                    set_f( &st->hTcxDec->syn_Overl_TDACFB[0], 0.f, L_frameTCX[ch] / 2 );
#endif
                }
            }

+0 −4
Original line number Diff line number Diff line
@@ -141,11 +141,7 @@ void ivas_renderer_select(
        {
            *internal_config = IVAS_AUDIO_CONFIG_HOA3;

#ifdef FIX_1158_FASTCONV_REVERB_HRTF
            if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
#else
            if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
#endif
            {
                *renderer_type = RENDERER_BINAURAL_FASTCONV;
            }
+0 −58
Original line number Diff line number Diff line
@@ -448,9 +448,6 @@ ivas_error IVAS_DEC_Configure(
    DECODER_CONFIG_HANDLE hDecoderConfig;
    ivas_error error;

#ifndef FIX_VOIP_FUNCTIONS
    error = IVAS_ERR_OK;
#endif
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
@@ -553,11 +550,7 @@ ivas_error IVAS_DEC_Configure(
    }
#endif

#ifdef FIX_VOIP_FUNCTIONS
    return IVAS_ERR_OK;
#else
    return error;
#endif
}


@@ -753,9 +746,6 @@ ivas_error IVAS_DEC_EnableVoIP(
{
    DECODER_CONFIG_HANDLE hDecoderConfig;
    ivas_error error;
#ifndef FIX_VOIP_FUNCTIONS
    error = IVAS_ERR_OK;
#endif

    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
@@ -823,11 +813,7 @@ ivas_error IVAS_DEC_EnableVoIP(
    }
#endif

#ifdef FIX_VOIP_FUNCTIONS
    return IVAS_ERR_OK;
#else
    return error;
#endif
}


@@ -1974,13 +1960,11 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream(
    int16_t ro_md_flag;
    IVAS_QUATERNION Quaternion;

#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    error = IVAS_ERR_OK;
    st_ivas = hIvasDec->st_ivas;
    output_config = st_ivas->hDecoderConfig->output_config;
@@ -2437,13 +2421,11 @@ ivas_error IVAS_DEC_GetFormat(
    IVAS_DEC_BS_FORMAT *format /* o  : format detected from bitstream fed to the decoder */
)
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    if ( hIvasDec->hasDecodedFirstGoodFrame )
    {
        *format = mapIvasFormat( hIvasDec->st_ivas->ivas_format );
@@ -2537,13 +2519,11 @@ ivas_error IVAS_DEC_GetNumOutputChannels(
    int16_t *numOutputChannels /* o  : number of PCM output channels   */
)
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    if ( hIvasDec->hasDecodedFirstGoodFrame )
    {
        *numOutputChannels = hIvasDec->st_ivas->hDecoderConfig->nchan_out;
@@ -3552,13 +3532,11 @@ ivas_error IVAS_DEC_VoIP_FeedFrame(
    int16_t partialCopyFrameType, partialCopyOffset;
    int16_t result;

#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->hVoIP == NULL || au == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    if ( auSize == 0 )
    {
        return IVAS_ERR_OK; /* ignore empty/NO_DATA frame - shouldn't be transmitted in RTP */
@@ -3637,22 +3615,12 @@ ivas_error IVAS_DEC_VoIP_SetScale(
    const int16_t scale       /* i  : TSM scale to set in percent of the default frame size                       */
)
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }
#else
    ivas_error error;

    error = IVAS_ERR_OK;
#endif

#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm == 0 )
#else
    if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm == false )
#endif
    {
        return IVAS_ERR_TSM_NOT_ENABLED;
    }
@@ -3662,11 +3630,7 @@ ivas_error IVAS_DEC_VoIP_SetScale(
        hIvasDec->tsm_max_scaling = maxScaling;
    }

#ifdef FIX_VOIP_FUNCTIONS
    return IVAS_ERR_OK;
#else
    return error;
#endif
}


@@ -3690,13 +3654,11 @@ ivas_error IVAS_DEC_TSM_SetQuality(
    const float quality       /* i  : target TSM quality    */
)
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    if ( !hIvasDec->st_ivas->hDecoderConfig->Opt_tsm )
    {
        return IVAS_ERR_TSM_NOT_ENABLED;
@@ -3751,13 +3713,11 @@ ivas_error IVAS_DEC_VoIP_GetSamples(
#endif
    uint8_t nOutChannels;

#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL || hIvasDec->hVoIP == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    st_ivas = hIvasDec->st_ivas;
    hDecoderConfig = st_ivas->hDecoderConfig;
    hVoIP = hIvasDec->hVoIP;
@@ -4064,13 +4024,11 @@ ivas_error IVAS_DEC_Flush(
    uint16_t nSamplesToRender;
    uint16_t nSamplesFlushedLocal;

#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    *nSamplesFlushed = min( nSamplesPerChannel, hIvasDec->nSamplesAvailableNext );

    nSamplesToRender = (uint16_t) *nSamplesFlushed;
@@ -4099,13 +4057,11 @@ bool IVAS_DEC_VoIP_IsEmpty(
    IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */
    const int16_t nSamplesAsked )
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->hVoIP == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    return ( ( JB4_bufferedDataUnits( hIvasDec->hVoIP->hJBM ) == 0 ) && ( hIvasDec->nSamplesAvailableNext < nSamplesAsked ) );
}

@@ -4212,11 +4168,7 @@ ivas_error IVAS_DEC_GetJbmData(

)
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->hVoIP == NULL || JbmTraceData == NULL )
#else
    if ( hIvasDec->hVoIP == NULL )
#endif
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }
@@ -4528,29 +4480,19 @@ static ivas_error printConfigInfo_dec(
 * Print decoder set-up info
 *---------------------------------------------------------------------*/

#ifdef FIX_VOIP_FUNCTIONS
ivas_error IVAS_DEC_PrintConfig(
#else
void IVAS_DEC_PrintConfig(
#endif
    const IVAS_DEC_HANDLE hIvasDec,
    const bool quietModeEnabled,
    const bool voipMode )
{
#ifdef FIX_VOIP_FUNCTIONS
    if ( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }

#endif
    printConfigInfo_dec( hIvasDec->st_ivas, hIvasDec->bitstreamformat, voipMode, quietModeEnabled );

#ifdef FIX_VOIP_FUNCTIONS
    return IVAS_ERR_OK;
#else
    return;
#endif
}


Loading