Loading lib_com/options.h +3 −1 Original line number Diff line number Diff line Loading @@ -161,7 +161,9 @@ #define FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK /* VA: issue 1081: correct error print-out when BINAURAL_SPLIT_PCM is requested */ #endif #define FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT /* Orange issue 1031 : fix point hrtf binary file format */ #define FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT /* Orange issue 1031 : new fix point hrtf binary file format */ #define FIX_CREND_SIMPLIFY_CODE /* Ora : simplify line code in crend */ #define FLOAT_FIX_POINT_HRTF_FILE_FORMAT /* allows reading floation or fix point hrtf binary file format */ #define FIX_TDREND_HRTF_FILE_FORMAT /* Eri: fix point hrtf binary file format for TDREND */ #define FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ #define CONF_DISTATT /* Eri: Make distance attenuation configurable */ Loading lib_rend/ivas_crend.c +5 −5 Original line number Diff line number Diff line Loading @@ -1642,7 +1642,7 @@ static ivas_error ivas_rend_crendConvolver( const float *pIn; float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_buf2_re, *pFreq_buf2_im; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE float *pFreq_filt_re, *pFreq_filt_im; #else const float *pFreq_filt_re, *pFreq_filt_im; Loading Loading @@ -1698,7 +1698,7 @@ static ivas_error ivas_rend_crendConvolver( } i = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { if ( pCrend->hHrtfCrend->same_inv_diffuse_weight ) Loading @@ -1724,7 +1724,7 @@ static ivas_error ivas_rend_crendConvolver( { if ( pCrend->hHrtfCrend->same_inv_diffuse_weight ) { #ifndef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifndef FIX_CREND_SIMPLIFY_CODE pFreq_buf_re = &hCrend->freq_buffer_re_diffuse[0][offset_diffuse]; pFreq_buf_im = &hCrend->freq_buffer_im_diffuse[0][offset_diffuse]; #endif Loading @@ -1739,7 +1739,7 @@ static ivas_error ivas_rend_crendConvolver( } else { #ifndef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifndef FIX_CREND_SIMPLIFY_CODE pFreq_buf_re = &hCrend->freq_buffer_re_diffuse[0][offset_diffuse]; pFreq_buf_im = &hCrend->freq_buffer_im_diffuse[0][offset_diffuse]; pFreq_buf2_re = &hCrend->freq_buffer_re_diffuse[1][offset_diffuse]; Loading @@ -1757,7 +1757,7 @@ static ivas_error ivas_rend_crendConvolver( } } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE pFreq_filt_re = &hCrend->freq_buffer_re[i][offset]; pFreq_filt_im = &hCrend->freq_buffer_im[i][offset]; Loading lib_util/hrtf_file_reader.c +77 −23 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ #include "hrtf_file_reader.h" #include <string.h> #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #include <math.h> #endif #include "prot.h" Loading Loading @@ -65,7 +65,7 @@ typedef struct ivas_hrtfs_file_header_t #define RESAMPLE_FACTOR_16_48 ( 16.0f / 48.0f ) #define RESAMPLE_FACTOR_32_48 ( 32.0f / 48.0f ) #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #define DEFAULT_BIN_FILE_FX_FLAG 0x1000 #endif /*---------------------------------------------------------------------* Loading Loading @@ -228,7 +228,7 @@ static ivas_error check_hrtf_binary_header( static ivas_error read_hrtf_binary_header( ivas_hrtfs_header_t *hrtf_header, #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t *is_fix_point, #endif FILE *f_hrtf ) Loading @@ -238,12 +238,12 @@ static ivas_error read_hrtf_binary_header( /* Input configuration (4 bytes) : See "BINAURAL_INPUT_AUDIO_CONFIG" */ /* Sampling Frequency (4 bytes) */ /* Raw data size (4 bytes) */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT *is_fix_point = 0; #endif if ( ( fread( &( hrtf_header->rend_type ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->input_cfg ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->frequency ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->data_size ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( hrtf_header->rend_type & DEFAULT_BIN_FILE_FX_FLAG ) { *is_fix_point = 1; Loading Loading @@ -272,12 +272,35 @@ static void LoadBSplineBinaryITD_fx( int16_t *v_tmp16; int16_t j; float q_scale; #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 ) ); fread( modelITD->elevKSeq_dyn, sizeof( float ), modelITD->elevDim3 - 2, f_hrtf ); v_tmp16 = (int16_t *) malloc( ( modelITD->elevDim3 - 2 ) * 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 ), modelITD->elevDim3 - 2, f_hrtf ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } fread( &modelITD->azimDim3, sizeof( int16_t ), 1, f_hrtf ); modelITD->azimKSeq_dyn = (float *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * sizeof( float ) ); /* basis functions are flipped around 180 deg, number of basis functions above/below is (N+1)/2 */ v_tmp16 = (int16_t *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * 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 ), ( modelITD->azimDim3 + 1 ) / 2 - 2, f_hrtf ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } #else fread( &modelITD->N, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevDim2, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevDim3, sizeof( int16_t ), 1, f_hrtf ); modelITD->elevKSeq_dyn = (float *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( float ) ); v_tmp16 = (int16_t *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( int16_t ) ); fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); q_scale = powf( 2.f, -1.f * (float) factor_Q ); Loading @@ -299,7 +322,7 @@ static void LoadBSplineBinaryITD_fx( { modelITD->azimKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } #endif fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); modelITD->W_dyn = (float *) malloc( tmp * sizeof( float ) ); Loading Loading @@ -411,6 +434,7 @@ 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 */ Loading Loading @@ -505,6 +529,22 @@ 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_989_TD_REND_ROM fread( &model->K, sizeof( int16_t ), 1, f_hrtf ); fread( &model->elevDim3, sizeof( int16_t ), 1, f_hrtf ); model->elevKSeq_dyn = (float *) malloc( ( model->elevDim3 - 2 ) * sizeof( float ) ); fread( model->elevKSeq_dyn, sizeof( float ), model->elevDim3 - 2, f_hrtf ); v_tmp16 = (int16_t *) malloc( ( model->elevDim3 - 2 ) * 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 ), model->elevDim3 - 2, f_hrtf ); for ( j = 0; j < model->elevDim3 - 2; j++ ) { model->elevKSeq_dyn[j] = ( (float) v_tmp16[j] * q_scale ); } free( v_tmp16 ); #else fread( &model->SplineDegree, sizeof( int16_t ), 1, f_hrtf ); fread( &model->K, sizeof( int16_t ), 1, f_hrtf ); Loading @@ -523,13 +563,16 @@ static ivas_error LoadBSplineBinary_fx( free( v_tmp16 ); model->azimDim2_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); #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++ ) { #ifndef FIX_989_TD_REND_ROM fread( &model->azimDim2_dyn[i], sizeof( int16_t ), 1, f_hrtf ); #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 ); model->azimKSeq[i] = (float *) malloc( ( model->azimDim3_dyn[i] + 1 ) * sizeof( float ) ); Loading Loading @@ -615,7 +658,9 @@ static ivas_error LoadBSplineBinary_fx( model->ER = (const float *) model->ER_dyn; model->elevBsShape = (const float *) model->elevBsShape_dyn; model->elevKSeq = (const float *) model->elevKSeq_dyn; #ifndef FIX_989_TD_REND_ROM model->azimDim2 = (const int16_t *) model->azimDim2_dyn; #endif model->azimDim3 = (const int16_t *) model->azimDim3_dyn; model->azim_start_idx = (const int16_t *) model->azim_start_idx_dyn; model->azimSegSamples = (const int16_t *) model->azimSegSamples_dyn; Loading Loading @@ -660,6 +705,7 @@ 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 */ Loading Loading @@ -712,7 +758,6 @@ 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++ ) { Loading @@ -737,7 +782,6 @@ 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 ); Loading Loading @@ -828,7 +872,7 @@ static ivas_error load_reverb_from_binary( int32_t hrtf_data_size_max; char *hrtf_data; int16_t lr_iac_len; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; int16_t ind; Word16 factorQ; Loading Loading @@ -872,7 +916,7 @@ static ivas_error load_reverb_from_binary( for ( hrtf_id = 0; ( hrtf_id < hrtfs_file_header.nb_hrtf ) && ( !is_reverb ); hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -911,7 +955,7 @@ static ivas_error load_reverb_from_binary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { fread( &factorQ, sizeof( Word16 ), 1, f_hrtf ); Loading Loading @@ -991,7 +1035,7 @@ static ivas_error TDREND_MIX_LoadHRTF( ivas_hrtfs_header_t hrtf_header; int32_t hrtf_data_size_max; char *hrtf_data; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -1039,7 +1083,7 @@ static ivas_error TDREND_MIX_LoadHRTF( for ( hrtf_id = 0; ( hrtf_id < hrtfs_file_header.nb_hrtf ) && ( !is_tdrend ); hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -1386,8 +1430,13 @@ static ivas_error create_HRTF_from_rawdata( } /* max_total_num_fsamp_per_iteration */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT max_total_num_fsamp_per_iteration = *( (uint32_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint32_t ); #else max_total_num_fsamp_per_iteration = *( (uint16_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint16_t ); #endif /* coeff_re (the size depends on pIndex_frequency_max) */ for ( i = 0; i < ( *hHRTF )->max_num_ir; i++ ) Loading Loading @@ -1438,8 +1487,13 @@ static ivas_error create_HRTF_from_rawdata( } /* max_total_num_fsamp_per_iteration_diff */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT max_total_num_fsamp_per_iteration_diff = *( (uint32_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint32_t ); #else max_total_num_fsamp_per_iteration_diff = *( (uint16_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint16_t ); #endif if ( max_total_num_fsamp_per_iteration_diff != 0 ) { Loading Loading @@ -1489,7 +1543,7 @@ static ivas_error create_HRTF_from_rawdata( return IVAS_ERR_OK; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT /*---------------------------------------------------------------------* * create_HRTF_from_rawdata_fx() * Loading Loading @@ -2699,7 +2753,7 @@ ivas_error load_fastconv_HRTF_from_binary( ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; int16_t asFastconv = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -2728,7 +2782,7 @@ ivas_error load_fastconv_HRTF_from_binary( /* Read & load */ for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading @@ -2746,7 +2800,7 @@ ivas_error load_fastconv_HRTF_from_binary( return IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { /* Create the HRTF reading the raw data from the binary file */ Loading Loading @@ -2875,7 +2929,7 @@ ivas_error load_parambin_HRTF_from_binary( ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; int16_t asParam = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -2906,7 +2960,7 @@ ivas_error load_parambin_HRTF_from_binary( for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -2983,7 +3037,7 @@ ivas_error create_SetOfHRTF_from_binary( ivas_error header_check_result; ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -3015,7 +3069,7 @@ ivas_error create_SetOfHRTF_from_binary( for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -3064,7 +3118,7 @@ ivas_error create_SetOfHRTF_from_binary( if ( hHRTF != NULL ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { /* Create the HRTF reading the raw data from the binary file */ Loading scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +60 −20 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ #include "ivas_stat_dec.h" #include "hrtf_file_reader.h" #include "ivas_rom_rend.h" #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #include <math.h> #endif Loading @@ -60,7 +60,7 @@ #define DEFAULT_BIN_FILE_EXT ".bin" #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #define DEFAULT_BIN_FILE_FX_FLAG 0x1000 #endif Loading Loading @@ -102,8 +102,13 @@ typedef struct _crend_hrtf_tables_dimensions int16_t max_num_ir; int16_t max_num_iterations; int16_t max_num_iterations_diffuse; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT uint32_t max_total_num_fsamp_per_iteration; uint32_t max_total_num_fsamp_per_iteration_diff; #else uint16_t max_total_num_fsamp_per_iteration; uint16_t max_total_num_fsamp_per_iteration_diff; #endif } crend_hrtf_tables_dimensions; Loading Loading @@ -145,7 +150,7 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD int16_t get_crend_hrtf_tables( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUDIO_CONFIG input_cfg, int32_t frequency, crend_hrtf_tables_pointers *hrtf_table_ptrs /*OUT*/, crend_hrtf_tables_dimensions *hrtf_table_dims /*OUT*/ ); int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptrs, crend_hrtf_tables_dimensions *hrtf_table_dims ); #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ptrs, crend_hrtf_tables_dimensions *hrtf_table_dims ); #endif /*---------------------------------------------------------------------* Loading Loading @@ -622,7 +627,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { int32_t mixerconv_hrtf_header_size, mixerconv_hrtf_data_size; char *mixerconv_hrtf = NULL, *mixerconv_hrtf_wptr; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -652,7 +657,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { configuration_name = "HOA3_HRIR"; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_mixerconv_bin_hrir_file_name, "_fx" ) ) { input_mixerconv_bin_hrir_file_name[strlen( input_mixerconv_bin_hrir_file_name ) - 3] = '\0'; Loading Loading @@ -701,7 +706,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { return NULL; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_mixerconv_bin_brir_file_name, "_fx" ) ) { input_mixerconv_bin_brir_file_name[strlen( input_mixerconv_bin_brir_file_name ) - 3] = '\0'; Loading Loading @@ -765,7 +770,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { rend_type = rend_type + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -951,12 +956,12 @@ char *create_reverb( int32_t frequency, int32_t *hrtf_size ) FILE *input_reverb_file = NULL; int32_t reverb_header_size, reverb_data_size; char *reverb = NULL, *reverb_wptr, *full_in_reverb_path = NULL; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif *hrtf_size = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_reverb_file_name, "_fx" ) ) { input_reverb_file_name[strlen( input_reverb_file_name ) - 3] = '\0'; Loading Loading @@ -1036,7 +1041,7 @@ char *create_reverb( int32_t frequency, int32_t *hrtf_size ) // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { *( (int32_t *) ( reverb_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_REVERB_ALL + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -1104,7 +1109,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ int32_t hrtf_total_file_size = 0, hrtf_data_size = 0; int16_t nbHrft = 0, ind; ivas_hrtfs_header_t hrtf_header; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -1159,7 +1164,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ // Get the HRTF raw data #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_fastconv_bin_file_name, "_fx" ) ) { is_fx = 1; Loading Loading @@ -1297,7 +1302,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { rend_type = rend_type + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -1357,7 +1362,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) int16_t i, j; FILE *input_param_bin_file = NULL; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT char hrtf_identifier[8] = ""; int16_t is_fx = 0; if ( strstr( input_param_bin_file_name, "_fx" ) ) Loading Loading @@ -1390,7 +1395,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) hrtf_data_size = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT input_param_bin_file = fopen( full_in_param_bin_path, "rb" ); Loading @@ -1417,6 +1422,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) memset( hrtf, 0x00, *hrtf_size ); hrtf_wptr = hrtf; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC + DEFAULT_BIN_FILE_FX_FLAG; Loading @@ -1425,6 +1431,16 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC; } #else if ( is_fx == 1 ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM + DEFAULT_BIN_FILE_FX_FLAG; } else { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM; } #endif hrtf_wptr += sizeof( int32_t ); // Decoder output format - not relevant parametric binaural renderer Loading Loading @@ -2069,7 +2085,7 @@ int16_t get_crend_hrtf_tables( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INP return result; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT /*---------------------------------------------------------------------* * compute_crend_hrtf_data_size_fx() * Loading Loading @@ -2106,7 +2122,11 @@ int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ hrtf_data_size += sizeof( uint16_t ); // index_frequency_max_diffuse hrtf_data_size += sizeof( Word16 ); // inv_diffuse_weight factor Q hrtf_data_size += hrtf_table_dims->max_num_ir * BINAURAL_CHANNELS * sizeof( Word16 ); // inv_diffuse_weight #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration #endif hrtf_data_size += sizeof( Word16 ); // filters factor Q // coeff_re & coeff_im : The size depends on pIndex_frequency_max Loading @@ -2121,7 +2141,11 @@ int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff #endif if ( hrtf_table_dims->max_total_num_fsamp_per_iteration_diff != 0 ) { // coeff_diffuse_re & coeff_diffuse_im : The size depends on pIndex_frequency_max Loading Loading @@ -2171,7 +2195,11 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr hrtf_data_size += sizeof( uint16_t ); // index_frequency_max_diffuse hrtf_data_size += hrtf_table_dims->max_num_ir * BINAURAL_CHANNELS * sizeof( float ); // inv_diffuse_weight #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration #endif // coeff_re & coeff_im : The size depends on pIndex_frequency_max for ( iIR = 0, iIndex = 0; iIR < hrtf_table_dims->max_num_ir; iIR++ ) { Loading @@ -2184,7 +2212,11 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff #endif if ( hrtf_table_dims->max_total_num_fsamp_per_iteration_diff != 0 ) { // coeff_diffuse_re & coeff_diffuse_im : The size depends on pIndex_frequency_max Loading Loading @@ -2359,7 +2391,7 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD return -1; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( rend_type & DEFAULT_BIN_FILE_FX_FLAG ) hrtf_data_size = compute_crend_hrtf_data_size_fx( &tabs_ptrs, &tabs_dims ); else Loading Loading @@ -2497,7 +2529,11 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD hrtf_data_in_rptr += ctrl_size; // max_total_num_fsamp_per_iteration #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint32_t *) ( hrtf_data_in_rptr ) ) ) #else if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint16_t *) ( hrtf_data_in_rptr ) ) ) #endif { fprintf( stderr, "check_hrtf_data of binary file failed: bad max_total_num_fsamp_per_iteration!\n\n" ); return -1; Loading Loading @@ -2570,7 +2606,11 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD } // max_total_num_fsamp_per_iteration_diff #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( tabs_dims.max_total_num_fsamp_per_iteration_diff != *( (uint32_t *) ( hrtf_data_in_rptr ) ) ) #else if ( tabs_dims.max_total_num_fsamp_per_iteration_diff != *( (uint16_t *) ( hrtf_data_in_rptr ) ) ) #endif { fprintf( stderr, "check_hrtf_data of binary file failed: bad max_total_num_fsamp_per_iteration_diff!\n\n" ); return -1; Loading scripts/binauralRenderer_interface/clearButKeepNeededVariables.m +1 −1 Original line number Diff line number Diff line clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$ clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|generate_BE|generateBinaryFile_fx|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$ Loading
lib_com/options.h +3 −1 Original line number Diff line number Diff line Loading @@ -161,7 +161,9 @@ #define FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK /* VA: issue 1081: correct error print-out when BINAURAL_SPLIT_PCM is requested */ #endif #define FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT /* Orange issue 1031 : fix point hrtf binary file format */ #define FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT /* Orange issue 1031 : new fix point hrtf binary file format */ #define FIX_CREND_SIMPLIFY_CODE /* Ora : simplify line code in crend */ #define FLOAT_FIX_POINT_HRTF_FILE_FORMAT /* allows reading floation or fix point hrtf binary file format */ #define FIX_TDREND_HRTF_FILE_FORMAT /* Eri: fix point hrtf binary file format for TDREND */ #define FIX_1053_REVERB_RECONFIGURATION /* Philips: issue 1053: fix for dynamic switching of acoustic environment */ #define CONF_DISTATT /* Eri: Make distance attenuation configurable */ Loading
lib_rend/ivas_crend.c +5 −5 Original line number Diff line number Diff line Loading @@ -1642,7 +1642,7 @@ static ivas_error ivas_rend_crendConvolver( const float *pIn; float *pFreq_buf_re, *pFreq_buf_im; float *pFreq_buf2_re, *pFreq_buf2_im; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE float *pFreq_filt_re, *pFreq_filt_im; #else const float *pFreq_filt_re, *pFreq_filt_im; Loading Loading @@ -1698,7 +1698,7 @@ static ivas_error ivas_rend_crendConvolver( } i = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) { if ( pCrend->hHrtfCrend->same_inv_diffuse_weight ) Loading @@ -1724,7 +1724,7 @@ static ivas_error ivas_rend_crendConvolver( { if ( pCrend->hHrtfCrend->same_inv_diffuse_weight ) { #ifndef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifndef FIX_CREND_SIMPLIFY_CODE pFreq_buf_re = &hCrend->freq_buffer_re_diffuse[0][offset_diffuse]; pFreq_buf_im = &hCrend->freq_buffer_im_diffuse[0][offset_diffuse]; #endif Loading @@ -1739,7 +1739,7 @@ static ivas_error ivas_rend_crendConvolver( } else { #ifndef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifndef FIX_CREND_SIMPLIFY_CODE pFreq_buf_re = &hCrend->freq_buffer_re_diffuse[0][offset_diffuse]; pFreq_buf_im = &hCrend->freq_buffer_im_diffuse[0][offset_diffuse]; pFreq_buf2_re = &hCrend->freq_buffer_re_diffuse[1][offset_diffuse]; Loading @@ -1757,7 +1757,7 @@ static ivas_error ivas_rend_crendConvolver( } } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FIX_CREND_SIMPLIFY_CODE pFreq_filt_re = &hCrend->freq_buffer_re[i][offset]; pFreq_filt_im = &hCrend->freq_buffer_im[i][offset]; Loading
lib_util/hrtf_file_reader.c +77 −23 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ #include "hrtf_file_reader.h" #include <string.h> #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #include <math.h> #endif #include "prot.h" Loading Loading @@ -65,7 +65,7 @@ typedef struct ivas_hrtfs_file_header_t #define RESAMPLE_FACTOR_16_48 ( 16.0f / 48.0f ) #define RESAMPLE_FACTOR_32_48 ( 32.0f / 48.0f ) #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #define DEFAULT_BIN_FILE_FX_FLAG 0x1000 #endif /*---------------------------------------------------------------------* Loading Loading @@ -228,7 +228,7 @@ static ivas_error check_hrtf_binary_header( static ivas_error read_hrtf_binary_header( ivas_hrtfs_header_t *hrtf_header, #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t *is_fix_point, #endif FILE *f_hrtf ) Loading @@ -238,12 +238,12 @@ static ivas_error read_hrtf_binary_header( /* Input configuration (4 bytes) : See "BINAURAL_INPUT_AUDIO_CONFIG" */ /* Sampling Frequency (4 bytes) */ /* Raw data size (4 bytes) */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT *is_fix_point = 0; #endif if ( ( fread( &( hrtf_header->rend_type ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->input_cfg ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->frequency ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) && ( fread( &( hrtf_header->data_size ), sizeof( int32_t ), 1, f_hrtf ) == 1 ) ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( hrtf_header->rend_type & DEFAULT_BIN_FILE_FX_FLAG ) { *is_fix_point = 1; Loading Loading @@ -272,12 +272,35 @@ static void LoadBSplineBinaryITD_fx( int16_t *v_tmp16; int16_t j; float q_scale; #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 ) ); fread( modelITD->elevKSeq_dyn, sizeof( float ), modelITD->elevDim3 - 2, f_hrtf ); v_tmp16 = (int16_t *) malloc( ( modelITD->elevDim3 - 2 ) * 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 ), modelITD->elevDim3 - 2, f_hrtf ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } fread( &modelITD->azimDim3, sizeof( int16_t ), 1, f_hrtf ); modelITD->azimKSeq_dyn = (float *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * sizeof( float ) ); /* basis functions are flipped around 180 deg, number of basis functions above/below is (N+1)/2 */ v_tmp16 = (int16_t *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * 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 ), ( modelITD->azimDim3 + 1 ) / 2 - 2, f_hrtf ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } #else fread( &modelITD->N, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevDim2, sizeof( int16_t ), 1, f_hrtf ); fread( &modelITD->elevDim3, sizeof( int16_t ), 1, f_hrtf ); modelITD->elevKSeq_dyn = (float *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( float ) ); v_tmp16 = (int16_t *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( int16_t ) ); fread( &factor_Q, 1, sizeof( int16_t ), f_hrtf ); q_scale = powf( 2.f, -1.f * (float) factor_Q ); Loading @@ -299,7 +322,7 @@ static void LoadBSplineBinaryITD_fx( { modelITD->azimKSeq_dyn[j] = ( (float) v_tmp16[j] ) * q_scale; } #endif fread( &tmp, sizeof( int16_t ), 1, f_hrtf ); modelITD->W_dyn = (float *) malloc( tmp * sizeof( float ) ); Loading Loading @@ -411,6 +434,7 @@ 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 */ Loading Loading @@ -505,6 +529,22 @@ 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_989_TD_REND_ROM fread( &model->K, sizeof( int16_t ), 1, f_hrtf ); fread( &model->elevDim3, sizeof( int16_t ), 1, f_hrtf ); model->elevKSeq_dyn = (float *) malloc( ( model->elevDim3 - 2 ) * sizeof( float ) ); fread( model->elevKSeq_dyn, sizeof( float ), model->elevDim3 - 2, f_hrtf ); v_tmp16 = (int16_t *) malloc( ( model->elevDim3 - 2 ) * 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 ), model->elevDim3 - 2, f_hrtf ); for ( j = 0; j < model->elevDim3 - 2; j++ ) { model->elevKSeq_dyn[j] = ( (float) v_tmp16[j] * q_scale ); } free( v_tmp16 ); #else fread( &model->SplineDegree, sizeof( int16_t ), 1, f_hrtf ); fread( &model->K, sizeof( int16_t ), 1, f_hrtf ); Loading @@ -523,13 +563,16 @@ static ivas_error LoadBSplineBinary_fx( free( v_tmp16 ); model->azimDim2_dyn = (int16_t *) malloc( model->elevDim3 * sizeof( int16_t ) ); #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++ ) { #ifndef FIX_989_TD_REND_ROM fread( &model->azimDim2_dyn[i], sizeof( int16_t ), 1, f_hrtf ); #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 ); model->azimKSeq[i] = (float *) malloc( ( model->azimDim3_dyn[i] + 1 ) * sizeof( float ) ); Loading Loading @@ -615,7 +658,9 @@ static ivas_error LoadBSplineBinary_fx( model->ER = (const float *) model->ER_dyn; model->elevBsShape = (const float *) model->elevBsShape_dyn; model->elevKSeq = (const float *) model->elevKSeq_dyn; #ifndef FIX_989_TD_REND_ROM model->azimDim2 = (const int16_t *) model->azimDim2_dyn; #endif model->azimDim3 = (const int16_t *) model->azimDim3_dyn; model->azim_start_idx = (const int16_t *) model->azim_start_idx_dyn; model->azimSegSamples = (const int16_t *) model->azimSegSamples_dyn; Loading Loading @@ -660,6 +705,7 @@ 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 */ Loading Loading @@ -712,7 +758,6 @@ 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++ ) { Loading @@ -737,7 +782,6 @@ 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 ); Loading Loading @@ -828,7 +872,7 @@ static ivas_error load_reverb_from_binary( int32_t hrtf_data_size_max; char *hrtf_data; int16_t lr_iac_len; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; int16_t ind; Word16 factorQ; Loading Loading @@ -872,7 +916,7 @@ static ivas_error load_reverb_from_binary( for ( hrtf_id = 0; ( hrtf_id < hrtfs_file_header.nb_hrtf ) && ( !is_reverb ); hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -911,7 +955,7 @@ static ivas_error load_reverb_from_binary( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { fread( &factorQ, sizeof( Word16 ), 1, f_hrtf ); Loading Loading @@ -991,7 +1035,7 @@ static ivas_error TDREND_MIX_LoadHRTF( ivas_hrtfs_header_t hrtf_header; int32_t hrtf_data_size_max; char *hrtf_data; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -1039,7 +1083,7 @@ static ivas_error TDREND_MIX_LoadHRTF( for ( hrtf_id = 0; ( hrtf_id < hrtfs_file_header.nb_hrtf ) && ( !is_tdrend ); hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -1386,8 +1430,13 @@ static ivas_error create_HRTF_from_rawdata( } /* max_total_num_fsamp_per_iteration */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT max_total_num_fsamp_per_iteration = *( (uint32_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint32_t ); #else max_total_num_fsamp_per_iteration = *( (uint16_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint16_t ); #endif /* coeff_re (the size depends on pIndex_frequency_max) */ for ( i = 0; i < ( *hHRTF )->max_num_ir; i++ ) Loading Loading @@ -1438,8 +1487,13 @@ static ivas_error create_HRTF_from_rawdata( } /* max_total_num_fsamp_per_iteration_diff */ #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT max_total_num_fsamp_per_iteration_diff = *( (uint32_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint32_t ); #else max_total_num_fsamp_per_iteration_diff = *( (uint16_t *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( uint16_t ); #endif if ( max_total_num_fsamp_per_iteration_diff != 0 ) { Loading Loading @@ -1489,7 +1543,7 @@ static ivas_error create_HRTF_from_rawdata( return IVAS_ERR_OK; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT /*---------------------------------------------------------------------* * create_HRTF_from_rawdata_fx() * Loading Loading @@ -2699,7 +2753,7 @@ ivas_error load_fastconv_HRTF_from_binary( ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; int16_t asFastconv = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -2728,7 +2782,7 @@ ivas_error load_fastconv_HRTF_from_binary( /* Read & load */ for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading @@ -2746,7 +2800,7 @@ ivas_error load_fastconv_HRTF_from_binary( return IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { /* Create the HRTF reading the raw data from the binary file */ Loading Loading @@ -2875,7 +2929,7 @@ ivas_error load_parambin_HRTF_from_binary( ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; int16_t asParam = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -2906,7 +2960,7 @@ ivas_error load_parambin_HRTF_from_binary( for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -2983,7 +3037,7 @@ ivas_error create_SetOfHRTF_from_binary( ivas_error header_check_result; ivas_hrtfs_file_header_t hrtfs_file_header; int16_t hrtf_id; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -3015,7 +3069,7 @@ ivas_error create_SetOfHRTF_from_binary( for ( hrtf_id = 0; hrtf_id < hrtfs_file_header.nb_hrtf; hrtf_id++ ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( read_hrtf_binary_header( &hrtf_header, &is_fx, f_hrtf ) != IVAS_ERR_OK ) #else if ( read_hrtf_binary_header( &hrtf_header, f_hrtf ) != IVAS_ERR_OK ) Loading Loading @@ -3064,7 +3118,7 @@ ivas_error create_SetOfHRTF_from_binary( if ( hHRTF != NULL ) { #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx ) { /* Create the HRTF reading the raw data from the binary file */ Loading
scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +60 −20 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ #include "ivas_stat_dec.h" #include "hrtf_file_reader.h" #include "ivas_rom_rend.h" #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #include <math.h> #endif Loading @@ -60,7 +60,7 @@ #define DEFAULT_BIN_FILE_EXT ".bin" #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT #define DEFAULT_BIN_FILE_FX_FLAG 0x1000 #endif Loading Loading @@ -102,8 +102,13 @@ typedef struct _crend_hrtf_tables_dimensions int16_t max_num_ir; int16_t max_num_iterations; int16_t max_num_iterations_diffuse; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT uint32_t max_total_num_fsamp_per_iteration; uint32_t max_total_num_fsamp_per_iteration_diff; #else uint16_t max_total_num_fsamp_per_iteration; uint16_t max_total_num_fsamp_per_iteration_diff; #endif } crend_hrtf_tables_dimensions; Loading Loading @@ -145,7 +150,7 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD int16_t get_crend_hrtf_tables( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUDIO_CONFIG input_cfg, int32_t frequency, crend_hrtf_tables_pointers *hrtf_table_ptrs /*OUT*/, crend_hrtf_tables_dimensions *hrtf_table_dims /*OUT*/ ); int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptrs, crend_hrtf_tables_dimensions *hrtf_table_dims ); #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ptrs, crend_hrtf_tables_dimensions *hrtf_table_dims ); #endif /*---------------------------------------------------------------------* Loading Loading @@ -622,7 +627,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { int32_t mixerconv_hrtf_header_size, mixerconv_hrtf_data_size; char *mixerconv_hrtf = NULL, *mixerconv_hrtf_wptr; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -652,7 +657,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { configuration_name = "HOA3_HRIR"; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_mixerconv_bin_hrir_file_name, "_fx" ) ) { input_mixerconv_bin_hrir_file_name[strlen( input_mixerconv_bin_hrir_file_name ) - 3] = '\0'; Loading Loading @@ -701,7 +706,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD { return NULL; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_mixerconv_bin_brir_file_name, "_fx" ) ) { input_mixerconv_bin_brir_file_name[strlen( input_mixerconv_bin_brir_file_name ) - 3] = '\0'; Loading Loading @@ -765,7 +770,7 @@ char *create_hrtf_crend( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { rend_type = rend_type + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -951,12 +956,12 @@ char *create_reverb( int32_t frequency, int32_t *hrtf_size ) FILE *input_reverb_file = NULL; int32_t reverb_header_size, reverb_data_size; char *reverb = NULL, *reverb_wptr, *full_in_reverb_path = NULL; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif *hrtf_size = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_reverb_file_name, "_fx" ) ) { input_reverb_file_name[strlen( input_reverb_file_name ) - 3] = '\0'; Loading Loading @@ -1036,7 +1041,7 @@ char *create_reverb( int32_t frequency, int32_t *hrtf_size ) // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { *( (int32_t *) ( reverb_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_REVERB_ALL + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -1104,7 +1109,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ int32_t hrtf_total_file_size = 0, hrtf_data_size = 0; int16_t nbHrft = 0, ind; ivas_hrtfs_header_t hrtf_header; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT int16_t is_fx = 0; #endif Loading Loading @@ -1159,7 +1164,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ // Get the HRTF raw data #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( strstr( input_fastconv_bin_file_name, "_fx" ) ) { is_fx = 1; Loading Loading @@ -1297,7 +1302,7 @@ char *create_hrtf_fastconv( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_ // Get the HRTF header // Renderer type #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { rend_type = rend_type + DEFAULT_BIN_FILE_FX_FLAG; Loading Loading @@ -1357,7 +1362,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) int16_t i, j; FILE *input_param_bin_file = NULL; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT char hrtf_identifier[8] = ""; int16_t is_fx = 0; if ( strstr( input_param_bin_file_name, "_fx" ) ) Loading Loading @@ -1390,7 +1395,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) hrtf_data_size = 0; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT input_param_bin_file = fopen( full_in_param_bin_path, "rb" ); Loading @@ -1417,6 +1422,7 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) memset( hrtf, 0x00, *hrtf_size ); hrtf_wptr = hrtf; #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( is_fx == 1 ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC + DEFAULT_BIN_FILE_FX_FLAG; Loading @@ -1425,6 +1431,16 @@ char *create_hrtf_parametric( int32_t *hrtf_size ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC; } #else if ( is_fx == 1 ) { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM + DEFAULT_BIN_FILE_FX_FLAG; } else { *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM; } #endif hrtf_wptr += sizeof( int32_t ); // Decoder output format - not relevant parametric binaural renderer Loading Loading @@ -2069,7 +2085,7 @@ int16_t get_crend_hrtf_tables( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INP return result; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT /*---------------------------------------------------------------------* * compute_crend_hrtf_data_size_fx() * Loading Loading @@ -2106,7 +2122,11 @@ int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ hrtf_data_size += sizeof( uint16_t ); // index_frequency_max_diffuse hrtf_data_size += sizeof( Word16 ); // inv_diffuse_weight factor Q hrtf_data_size += hrtf_table_dims->max_num_ir * BINAURAL_CHANNELS * sizeof( Word16 ); // inv_diffuse_weight #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration #endif hrtf_data_size += sizeof( Word16 ); // filters factor Q // coeff_re & coeff_im : The size depends on pIndex_frequency_max Loading @@ -2121,7 +2141,11 @@ int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_ } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff #endif if ( hrtf_table_dims->max_total_num_fsamp_per_iteration_diff != 0 ) { // coeff_diffuse_re & coeff_diffuse_im : The size depends on pIndex_frequency_max Loading Loading @@ -2171,7 +2195,11 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr hrtf_data_size += sizeof( uint16_t ); // index_frequency_max_diffuse hrtf_data_size += hrtf_table_dims->max_num_ir * BINAURAL_CHANNELS * sizeof( float ); // inv_diffuse_weight #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration #endif // coeff_re & coeff_im : The size depends on pIndex_frequency_max for ( iIR = 0, iIndex = 0; iIR < hrtf_table_dims->max_num_ir; iIR++ ) { Loading @@ -2184,7 +2212,11 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr } } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff #else hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff #endif if ( hrtf_table_dims->max_total_num_fsamp_per_iteration_diff != 0 ) { // coeff_diffuse_re & coeff_diffuse_im : The size depends on pIndex_frequency_max Loading Loading @@ -2359,7 +2391,7 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD return -1; } #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT #ifdef FLOAT_FIX_POINT_HRTF_FILE_FORMAT if ( rend_type & DEFAULT_BIN_FILE_FX_FLAG ) hrtf_data_size = compute_crend_hrtf_data_size_fx( &tabs_ptrs, &tabs_dims ); else Loading Loading @@ -2497,7 +2529,11 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD hrtf_data_in_rptr += ctrl_size; // max_total_num_fsamp_per_iteration #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint32_t *) ( hrtf_data_in_rptr ) ) ) #else if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint16_t *) ( hrtf_data_in_rptr ) ) ) #endif { fprintf( stderr, "check_hrtf_data of binary file failed: bad max_total_num_fsamp_per_iteration!\n\n" ); return -1; Loading Loading @@ -2570,7 +2606,11 @@ int16_t check_hrtf_data( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INPUT_AUD } // max_total_num_fsamp_per_iteration_diff #ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT if ( tabs_dims.max_total_num_fsamp_per_iteration_diff != *( (uint32_t *) ( hrtf_data_in_rptr ) ) ) #else if ( tabs_dims.max_total_num_fsamp_per_iteration_diff != *( (uint16_t *) ( hrtf_data_in_rptr ) ) ) #endif { fprintf( stderr, "check_hrtf_data of binary file failed: bad max_total_num_fsamp_per_iteration_diff!\n\n" ); return -1; Loading
scripts/binauralRenderer_interface/clearButKeepNeededVariables.m +1 −1 Original line number Diff line number Diff line clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$ clear -regexp ^((?!writeRomFileOutput|writeBinaryOutput|generate_BE|generateBinaryFile_fx|generateCustomBinaryFile|writeEachRendererBinaryOutput|rom_file|bin_file|hrir_file|brir_file|ivas_path|binary_path|output_bin_name|param_bin_file|fastconv_bin_file|td_binary_file|binary_name|rom_path).)*$