Commit 7860d475 authored by vaclav's avatar vaclav
Browse files

Merge branch '781-deallocation-of-handle-hismrendererdata' into 'main'

Resolve "Deallocation of handle 'hIsmRendererData'"

See merge request !1064
parents b34fc6df f80eaab5
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5276,6 +5276,12 @@ ivas_error ivas_ism_renderer_open(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                          */
);

#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
void ivas_ism_renderer_close(
    ISM_RENDERER_HANDLE *hIsmRendererData                       /* i/o: ISM renderer handle                             */
);
#endif

void ivas_ism_render(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                          */
    float *output_f[],                                          /* i/o: core-coder transport channels/object output     */
+2 −1
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@
#define FIX_518_ISM_BRIR_EXTREND                        /* FhG: fix issue #518, cleanup ISM to BINAURAL_ROOM_IR rendering in the external renderer */
#define FIX_764_HARM_CODE                               /* VA: issue 764: introduce new function for the same code block at four different places */
#define FIX_747_ISM_TODOS                               /* VA: issue 747 - address ISM ToDos */
#define FIX_ISMRENDERER_HANDLE_DEALLOC                  /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */


/* #################### End BE switches ################################## */
@@ -199,9 +200,9 @@
#define NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE    /* FhG: fix for cng in ISM DTX on sudden silence periods - JBM addon (issue 552) */
#define NONBE_FIX_738_SBA_BR_SW_ASAN                          /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */
#define NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING             /* VA: Issue 735: Resolve "HP20 filtering bug in SBA/OSBA bitrate switching" */

#define NONBE_FIX_588_UPDATE_FASTCONV_SD                      /* FhG: issue 588: update FastConv SD HRTFs in CLDFB domain with new conversion method */


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

/* ################## End DEVELOPMENT switches ######################### */
+4 −0
Original line number Diff line number Diff line
@@ -2550,12 +2550,16 @@ void ivas_destroy_dec(
    ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 );

    /* ISM renderer handle */
#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
    ivas_ism_renderer_close( &( st_ivas->hIsmRendererData ) );
#else
    if ( st_ivas->hIsmRendererData != NULL )
    {
        free( st_ivas->hIsmRendererData->interpolator );
        free( st_ivas->hIsmRendererData );
        st_ivas->hIsmRendererData = NULL;
    }
#endif

    /* DirAC handle */
    if ( st_ivas->ivas_format == ISM_FORMAT )
+9 −0
Original line number Diff line number Diff line
@@ -210,12 +210,17 @@ static ivas_error ivas_ism_bitrate_switching_dec(
        else
        {
            /* close the ISM renderer and reinitialize */
#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
            ivas_ism_renderer_close( &st_ivas->hIsmRendererData );
#else

            if ( st_ivas->hIsmRendererData != NULL )
            {
                free( st_ivas->hIsmRendererData->interpolator );
                free( st_ivas->hIsmRendererData );
                st_ivas->hIsmRendererData = NULL;
            }
#endif

            if ( ( error = ivas_ism_renderer_open( st_ivas ) ) != IVAS_ERR_OK )
            {
@@ -295,12 +300,16 @@ static ivas_error ivas_ism_bitrate_switching_dec(
        else
        {
            /* Close the ISM renderer */
#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
            ivas_ism_renderer_close( &st_ivas->hIsmRendererData );
#else
            if ( st_ivas->hIsmRendererData != NULL )
            {
                free( st_ivas->hIsmRendererData->interpolator );
                free( st_ivas->hIsmRendererData );
                st_ivas->hIsmRendererData = NULL;
            }
#endif
        }

        if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR )
+34 −0
Original line number Diff line number Diff line
@@ -108,6 +108,36 @@ ivas_error ivas_ism_renderer_open(
}


#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
/*-------------------------------------------------------------------------*
 * ivas_ism_renderer_close()
 *
 * Close struct for object rendering.
 *-------------------------------------------------------------------------*/

void ivas_ism_renderer_close(
    ISM_RENDERER_HANDLE *hIsmRendererData /* i/o: ISM renderer handle */
)
{
    if ( *hIsmRendererData == NULL || hIsmRendererData == NULL )
    {
        return;
    }

    if ( ( *hIsmRendererData )->interpolator != NULL )
    {
        free( ( *hIsmRendererData )->interpolator );
        ( *hIsmRendererData )->interpolator = NULL;
    }

    free( *hIsmRendererData );
    *hIsmRendererData = NULL;

    return;
}
#endif


/*-------------------------------------------------------------------------*
 * ivas_ism_render()
 *
@@ -440,6 +470,9 @@ void ivas_omasa_separate_object_renderer_close(
        }
    }

#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC
    ivas_ism_renderer_close( &st_ivas->hIsmRendererData );
#else
    if ( st_ivas->hIsmRendererData != NULL )
    {
        if ( st_ivas->hIsmRendererData->interpolator != NULL )
@@ -451,6 +484,7 @@ void ivas_omasa_separate_object_renderer_close(
        free( st_ivas->hIsmRendererData );
        st_ivas->hIsmRendererData = NULL;
    }
#endif

    return;
}
Loading