diff --git a/lib_com/options.h b/lib_com/options.h index ead32997853438346c7444d789de1726498b9756..4515831ae27e2025fdffbe39aa8bec6f50118550 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,6 +165,7 @@ #define FIX_1486_INIT_OUTPUT_POINTERS /* FhG: always initialize pointers in renderer flush */ #define FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR /* Dolby: Fix for issue 1449: renderer frame size unclear in ISAR */ #define FIX_1827_REMOVE_UNUSED_PSNOISEGEN_ISAR /* Dolby: remove unused noise generator from ISAR */ +#define FIX_1495_INCORRECT_FREAD_CALL /* Eri: Switched size and number of elements in fread call. */ #define FIX_1494_SET_SPLITBFI_UNUSED /* Dolby: Fix issue 1494, remove unused function setting BFI flag in ISAR renderer */ #define FIX_1479_MSAN_SPAR_UNINITIALIZED_VALUE /* Dolby: Fix for issue 1479, MSAN error due to uninitialized value in SPAR */ #define REMOVE_UNUSED_CODE_IVAS_DEC /* VA: remove unused code in ivas_jbm_dec_tc_fx() */ diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index e658000695cd80e3059376cd27820a726317d2e8..73e17ec5cde85a353a3bbd785ed2725a32184c2d 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -302,7 +302,11 @@ static ivas_error TDREND_LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), modelITD->elevDim3 - 2, f_hrtf ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) @@ -318,7 +322,11 @@ static ivas_error TDREND_LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), ( modelITD->azimDim3 + 1 ) / 2 - 2, f_hrtf ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) @@ -334,7 +342,11 @@ static ivas_error TDREND_LoadBSplineBinaryITD( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); v_tmp16 = (int16_t *) malloc( tmp * sizeof( int16_t ) ); if ( v_tmp16 == NULL ) @@ -369,7 +381,11 @@ static ivas_error TDREND_LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) @@ -406,7 +422,11 @@ static ivas_error TDREND_LoadBSplineBinaryITD( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) @@ -452,9 +472,17 @@ static ivas_error TDREND_LoadBSplineBinary( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &tmp32, sizeof( int32_t ), 1, f_hrtf ); +#else fread( &tmp32, 1, sizeof( int32_t ), f_hrtf ); +#endif HrFiltSet_p->latency_s = tmp32 * q_scale; model = &( HrFiltSet_p->ModelParams ); @@ -501,7 +529,11 @@ static ivas_error TDREND_LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), model->elevDim3 - 2, f_hrtf ); for ( j = 0; j < model->elevDim3 - 2; j++ ) @@ -529,7 +561,11 @@ static ivas_error TDREND_LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), ( model->azimDim3_dyn[i] + 1 ), f_hrtf ); for ( j = 0; j < model->azimDim3_dyn[i] + 1; j++ ) @@ -546,7 +582,11 @@ static ivas_error TDREND_LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), model->AlphaN * model->K, f_hrtf ); @@ -586,7 +626,11 @@ static ivas_error TDREND_LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); v_tmp16 = (int16_t *) malloc( tmp * sizeof( int16_t ) ); if ( v_tmp16 == NULL ) @@ -638,7 +682,11 @@ static ivas_error TDREND_LoadBSplineBinary( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( v_tmp16, sizeof( int16_t ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) @@ -654,7 +702,11 @@ static ivas_error TDREND_LoadBSplineBinary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } +#ifdef FIX_1495_INCORRECT_FREAD_CALL + fread( &factor_Q, sizeof( int16_t ), 1, f_hrtf ); +#else fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); +#endif q_scale = powf( 2.f, -1.f * factor_Q ); fread( (int32_t *) model->EL_dyn, sizeof( int32_t ), model->AlphaN * HRTF_MODEL_N_SECTIONS, f_hrtf ); @@ -903,7 +955,11 @@ static ivas_error TDREND_MIX_LoadHRTF( /* try if it is old format for BE tests*/ fseek( f_hrtf, 0, SEEK_SET ); +#ifdef FIX_1495_INCORRECT_FREAD_CALL + if ( fread( &tmp, sizeof( int16_t ), 1, f_hrtf ) == 0 ) +#else if ( fread( &tmp, 1, sizeof( int16_t ), f_hrtf ) == 0 ) +#endif { header_check_result = IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); } @@ -975,7 +1031,11 @@ static ivas_error TDREND_MIX_LoadHRTF( if ( is_tdrend ) { +#ifdef FIX_1495_INCORRECT_FREAD_CALL + if ( fread( &tmp, sizeof( int16_t ), 1, f_hrtf ) == 0 ) +#else if ( fread( &tmp, 1, sizeof( int16_t ), f_hrtf ) == 0 ) +#endif { return IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); }