Commit 0ce21ea8 authored by emerit's avatar emerit
Browse files

fix crend binary format

parent c35f194f
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -896,7 +896,7 @@ static ivas_error create_HRTF_from_rawdata(
{
    int16_t i, j, k;
    int16_t max_num_iterations_diffuse;
    uint16_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
    uint32_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
    uint32_t mem_size;
    char *hrtf_data_rptr;
    float *pOut_to_bin_wptr;
@@ -1011,8 +1011,8 @@ static ivas_error create_HRTF_from_rawdata(
    }

    /* max_total_num_fsamp_per_iteration */
    max_total_num_fsamp_per_iteration = *( (uint16_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint16_t );
    max_total_num_fsamp_per_iteration = *( (uint32_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint32_t );

    /* coeff_re (the size depends on pIndex_frequency_max) */
    for ( i = 0; i < ( *hHRTF )->max_num_ir; i++ )
@@ -1063,8 +1063,8 @@ static ivas_error create_HRTF_from_rawdata(
    }

    /* max_total_num_fsamp_per_iteration_diff */
    max_total_num_fsamp_per_iteration_diff = *( (uint16_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint16_t );
    max_total_num_fsamp_per_iteration_diff = *( (uint32_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint32_t );

    if ( max_total_num_fsamp_per_iteration_diff != 0 )
    {
@@ -1128,7 +1128,7 @@ static ivas_error create_HRTF_from_rawdata_fx(
{
    int16_t i, j, k;
    int16_t max_num_iterations_diffuse;
    uint16_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
    uint32_t max_total_num_fsamp_per_iteration, max_total_num_fsamp_per_iteration_diff;
    uint32_t mem_size, l;
    char *hrtf_data_rptr;
    float *pOut_to_bin_wptr;
@@ -1253,8 +1253,8 @@ static ivas_error create_HRTF_from_rawdata_fx(
    }

    /* max_total_num_fsamp_per_iteration */
    max_total_num_fsamp_per_iteration = *( (uint16_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint16_t );
    max_total_num_fsamp_per_iteration = *( (uint32_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint32_t );
    factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( Word16 );

@@ -1318,8 +1318,8 @@ static ivas_error create_HRTF_from_rawdata_fx(
    }

    /* max_total_num_fsamp_per_iteration_diff */
    max_total_num_fsamp_per_iteration_diff = *( (uint16_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint16_t );
    max_total_num_fsamp_per_iteration_diff = *( (uint32_t *) ( hrtf_data_rptr ) );
    hrtf_data_rptr += sizeof( uint32_t );

    if ( max_total_num_fsamp_per_iteration_diff != 0 )
    {
+8 −16
Original line number Diff line number Diff line
@@ -102,8 +102,8 @@ typedef struct _crend_hrtf_tables_dimensions
    int16_t max_num_ir;
    int16_t max_num_iterations;
    int16_t max_num_iterations_diffuse;
    uint16_t max_total_num_fsamp_per_iteration;
    uint16_t max_total_num_fsamp_per_iteration_diff;
    uint32_t max_total_num_fsamp_per_iteration;
    uint32_t max_total_num_fsamp_per_iteration_diff;

} crend_hrtf_tables_dimensions;

@@ -1398,19 +1398,11 @@ char *create_hrtf_parametric( int32_t *hrtf_size )

        if ( is_fx == 1 )
        {
#ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT
            *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC + DEFAULT_BIN_FILE_FX_FLAG;
#else
            *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM + DEFAULT_BIN_FILE_FX_FLAG;
#endif
        }
        else
        {
#ifdef FIX_CREND_FIX_POINT_HRTF_FILE_FORMAT
            *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC;
#else
            *( (int32_t *) ( hrtf_wptr ) ) = HRTF_READER_RENDERER_BINAURAL_PARAMETRIC_ROOM;
#endif
        }
        hrtf_wptr += sizeof( int32_t );

@@ -1649,7 +1641,7 @@ int16_t get_crend_hrtf_tables( HRTF_READER_RENDERER_TYPE rend_type, BINAURAL_INP
{
    int16_t result = -1;
    uint16_t iChan, iIR, iIter, iIndex, max_num_iterations;
    uint16_t total_num_fsamp_per_iteration, total_num_fsamp_per_iteration_diff;
    uint32_t total_num_fsamp_per_iteration, total_num_fsamp_per_iteration_diff;

    crend_hrtf_tables_pointers hrtf_table_ptrs_out;
    crend_hrtf_tables_dimensions hrtf_table_dims_out;
@@ -2093,7 +2085,7 @@ 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
    hrtf_data_size += sizeof( uint16_t );                                                 // max_total_num_fsamp_per_iteration
    hrtf_data_size += sizeof( uint32_t );                                                 // max_total_num_fsamp_per_iteration

    hrtf_data_size += sizeof( Word16 ); // filters factor Q
    // coeff_re & coeff_im : The size depends on pIndex_frequency_max
@@ -2108,7 +2100,7 @@ int32_t compute_crend_hrtf_data_size_fx( crend_hrtf_tables_pointers *hrtf_table_
        }
    }

    hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff
    hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff
    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
@@ -2158,7 +2150,7 @@ 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
    hrtf_data_size += sizeof( uint16_t );                                                // max_total_num_fsamp_per_iteration
    hrtf_data_size += sizeof( uint32_t );                                                // max_total_num_fsamp_per_iteration
    // coeff_re & coeff_im : The size depends on pIndex_frequency_max
    for ( iIR = 0, iIndex = 0; iIR < hrtf_table_dims->max_num_ir; iIR++ )
    {
@@ -2171,7 +2163,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr
        }
    }

    hrtf_data_size += sizeof( uint16_t ); // max_total_num_fsamp_per_iteration_diff
    hrtf_data_size += sizeof( uint32_t ); // max_total_num_fsamp_per_iteration_diff
    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
@@ -2484,7 +2476,7 @@ 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
    if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint16_t *) ( hrtf_data_in_rptr ) ) )
    if ( tabs_dims.max_total_num_fsamp_per_iteration != *( (uint32_t *) ( hrtf_data_in_rptr ) ) )
    {
        fprintf( stderr, "check_hrtf_data of binary file failed: bad max_total_num_fsamp_per_iteration!\n\n" );
        return -1;
Loading