Commit 88de5911 authored by Jan Kiene's avatar Jan Kiene
Browse files

Accept FIX_1585_ASAN_FORMAT_SW_ALT

parent 1b79fe99
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@
#define NONBE_FIX_ISSUE_2206_AVOID_OVERFLOW_MSVQ_Interpol_Tran_fx /* FhG: Fix saturation crash in MSVQ_Interpol_Tran_fx() */
#define NONBE_FIX_ISSUE_2206_SWB_EXPERIMENT_FIX_2527    /* Fix crash from issue #2527 */
#define FIX_FLOAT_1539_G192_FORMAT_SWITCH               /* VA/Nokia: reintroduce format switching for g192 bitstreams */
#define FIX_1585_ASAN_FORMAT_SW_ALT                     /* VA,FhG: float issues 1585,1593: alternative fix memory leaks with format switching */
#define FIX_BASOP_2573_RF_MODE_UPDATE                   /* FhG: BASOP issue 2573: remove duplicated update of rf_mode parameters from evs_enc_fx(); was already done in updt_enc_common_fx() */
#define FIX_2570_BUF_OVFL                               /* Orange: basop issue 2570: global-buffer-overflow in lib_rend/ivas_objectRenderer_sources_fx.c */
#define FIX_1550_WRONG_RENDER_FRAMESIZE_PRINTOUT        /* Dolby: float issue 1550: Wrong render framesize printout */
+0 −61
Original line number Diff line number Diff line
@@ -477,9 +477,6 @@ ivas_error ivas_hp20_dec_reconfig_fx(
)
{
    Word16 i, nchan_hp20;
#ifndef FIX_1585_ASAN_FORMAT_SW_ALT
    Word32 **old_mem_hp20_out_fx;
#endif
    ivas_error error;

    error = IVAS_ERR_OK;
@@ -493,7 +490,6 @@ ivas_error ivas_hp20_dec_reconfig_fx(

    IF( GT_16( nchan_hp20, nchan_hp20_old ) )
    {
#ifdef FIX_1585_ASAN_FORMAT_SW_ALT
        /* create additional hp20 memories */
        FOR( i = nchan_hp20_old; i < nchan_hp20; i++ )
        {
@@ -504,72 +500,15 @@ ivas_error ivas_hp20_dec_reconfig_fx(

            set32_fx( st_ivas->mem_hp20_out_fx[i], 0, L_HP20_MEM + 2 );
        }
#else
        /* save old mem_hp_20 pointer */
        old_mem_hp20_out_fx = st_ivas->mem_hp20_out_fx;
        st_ivas->mem_hp20_out_fx = NULL;

        IF( ( st_ivas->mem_hp20_out_fx = (Word32 **) malloc( nchan_hp20 * sizeof( Word32 * ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
        }

        FOR( i = 0; i < nchan_hp20_old; i++ )
        {
            st_ivas->mem_hp20_out_fx[i] = old_mem_hp20_out_fx[i];
            move32();
            old_mem_hp20_out_fx[i] = NULL;
        }
        /* create additional hp20 memories */
        FOR( ; i < nchan_hp20; i++ )
        {
            IF( ( st_ivas->mem_hp20_out_fx[i] = (Word32 *) malloc( ( L_HP20_MEM + 2 ) * sizeof( Word32 ) ) ) == NULL )
            {
                return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
            }

            set32_fx( st_ivas->mem_hp20_out_fx[i], 0, L_HP20_MEM + 2 );
        }

        free( old_mem_hp20_out_fx );
        old_mem_hp20_out_fx = NULL;
#endif
    }
    ELSE IF( LT_16( nchan_hp20, nchan_hp20_old ) )
    {
#ifdef FIX_1585_ASAN_FORMAT_SW_ALT
        /* remove superfluous hp20 memories */
        FOR( i = nchan_hp20; i < nchan_hp20_old; i++ )
        {
            free( st_ivas->mem_hp20_out_fx[i] );
            st_ivas->mem_hp20_out_fx[i] = NULL;
        }
#else
        /* save old mem_hp_20 pointer */
        old_mem_hp20_out_fx = st_ivas->mem_hp20_out_fx;
        st_ivas->mem_hp20_out_fx = NULL;

        IF( ( st_ivas->mem_hp20_out_fx = (Word32 **) malloc( nchan_hp20 * sizeof( Word32 * ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
        }

        FOR( i = 0; i < nchan_hp20; i++ )
        {
            st_ivas->mem_hp20_out_fx[i] = old_mem_hp20_out_fx[i];
            move32();
            old_mem_hp20_out_fx[i] = NULL;
        }
        /* remove superfluous hp20 memories */
        FOR( ; i < nchan_hp20_old; i++ )
        {
            free( old_mem_hp20_out_fx[i] );
            old_mem_hp20_out_fx[i] = NULL;
        }

        free( old_mem_hp20_out_fx );
        old_mem_hp20_out_fx = NULL;
#endif
    }

    return error;
+0 −31
Original line number Diff line number Diff line
@@ -2743,19 +2743,6 @@ ivas_error ivas_init_decoder_fx(
    /* set number of output channels used for synthesis/decoding */
    n = getNumChanSynthesis( st_ivas );

#ifndef FIX_1585_ASAN_FORMAT_SW_ALT
    IF( n > 0 )
    {
        IF( ( st_ivas->mem_hp20_out_fx = (Word32 **) malloc( n * sizeof( Word32 * ) ) ) == NULL )
        {
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) );
        }
    }
    ELSE
    {
        st_ivas->mem_hp20_out_fx = NULL;
    }
#endif
    FOR( i = 0; i < n; i++ )
    {
        IF( ( st_ivas->mem_hp20_out_fx[i] = (Word32 *) malloc( ( L_HP20_MEM + 2 ) * sizeof( Word32 ) ) ) == NULL )
@@ -3384,9 +3371,6 @@ void ivas_initialize_handles_dec(
        st_ivas->bit_stream = NULL;
#ifdef FIX_FMSW_DEC
    }
#endif
#ifndef FIX_1585_ASAN_FORMAT_SW_ALT
    st_ivas->mem_hp20_out_fx = NULL;
#endif
    st_ivas->hLimiter = NULL;

@@ -3461,9 +3445,7 @@ void ivas_initialize_handles_dec(
    FOR( i = 0; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ )
    {
        st_ivas->p_output_fx[i] = NULL;
#ifdef FIX_1585_ASAN_FORMAT_SW_ALT
        st_ivas->mem_hp20_out_fx[i] = NULL;
#endif
    }

    return;
@@ -3534,7 +3516,6 @@ void ivas_destroy_dec_fx(
    }

    /* HP20 filter handles */
#ifdef FIX_1585_ASAN_FORMAT_SW_ALT
    FOR( i = 0; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ )
    {
        IF( st_ivas->mem_hp20_out_fx[i] != NULL )
@@ -3543,18 +3524,6 @@ void ivas_destroy_dec_fx(
            st_ivas->mem_hp20_out_fx[i] = NULL;
        }
    }
#else
    IF( st_ivas->mem_hp20_out_fx != NULL )
    {
        FOR( i = 0; i < getNumChanSynthesis( st_ivas ); i++ )
        {
            free( st_ivas->mem_hp20_out_fx[i] );
            st_ivas->mem_hp20_out_fx[i] = NULL;
        }
        free( st_ivas->mem_hp20_out_fx );
        st_ivas->mem_hp20_out_fx = NULL;
    }
#endif

    /* ISM metadata handles */
    ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 );
+0 −4
Original line number Diff line number Diff line
@@ -1114,11 +1114,7 @@ typedef struct Decoder_Struct
    UWord16 *bit_stream;                                    /* Pointer to bitstream buffer */
    Word16 writeFECoffset;                                  /* parameter for debugging JBM stuff */
    
#ifdef FIX_1585_ASAN_FORMAT_SW_ALT
    Word32 *mem_hp20_out_fx[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS]; /* output signals HP filter memories */
#else
    Word32 **mem_hp20_out_fx;                               /* output signals HP filter memories */
#endif
    IVAS_LIMITER_HANDLE hLimiter;                           /* Limiter handle */

    /* core-decoder modules */