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

issue 781: harmonize Deallocation of handle 'hIsmRendererData'; under...

issue 781: harmonize Deallocation of handle 'hIsmRendererData'; under FIX_ISMRENDERER_HANDLE_DEALLOC
parent 006a21f5
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5267,6 +5267,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 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@
#define FIX_730_DPID_NOT_SET_CORRECTLY                  /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */

#define FIX_RAM_COUNTING_5MS_RENDERING                  /* FhG: fix for correct RAM reporting with 5ms rendering */
#define FIX_ISMRENDERER_HANDLE_DEALLOC                  /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */


/* #################### End BE switches ################################## */

+4 −0
Original line number Diff line number Diff line
@@ -2547,12 +2547,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 == 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