Commit 780ac23e authored by emerit's avatar emerit
Browse files

highlight changes

parent 11b78c28
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@
#define FIX_1082_INSTRUM_FAILED_LC3PLUS                 /* VoiceAge: issue 1082: fix ambiguous syntax in LC3Plus code leading to fails of instrumented builds */
#define FIX_1052_EXT_OUTPUT                             /* VA: issue 1052: define EXT decoder output configuration for stereo and MC formats */ 

#define FIX_989_TD_REND_ROM                             /* Eri: Clean-up for TD renderer and completion of ROM generation tool */
#define FIX_TDREND_HRTF_FILE_FORMAT_OR                  /* OR: highligth changes in  FIX_TDREND_HRTF_FILE_FORMAT */

#define FIX_1068_ASAN_IN_MC_2_BINAURAL_ROOM_IR          /* issue 1068 : Memory leak in MC to BINAURAL_ROOM decoding with bitrate switching*/

+124 −20
Original line number Diff line number Diff line
@@ -270,9 +270,12 @@ static void LoadBSplineBinaryITD_fx(
{
    int16_t tmp, factor_Q;
    int16_t *v_tmp16;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR
    int32_t *v_tmp32;
#endif
    int16_t j;
    float q_scale;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR
#ifdef FIX_989_TD_REND_ROM
    fread( &modelITD->elevDim3, sizeof( int16_t ), 1, f_hrtf );
    modelITD->elevKSeq_dyn = (float *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( float ) );
@@ -324,12 +327,14 @@ static void LoadBSplineBinaryITD_fx(
    {
        modelITD->azimKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale;
    }
#endif
#endif
    fread( &tmp, sizeof( int16_t ), 1, f_hrtf );
    modelITD->W_dyn = (float *) malloc( tmp * sizeof( float ) );

    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR    
    v_tmp32 = (int32_t *) malloc( tmp * sizeof( int32_t ) );
    fread( v_tmp32, sizeof( int32_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
@@ -337,8 +342,17 @@ static void LoadBSplineBinaryITD_fx(
        modelITD->W_dyn[j] = ( (float) v_tmp32[j] ) * q_scale;
    }
    free( v_tmp32 );
#else
    v_tmp16 = (int16_t *) malloc( tmp * sizeof( int16_t ) );
    fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        modelITD->W_dyn[j] = ( (float) v_tmp16[j] ) * q_scale;
    }
#endif

    /* azimuth */
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR   
#ifdef FIX_989_TD_REND_ROM
    modelITD->azimBsLen_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) );
    fread( modelITD->azimBsLen_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
@@ -348,11 +362,11 @@ static void LoadBSplineBinaryITD_fx(
    fread( modelITD->azimBsLen, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
    fread( modelITD->azimBsStart, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
#endif

#endif
    fread( &tmp, sizeof( int16_t ), 1, f_hrtf );

    modelITD->azimBsShape_dyn = (float *) malloc( tmp * sizeof( float ) );

#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
    v_tmp32 = (int32_t *) malloc( tmp * sizeof( int32_t ) );
    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
@@ -362,9 +376,20 @@ static void LoadBSplineBinaryITD_fx(
        modelITD->azimBsShape_dyn[j] = ( (float) v_tmp32[j] ) * q_scale;
    }
    free( v_tmp32 );
#else
    v_tmp16 = (int16_t *) malloc( tmp * sizeof( int16_t ) );
    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
    fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        modelITD->azimBsShape_dyn[j] = ( (float) v_tmp16[j] ) * q_scale;
    }
#endif
    fread( &modelITD->azimSegSamples, sizeof( int16_t ), 1, f_hrtf );

    /* elevation */
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
#ifdef FIX_989_TD_REND_ROM
    modelITD->elevBsLen_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) );
    fread( modelITD->elevBsLen_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
@@ -374,20 +399,30 @@ static void LoadBSplineBinaryITD_fx(
    fread( modelITD->elevBsLen, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
    fread( modelITD->elevBsStart, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
#endif

#endif
    fread( &tmp, sizeof( int16_t ), 1, f_hrtf );

    modelITD->elevBsShape_dyn = (float *) malloc( tmp * sizeof( float ) );

#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR    
    v_tmp32 = (int32_t *) malloc( tmp * sizeof( int32_t ) );
#endif
    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR    
    fread( v_tmp32, sizeof( int32_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        modelITD->elevBsShape_dyn[j] = ( (float) v_tmp32[j] ) * q_scale;
    }
    free( v_tmp32 );
#else
    fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        modelITD->elevBsShape_dyn[j] = ( (float) v_tmp16[j] ) * q_scale;
    }
#endif
    fread( &modelITD->elevSegSamples, sizeof( int16_t ), 1, f_hrtf );

    modelITD->elevKSeq = (const float *) modelITD->elevKSeq_dyn;
@@ -395,11 +430,13 @@ static void LoadBSplineBinaryITD_fx(
    modelITD->W = (const float *) modelITD->W_dyn;
    modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn;
    modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
#ifdef FIX_989_TD_REND_ROM
    modelITD->azimBsLen = (const int16_t *) modelITD->azimBsLen_dyn;
    modelITD->azimBsStart = (const int16_t *) modelITD->azimBsStart_dyn;
    modelITD->elevBsLen = (const int16_t *) modelITD->elevBsLen_dyn;
    modelITD->elevBsStart = (const int16_t *) modelITD->elevBsStart_dyn;
#endif
#endif

    return;
@@ -457,7 +494,6 @@ static void LoadBSplineBinaryITD(

    modelITD->azimBsShape_dyn = (float *) malloc( tmp * sizeof( float ) );
    fread( modelITD->azimBsShape_dyn, sizeof( float ), tmp, f_hrtf );

    fread( &modelITD->azimSegSamples, sizeof( int16_t ), 1, f_hrtf );

    /* elevation */
@@ -506,9 +542,11 @@ static ivas_error LoadBSplineBinary_fx(
)
{
    ModelParams_t *model;
    int16_t i, tmp16, factor_Q;
    int16_t i, tmp, factor_Q;
    int16_t *v_tmp16;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
    int32_t *v_tmp32;
#endif    
    int32_t j, tmp32;
    float q_scale;

@@ -524,9 +562,9 @@ static ivas_error LoadBSplineBinary_fx(
    model->modelROM = FALSE;

    fread( &model->UseItdModel, sizeof( int16_t ), 1, f_hrtf ); /* Indicates if ITD model is active */
    fread( &tmp16, sizeof( int16_t ), 1, f_hrtf );
    fread( &tmp, sizeof( int16_t ), 1, f_hrtf );

    switch ( tmp16 )
    switch ( tmp )
    {
        case 16:
            HrFiltSet_p->SampleRate = 16000;
@@ -553,6 +591,7 @@ static ivas_error LoadBSplineBinary_fx(
            return IVAS_ERROR( IVAS_ERR_INVALID_HRTF, "Error: HR filter file had an unsupported sampling rate (%d kHz)", tmp );
    }

#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
#ifdef FIX_989_TD_REND_ROM
    fread( &model->K, sizeof( int16_t ), 1, f_hrtf );
    fread( &model->elevDim3, sizeof( int16_t ), 1, f_hrtf );
@@ -586,6 +625,7 @@ static ivas_error LoadBSplineBinary_fx(
    free( v_tmp16 );

    model->azimDim2_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );
#endif
#endif
    model->azimDim3_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );
    model->azim_start_idx_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );
@@ -593,8 +633,10 @@ static ivas_error LoadBSplineBinary_fx(
    model->azimKSeq = (float **) malloc( model->elevDim3 * sizeof( float * ) );
    for ( i = 0; i < model->elevDim3; i++ )
    {
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
#ifndef FIX_989_TD_REND_ROM
        fread( &model->azimDim2_dyn[i], sizeof( int16_t ), 1, f_hrtf );
#endif
#endif
        fread( &model->azimDim3_dyn[i], sizeof( int16_t ), 1, f_hrtf );
        fread( &model->azim_start_idx_dyn[i], sizeof( int16_t ), 1, f_hrtf );
@@ -614,19 +656,31 @@ static ivas_error LoadBSplineBinary_fx(

    model->AlphaL_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) );

#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
    v_tmp32 = (int32_t *) malloc( model->AlphaN * model->K * sizeof( int32_t ) );
#else
    v_tmp16 = (int16_t *) malloc( model->AlphaN * model->K * sizeof( int16_t ) );
#endif
    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
    fread( v_tmp32, sizeof( int32_t ), model->AlphaN * model->K, f_hrtf );
    for ( j = 0; j < model->AlphaN * model->K; j++ )
    {
        model->AlphaL_dyn[j] = ( (float) ( v_tmp32[j] ) ) * q_scale; // Q14
    }

#else
    fread( v_tmp16, sizeof( int16_t ), model->AlphaN * model->K, f_hrtf );
    for ( j = 0; j < model->AlphaN * model->K; j++ )
    {
        model->AlphaL_dyn[j] = ( (float) ( v_tmp16[j] ) ) * q_scale; // Q14
    }
#endif
    model->AlphaR_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) );

    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
    fread( v_tmp32, sizeof( int32_t ), model->AlphaN * model->K, f_hrtf );
    for ( j = 0; j < model->AlphaN * model->K; j++ )
    {
@@ -634,7 +688,13 @@ static ivas_error LoadBSplineBinary_fx(
    }

    free( v_tmp32 );

#else
    fread( v_tmp16, sizeof( int16_t ), model->AlphaN * model->K, f_hrtf );
    for ( j = 0; j < model->AlphaN * model->K; j++ )
    {
        model->AlphaR_dyn[j] = ( (float) ( v_tmp16[j] ) ) * q_scale; // Q14
    }
#endif
    /* azimuth */
    fread( &model->num_unique_azim_splines, sizeof( int16_t ), 1, f_hrtf );
    model->azimBsShape = (const float **) malloc( model->num_unique_azim_splines * sizeof( float * ) );
@@ -643,18 +703,27 @@ static ivas_error LoadBSplineBinary_fx(

    for ( i = 0; i < model->num_unique_azim_splines; i++ )
    {
        fread( &tmp16, sizeof( int16_t ), 1, f_hrtf );
        model->azimBsShape_dyn[i] = (float *) malloc( tmp16 * sizeof( float ) );
        fread( &tmp, sizeof( int16_t ), 1, f_hrtf );
        model->azimBsShape_dyn[i] = (float *) malloc( tmp * sizeof( float ) );
        fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
        q_scale = powf( 2.f, -1.f * (float) factor_Q );
        v_tmp32 = (int32_t *) malloc( tmp16 * sizeof( int32_t ) );
        fread( v_tmp32, sizeof( int32_t ), tmp16, f_hrtf );
        for ( j = 0; j < tmp16; j++ )
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR 
        v_tmp32 = (int32_t *) malloc( tmp * sizeof( int32_t ) );
        fread( v_tmp32, sizeof( int32_t ), tmp, f_hrtf );
        for ( j = 0; j < tmp; j++ )
        {
            model->azimBsShape_dyn[i][j] = ( (float) ( v_tmp32[j] ) ) * q_scale;
        }
        fread( &model->azimSegSamples_dyn[i], sizeof( int16_t ), 1, f_hrtf );
        free( v_tmp32 );
#else
        fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf );
        for ( j = 0; j < tmp; j++ )
        {
            model->azimBsShape_dyn[i][j] = ( (float) ( v_tmp16[j] ) ) * q_scale;
        }
        fread( &model->azimSegSamples_dyn[i], sizeof( int16_t ), 1, f_hrtf );
#endif
    }

    model->azimShapeIdx_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );
@@ -663,6 +732,7 @@ static ivas_error LoadBSplineBinary_fx(
    fread( model->azimShapeSampFactor_dyn, sizeof( int16_t ), model->elevDim3, f_hrtf );

    /* elevation */
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
#ifdef FIX_989_TD_REND_ROM
    model->elevBsLen_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) );
    fread( model->elevBsLen_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
@@ -672,18 +742,30 @@ static ivas_error LoadBSplineBinary_fx(
    fread( model->elevBsLen, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
    fread( model->elevBsStart, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf );
#endif
    fread( &tmp16, sizeof( int16_t ), 1, f_hrtf );
    v_tmp32 = (int32_t *) malloc( tmp16 * sizeof( int32_t ) );
    model->elevBsShape_dyn = (float *) malloc( tmp16 * sizeof( float ) );
#endif
    fread( &tmp, sizeof( int16_t ), 1, f_hrtf );
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
    v_tmp32 = (int32_t *) malloc( tmp * sizeof( int32_t ) );
#endif
    model->elevBsShape_dyn = (float *) malloc( tmp * sizeof( float ) );

    fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf );
    q_scale = powf( 2.f, -1.f * (float) factor_Q );
    fread( v_tmp32, sizeof( int32_t ), tmp16, f_hrtf );
    for ( j = 0; j < tmp16; j++ )
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
    fread( v_tmp32, sizeof( int32_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        model->elevBsShape_dyn[j] = ( (float) ( v_tmp32[j] ) ) * q_scale;
    }
    free( v_tmp32 );
#else
    fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf );
    for ( j = 0; j < tmp; j++ )
    {
        model->elevBsShape_dyn[j] = ( (float) ( v_tmp16[j] ) ) * q_scale;
    }

#endif
    fread( &model->elevSegSamples, sizeof( int16_t ), 1, f_hrtf );

    /* Set const pointers */
@@ -691,14 +773,18 @@ static ivas_error LoadBSplineBinary_fx(
    model->AlphaR = (const float *) model->AlphaR_dyn;
    model->EL = (const float *) model->EL_dyn;
    model->ER = (const float *) model->ER_dyn;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
#ifdef FIX_989_TD_REND_ROM
    model->elevBsLen = (const int16_t *) model->elevBsLen_dyn;
    model->elevBsStart = (const int16_t *) model->elevBsStart_dyn;
#endif
#endif
    model->elevBsShape = (const float *) model->elevBsShape_dyn;
    model->elevKSeq = (const float *) model->elevKSeq_dyn;
#ifdef FIX_TDREND_HRTF_FILE_FORMAT_OR     
#ifndef FIX_989_TD_REND_ROM
    model->azimDim2 = (const int16_t *) model->azimDim2_dyn;
#endif
#endif
    model->azimDim3 = (const int16_t *) model->azimDim3_dyn;
    model->azim_start_idx = (const int16_t *) model->azim_start_idx_dyn;
@@ -723,6 +809,9 @@ static ivas_error LoadBSplineBinary_fx(
        LoadBSplineBinaryITD_fx( &HrFiltSet_p->ModelParamsITD, f_hrtf );
    }

#ifndef FIX_TDREND_HRTF_FILE_FORMAT_OR     
    free( v_tmp16 );
#endif
    return IVAS_ERR_OK;
}
#endif
@@ -742,7 +831,6 @@ static ivas_error LoadBSplineBinary(
    int16_t i, tmp;

    fread( &HrFiltSet_p->latency_s, sizeof( float ), 1, f_hrtf );

    model = &( HrFiltSet_p->ModelParams );

    /* Set ROM flag for correct deallocation */
@@ -795,6 +883,7 @@ static ivas_error LoadBSplineBinary(
#endif
    model->azimDim3_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );
    model->azim_start_idx_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) );

    model->azimKSeq = (float **) malloc( model->elevDim3 * sizeof( float * ) );
    for ( i = 0; i < model->elevDim3; i++ )
    {
@@ -819,6 +908,7 @@ static ivas_error LoadBSplineBinary(
    model->azimBsShape = (const float **) malloc( model->num_unique_azim_splines * sizeof( float * ) );
    model->azimBsShape_dyn = (float **) malloc( model->num_unique_azim_splines * sizeof( float * ) );
    model->azimSegSamples_dyn = (int16_t *) malloc( model->num_unique_azim_splines * sizeof( int16_t ) );

    for ( i = 0; i < model->num_unique_azim_splines; i++ )
    {
        fread( &tmp, sizeof( int16_t ), 1, f_hrtf );
@@ -1319,7 +1409,11 @@ void destroy_td_hrtf(
        }
        free( ( *hHrtf )->ModelParams.azimBsShape_dyn );

#ifndef FIX_TDREND_HRTF_FILE_FORMAT_OR   
        free( ( *hHrtf )->ModelParams.azimBsShape ); /* void* cast needed to please both gcc and Visual studio compilers. Deallocating const float** should be fine and gcc agrees, but Visual studio complains. */
#else
        free( (void *) ( *hHrtf )->ModelParams.azimBsShape ); /* void* cast needed to please both gcc and Visual studio compilers. Deallocating const float** should be fine and gcc agrees, but Visual studio complains. */
#endif
        for ( i = 0; i < ( *hHrtf )->ModelParams.elevDim3; i++ )
        {
            free( ( *hHrtf )->ModelParams.azimKSeq[i] );
@@ -1352,7 +1446,11 @@ static ivas_error create_HRTF_from_rawdata(
{
    int16_t i, j, k;
    int16_t max_num_iterations_diffuse;
#ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT
    uint32_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
#else
    uint16_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
#endif
    uint32_t mem_size;
    char *hrtf_data_rptr;
    float *pOut_to_bin_wptr;
@@ -2856,6 +2954,12 @@ ivas_error load_fastconv_HRTF_from_binary(
                    return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Could not create HRTF from binary file" );
                }
            }
#else
            if ( ( create_fastconv_HRTF_from_rawdata( &hHrtfFastConv, hrtf_data, hrtf_header.rend_type, hrtf_header.input_cfg ) ) != IVAS_ERR_OK )
            {
                free( hrtf_data );
                return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Could not create HRTF from binary file" );
            }
#endif
            asFastconv = 1;
        }
+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

+1 −1

File changed.

Contains only whitespace changes.

Loading