Loading lib_rend/ivas_dirac_dec_binaural_functions.c +22 −2 Original line number Diff line number Diff line Loading @@ -4960,7 +4960,7 @@ static void getDirectPartGains_fx( // aziDeg = L_shr(aziDeg_32, 22); } #ifdef FIX_POINT_HRTF_FILE_FORMAT hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, TRUE, hHrtfParambin ); hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, FALSE, hHrtfParambin ); #else hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, FALSE ); #endif Loading @@ -4987,6 +4987,12 @@ static void hrtfShGetHrtf_fx( ) { Word16 k; #ifdef FIX_POINT_HRTF_FILE_FORMAT Word16( *hrtfShCoeffsReInt )[16][60]; Word16( *hrtfShCoeffsImInt )[16][60]; hrtfShCoeffsReInt = hHrtfParambin->hrtfShCoeffsRe_fx; hrtfShCoeffsImInt = hHrtfParambin->hrtfShCoeffsIm_fx; #endif *lRealp = 0; *lImagp = 0; Loading @@ -5004,10 +5010,17 @@ static void hrtfShGetHrtf_fx( FOR( k = 0; k < HRTF_SH_CHANNELS; k++ ) { #ifdef FIX_POINT_HRTF_FILE_FORMAT *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28 #else *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsRe_fx[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsIm_fx[1][k][bin] ); // Q28 #endif move32(); move32(); move32(); Loading @@ -5026,10 +5039,17 @@ static void hrtfShGetHrtf_fx( FOR( k = 0; k < HRTF_SH_CHANNELS; k++ ) { #ifdef FIX_POINT_HRTF_FILE_FORMAT *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28 #else *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsRe_fx[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsIm_fx[1][k][bin] ); // Q28 #endif gainCache->shVec_fx[k] = shVec[k]; // Q29 move32(); move32(); Loading lib_rend/ivas_objectRenderer_hrFilt.c +15 −0 Original line number Diff line number Diff line Loading @@ -663,13 +663,24 @@ static void getStandardBSplineSampVec_fx( Word32 tmp32; /* assuming triple knot at the first knot */ #ifdef FIX_TDREND_HRTF_FILE_FORMAT Word32 tmp32_2; tmp32 = L_deposit_h( KSeq_fx[NumBFs - 3] ); tmp32_2 = L_deposit_h( KSeq_fx[0] ); knot_interval_fx = L_deposit_h( BASOP_Util_Divide3216_Scale( L_sub( tmp32, tmp32_2 ), sub( NumBFs, 3 ), &tmp_e1 ) ); #else knot_interval_fx = L_deposit_h( BASOP_Util_Divide3216_Scale( L_sub( KSeq_fx[NumBFs - 3], KSeq_fx[0] ), sub( NumBFs, 3 ), &tmp_e1 ) ); #endif tmp_e1 = add( tmp_e1, 9 - 15 ); /* index of closest sample point */ tmp32 = L_deposit_h( BASOP_Util_Divide3216_Scale( knot_interval_fx, SegSamples, &tmp_e2 ) ); tmp_e2 = add( tmp_e2, sub( tmp_e1, 15 ) ); #ifdef FIX_TDREND_HRTF_FILE_FORMAT tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, tmp32_2 ), tmp32, &tmp_e3 ) ); #else tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, KSeq_fx[0] ), tmp32, &tmp_e3 ) ); #endif tmp_e3 = add( tmp_e3, sub( 9, tmp_e2 ) ); tmp32 = L_shr( tmp32, sub( 9, tmp_e3 ) ); // Q22 (assuming tmp32 will be in range of Q22) d0 = extract_l( round_fixed( tmp32, 22 ) ); Loading Loading @@ -704,7 +715,11 @@ static void getStandardBSplineSampVec_fx( { d = sub( shl( sub( BsLen[shape_idx], 1 ), 1 ), d ); } #ifdef FIX_TDREND_HRTF_FILE_FORMAT BfVec_fx[i] = L_deposit_h( BsShape_fx[add( BsStart[shape_idx], abs_s( d ) )] ); /*TT, verify if abs is needed */ #else BfVec_fx[i] = BsShape_fx[add( BsStart[shape_idx], abs_s( d ) )]; /*TT, verify if abs is needed */ #endif move32(); NzIdx[i] = add( nI, i ); move16(); Loading lib_util/hrtf_file_reader.c +27 −27 Original line number Diff line number Diff line Loading @@ -405,49 +405,49 @@ static void LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->W_e, 1, sizeof( int16_t ), f_hrtf ); fread( &modelITD->W_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->W_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); modelITD->azimBsLen_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); modelITD->azimBsLen_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->azimBsLen_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->azimBsLen_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->azimBsStart_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( modelITD->azimBsLen_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->azimBsStart_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->azimBsStart_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->azimBsStart_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( modelITD->azimBsStart_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); /* azimuth */ fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); modelITD->azimBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( modelITD->azimBsShape_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->azimBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( modelITD->azimBsShape_dyn_fx, sizeof( int16_t ), tmp, f_hrtf ); fread( &modelITD->azimSegSamples, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->azimBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->azimBsShape_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); fread( &modelITD->azimSegSamples, sizeof( Word16 ), 1, f_hrtf ); /* elevation */ modelITD->elevBsLen_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); modelITD->elevBsLen_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->elevBsLen_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->elevBsLen_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->elevBsStart_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( modelITD->elevBsLen_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->elevBsStart_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->elevBsStart_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->elevBsStart_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( modelITD->elevBsStart_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); modelITD->elevBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( modelITD->elevBsShape_dyn_fx == NULL ) Loading @@ -455,10 +455,10 @@ static void LoadBSplineBinaryITD( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->elevBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( &modelITD->elevBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->elevBsShape_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); fread( &modelITD->elevSegSamples, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevSegSamples, sizeof( Word16 ), 1, f_hrtf ); modelITD->elevKSeq_fx = (const Word16 *) modelITD->elevKSeq_dyn_fx; modelITD->azimKSeq_fx = (const Word16 *) modelITD->azimKSeq_dyn_fx; Loading Loading @@ -641,10 +641,10 @@ static ivas_error LoadBSplineBinary( fread( model->AlphaR_dyn_fx, sizeof( Word16 ), model->AlphaN * model->K, f_hrtf ); /* azimuth */ fread( &model->num_unique_azim_splines, sizeof( int16_t ), 1, f_hrtf ); fread( &model->num_unique_azim_splines, sizeof( Word16 ), 1, f_hrtf ); model->azimBsShape_fx = (const Word16 **) malloc( model->num_unique_azim_splines * sizeof( Word16 * ) ); model->azimBsShape_dyn_fx = (Word16 **) malloc( model->num_unique_azim_splines * sizeof( Word16 * ) ); model->azimSegSamples_dyn = (int16_t *) malloc( model->num_unique_azim_splines * sizeof( int16_t ) ); model->azimSegSamples_dyn = (Word16 *) malloc( model->num_unique_azim_splines * sizeof( Word16 ) ); if ( model->azimBsShape_fx == NULL || model->azimBsShape_dyn_fx == NULL || model->azimSegSamples_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); Loading @@ -658,18 +658,18 @@ static ivas_error LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &model->azimBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( &model->azimBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( model->azimBsShape_dyn_fx[i], sizeof( Word16 ), tmp, f_hrtf ); fread( &model->azimSegSamples_dyn[i], sizeof( Word16 ), 1, f_hrtf ); } model->azimShapeIdx_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); model->azimShapeIdx_dyn = (Word16 *) malloc( model->elevDim3 * sizeof( Word16 ) ); if ( model->azimShapeIdx_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->azimShapeIdx_dyn, sizeof( int16_t ), model->elevDim3, f_hrtf ); model->azimShapeSampFactor_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); fread( model->azimShapeIdx_dyn, sizeof( Word16 ), model->elevDim3, f_hrtf ); model->azimShapeSampFactor_dyn = (Word16 *) malloc( model->elevDim3 * sizeof( Word16 ) ); if ( model->azimShapeSampFactor_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); Loading @@ -677,19 +677,19 @@ static ivas_error LoadBSplineBinary( fread( model->azimShapeSampFactor_dyn, sizeof( int16_t ), model->elevDim3, f_hrtf ); /* elevation */ model->elevBsLen_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); model->elevBsLen_dyn = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( model->elevBsLen_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->elevBsLen_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); model->elevBsStart_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( model->elevBsLen_dyn, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); model->elevBsStart_dyn = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( model->elevBsStart_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->elevBsStart_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( model->elevBsStart_dyn, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); model->elevBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( model->elevBsShape_dyn_fx == NULL ) Loading Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +22 −2 Original line number Diff line number Diff line Loading @@ -4960,7 +4960,7 @@ static void getDirectPartGains_fx( // aziDeg = L_shr(aziDeg_32, 22); } #ifdef FIX_POINT_HRTF_FILE_FORMAT hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, TRUE, hHrtfParambin ); hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, FALSE, hHrtfParambin ); #else hrtfShGetHrtf_fx( bin, aziDeg, eleDeg, lRealp, lImagp, rRealp, rImagp, gainCache, FALSE ); #endif Loading @@ -4987,6 +4987,12 @@ static void hrtfShGetHrtf_fx( ) { Word16 k; #ifdef FIX_POINT_HRTF_FILE_FORMAT Word16( *hrtfShCoeffsReInt )[16][60]; Word16( *hrtfShCoeffsImInt )[16][60]; hrtfShCoeffsReInt = hHrtfParambin->hrtfShCoeffsRe_fx; hrtfShCoeffsImInt = hHrtfParambin->hrtfShCoeffsIm_fx; #endif *lRealp = 0; *lImagp = 0; Loading @@ -5004,10 +5010,17 @@ static void hrtfShGetHrtf_fx( FOR( k = 0; k < HRTF_SH_CHANNELS; k++ ) { #ifdef FIX_POINT_HRTF_FILE_FORMAT *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28 #else *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsRe_fx[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsIm_fx[1][k][bin] ); // Q28 #endif move32(); move32(); move32(); Loading @@ -5026,10 +5039,17 @@ static void hrtfShGetHrtf_fx( FOR( k = 0; k < HRTF_SH_CHANNELS; k++ ) { #ifdef FIX_POINT_HRTF_FILE_FORMAT *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28 #else *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28 *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28 *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsRe_fx[1][k][bin] ); // Q28 *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsIm_fx[1][k][bin] ); // Q28 #endif gainCache->shVec_fx[k] = shVec[k]; // Q29 move32(); move32(); Loading
lib_rend/ivas_objectRenderer_hrFilt.c +15 −0 Original line number Diff line number Diff line Loading @@ -663,13 +663,24 @@ static void getStandardBSplineSampVec_fx( Word32 tmp32; /* assuming triple knot at the first knot */ #ifdef FIX_TDREND_HRTF_FILE_FORMAT Word32 tmp32_2; tmp32 = L_deposit_h( KSeq_fx[NumBFs - 3] ); tmp32_2 = L_deposit_h( KSeq_fx[0] ); knot_interval_fx = L_deposit_h( BASOP_Util_Divide3216_Scale( L_sub( tmp32, tmp32_2 ), sub( NumBFs, 3 ), &tmp_e1 ) ); #else knot_interval_fx = L_deposit_h( BASOP_Util_Divide3216_Scale( L_sub( KSeq_fx[NumBFs - 3], KSeq_fx[0] ), sub( NumBFs, 3 ), &tmp_e1 ) ); #endif tmp_e1 = add( tmp_e1, 9 - 15 ); /* index of closest sample point */ tmp32 = L_deposit_h( BASOP_Util_Divide3216_Scale( knot_interval_fx, SegSamples, &tmp_e2 ) ); tmp_e2 = add( tmp_e2, sub( tmp_e1, 15 ) ); #ifdef FIX_TDREND_HRTF_FILE_FORMAT tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, tmp32_2 ), tmp32, &tmp_e3 ) ); #else tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, KSeq_fx[0] ), tmp32, &tmp_e3 ) ); #endif tmp_e3 = add( tmp_e3, sub( 9, tmp_e2 ) ); tmp32 = L_shr( tmp32, sub( 9, tmp_e3 ) ); // Q22 (assuming tmp32 will be in range of Q22) d0 = extract_l( round_fixed( tmp32, 22 ) ); Loading Loading @@ -704,7 +715,11 @@ static void getStandardBSplineSampVec_fx( { d = sub( shl( sub( BsLen[shape_idx], 1 ), 1 ), d ); } #ifdef FIX_TDREND_HRTF_FILE_FORMAT BfVec_fx[i] = L_deposit_h( BsShape_fx[add( BsStart[shape_idx], abs_s( d ) )] ); /*TT, verify if abs is needed */ #else BfVec_fx[i] = BsShape_fx[add( BsStart[shape_idx], abs_s( d ) )]; /*TT, verify if abs is needed */ #endif move32(); NzIdx[i] = add( nI, i ); move16(); Loading
lib_util/hrtf_file_reader.c +27 −27 Original line number Diff line number Diff line Loading @@ -405,49 +405,49 @@ static void LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->W_e, 1, sizeof( int16_t ), f_hrtf ); fread( &modelITD->W_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->W_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); modelITD->azimBsLen_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); modelITD->azimBsLen_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->azimBsLen_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->azimBsLen_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->azimBsStart_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( modelITD->azimBsLen_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->azimBsStart_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->azimBsStart_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->azimBsStart_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( modelITD->azimBsStart_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); /* azimuth */ fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); modelITD->azimBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( modelITD->azimBsShape_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->azimBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( modelITD->azimBsShape_dyn_fx, sizeof( int16_t ), tmp, f_hrtf ); fread( &modelITD->azimSegSamples, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->azimBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->azimBsShape_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); fread( &modelITD->azimSegSamples, sizeof( Word16 ), 1, f_hrtf ); /* elevation */ modelITD->elevBsLen_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); modelITD->elevBsLen_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->elevBsLen_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->elevBsLen_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->elevBsStart_dyn_fx = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( modelITD->elevBsLen_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); modelITD->elevBsStart_dyn_fx = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( modelITD->elevBsStart_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( modelITD->elevBsStart_dyn_fx, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( modelITD->elevBsStart_dyn_fx, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); modelITD->elevBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( modelITD->elevBsShape_dyn_fx == NULL ) Loading @@ -455,10 +455,10 @@ static void LoadBSplineBinaryITD( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &modelITD->elevBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( &modelITD->elevBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( modelITD->elevBsShape_dyn_fx, sizeof( Word16 ), tmp, f_hrtf ); fread( &modelITD->elevSegSamples, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevSegSamples, sizeof( Word16 ), 1, f_hrtf ); modelITD->elevKSeq_fx = (const Word16 *) modelITD->elevKSeq_dyn_fx; modelITD->azimKSeq_fx = (const Word16 *) modelITD->azimKSeq_dyn_fx; Loading Loading @@ -641,10 +641,10 @@ static ivas_error LoadBSplineBinary( fread( model->AlphaR_dyn_fx, sizeof( Word16 ), model->AlphaN * model->K, f_hrtf ); /* azimuth */ fread( &model->num_unique_azim_splines, sizeof( int16_t ), 1, f_hrtf ); fread( &model->num_unique_azim_splines, sizeof( Word16 ), 1, f_hrtf ); model->azimBsShape_fx = (const Word16 **) malloc( model->num_unique_azim_splines * sizeof( Word16 * ) ); model->azimBsShape_dyn_fx = (Word16 **) malloc( model->num_unique_azim_splines * sizeof( Word16 * ) ); model->azimSegSamples_dyn = (int16_t *) malloc( model->num_unique_azim_splines * sizeof( int16_t ) ); model->azimSegSamples_dyn = (Word16 *) malloc( model->num_unique_azim_splines * sizeof( Word16 ) ); if ( model->azimBsShape_fx == NULL || model->azimBsShape_dyn_fx == NULL || model->azimSegSamples_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); Loading @@ -658,18 +658,18 @@ static ivas_error LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( &model->azimBsShape_e, 1, sizeof( int16_t ), f_hrtf ); fread( &model->azimBsShape_e, 1, sizeof( Word16 ), f_hrtf ); fread( model->azimBsShape_dyn_fx[i], sizeof( Word16 ), tmp, f_hrtf ); fread( &model->azimSegSamples_dyn[i], sizeof( Word16 ), 1, f_hrtf ); } model->azimShapeIdx_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); model->azimShapeIdx_dyn = (Word16 *) malloc( model->elevDim3 * sizeof( Word16 ) ); if ( model->azimShapeIdx_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->azimShapeIdx_dyn, sizeof( int16_t ), model->elevDim3, f_hrtf ); model->azimShapeSampFactor_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); fread( model->azimShapeIdx_dyn, sizeof( Word16 ), model->elevDim3, f_hrtf ); model->azimShapeSampFactor_dyn = (Word16 *) malloc( model->elevDim3 * sizeof( Word16 ) ); if ( model->azimShapeSampFactor_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); Loading @@ -677,19 +677,19 @@ static ivas_error LoadBSplineBinary( fread( model->azimShapeSampFactor_dyn, sizeof( int16_t ), model->elevDim3, f_hrtf ); /* elevation */ model->elevBsLen_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); model->elevBsLen_dyn = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( model->elevBsLen_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->elevBsLen_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); model->elevBsStart_dyn = (int16_t *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( int16_t ) ); fread( model->elevBsLen_dyn, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); model->elevBsStart_dyn = (Word16 *) malloc( HRTF_MODEL_BSPLINE_NUM_COEFFS * sizeof( Word16 ) ); if ( model->elevBsStart_dyn == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( model->elevBsStart_dyn, sizeof( int16_t ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); fread( model->elevBsStart_dyn, sizeof( Word16 ), HRTF_MODEL_BSPLINE_NUM_COEFFS, f_hrtf ); fread( &tmp, sizeof( Word16 ), 1, f_hrtf ); model->elevBsShape_dyn_fx = (Word16 *) malloc( tmp * sizeof( Word16 ) ); if ( model->elevBsShape_dyn_fx == NULL ) Loading