Commit 7ec0f1e3 authored by emerit's avatar emerit
Browse files

version ok

parent e73c67bf
Loading
Loading
Loading
Loading
+62 −24
Original line number Diff line number Diff line
@@ -707,7 +707,11 @@ ivas_error ivas_allocate_binaural_hrtf(
        }
    }

#ifdef FIX_1123_FASTCONV_16BIT_ROM
    if ( ( ( renderer_type == RENDERER_BINAURAL_FASTCONV ) && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) ) || ( ( renderer_type == RENDERER_BINAURAL_FASTCONV ) && ( input_config != IVAS_AUDIO_CONFIG_INVALID ) ) )
#else
    if ( renderer_type == RENDERER_BINAURAL_FASTCONV || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED )
#endif
    {
        if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) )
        {
@@ -749,7 +753,11 @@ ivas_error ivas_allocate_binaural_hrtf(
        }
    }

#ifdef FIX_1123_FASTCONV_16BIT_ROM
    if ( ( ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) && ( bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) ) || ( ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) && ( input_config != IVAS_AUDIO_CONFIG_INVALID ) ) )
#else
    if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED )
#endif
    {
        if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) )
        {
@@ -809,6 +817,7 @@ static ivas_error ivas_binaural_hrtf_open(
{
#ifdef FIX_1123_FASTCONV_16BIT_ROM
    int16_t i, j, k;
    float scaleFactor;
#else
    int16_t i, j;
#endif
@@ -873,6 +882,27 @@ static ivas_error ivas_binaural_hrtf_open(
        }

#ifdef FIX_1123_FASTCONV_16BIT_ROM
        if ( renderer_type == RENDERER_BINAURAL_FASTCONV )
        {
            scaleFactor = powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ );
        }
        else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM )
        {
            scaleFactor = powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ );
        }
        if ( input_config == IVAS_AUDIO_CONFIG_HOA3 )
        {
            scaleFactor = powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ );
        }
        else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 )
        {
            scaleFactor = powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ );
        }
        else if ( input_config == IVAS_AUDIO_CONFIG_FOA )
        {
            scaleFactor = powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ );
        }

        HrtfFastConv->allocate_init_flag = 0; /* TODO: consider getting rid of this flag entirely? */
#else
        HrtfFastConv->allocate_init_flag = 1;
@@ -891,10 +921,10 @@ static ivas_error ivas_binaural_hrtf_open(
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ )
                    {
                        HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ );
                        HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ );
                        HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ );
                        HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_factorQ );
                        HrtfFastConv->leftHRIRReal[i][j][k] = (float) leftHRIRReal[i][j][k] * scaleFactor;
                        HrtfFastConv->leftHRIRImag[i][j][k] = (float) leftHRIRImag[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRReal[i][j][k] = (float) rightHRIRReal[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRImag[i][j][k] = (float) rightHRIRImag[i][j][k] * scaleFactor;
                    }
#else
                    HrtfFastConv->leftHRIRReal[i][j] = leftHRIRReal[i][j];
@@ -911,10 +941,10 @@ static ivas_error ivas_binaural_hrtf_open(
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ )
                    {
                        HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ );
                        HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ );
                        HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ );
                        HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_BRIR_factorQ );
                        HrtfFastConv->leftBRIRReal[i][j][k] = (float) leftBRIRReal[i][j][k] * scaleFactor;
                        HrtfFastConv->leftBRIRImag[i][j][k] = (float) leftBRIRImag[i][j][k] * scaleFactor;
                        HrtfFastConv->rightBRIRReal[i][j][k] = (float) rightBRIRReal[i][j][k] * scaleFactor;
                        HrtfFastConv->rightBRIRImag[i][j][k] = (float) rightBRIRImag[i][j][k] * scaleFactor;
                    }
#else
                    HrtfFastConv->leftBRIRReal[i][j] = leftBRIRReal[i][j];
@@ -931,10 +961,10 @@ static ivas_error ivas_binaural_hrtf_open(
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    for ( k = 0; k < HrtfFastConv->ntaps_hrir_hoa3; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_HOA3[i][j][k] = (float) leftHRIRReal_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ );
                        HrtfFastConv->leftHRIRImag_HOA3[i][j][k] = (float) leftHRIRImag_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ );
                        HrtfFastConv->rightHRIRReal_HOA3[i][j][k] = (float) rightHRIRReal_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ );
                        HrtfFastConv->rightHRIRImag_HOA3[i][j][k] = (float) rightHRIRImag_HOA3[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA3_factorQ );
                        HrtfFastConv->leftHRIRReal_HOA3[i][j][k] = (float) leftHRIRReal_HOA3[i][j][k] * scaleFactor;
                        HrtfFastConv->leftHRIRImag_HOA3[i][j][k] = (float) leftHRIRImag_HOA3[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRReal_HOA3[i][j][k] = (float) rightHRIRReal_HOA3[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRImag_HOA3[i][j][k] = (float) rightHRIRImag_HOA3[i][j][k] * scaleFactor;
                    }
#else
                    HrtfFastConv->leftHRIRReal_HOA3[i][j] = leftHRIRReal_HOA3[i][j];
@@ -944,6 +974,9 @@ static ivas_error ivas_binaural_hrtf_open(
#endif
                }
            }
#ifdef FIX_1123_FASTCONV_16BIT_ROM
            else
#endif
                if ( input_config == IVAS_AUDIO_CONFIG_HOA2 )
            {
                for ( j = 0; j < HOA2_CHANNELS; j++ )
@@ -951,10 +984,10 @@ static ivas_error ivas_binaural_hrtf_open(
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    for ( k = 0; k < HrtfFastConv->ntaps_hrir_hoa2; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_HOA2[i][j][k] = (float) leftHRIRReal_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ );
                        HrtfFastConv->leftHRIRImag_HOA2[i][j][k] = (float) leftHRIRImag_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ );
                        HrtfFastConv->rightHRIRReal_HOA2[i][j][k] = (float) rightHRIRReal_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ );
                        HrtfFastConv->rightHRIRImag_HOA2[i][j][k] = (float) rightHRIRImag_HOA2[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_HOA2_factorQ );
                        HrtfFastConv->leftHRIRReal_HOA2[i][j][k] = (float) leftHRIRReal_HOA2[i][j][k] * scaleFactor;
                        HrtfFastConv->leftHRIRImag_HOA2[i][j][k] = (float) leftHRIRImag_HOA2[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRReal_HOA2[i][j][k] = (float) rightHRIRReal_HOA2[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRImag_HOA2[i][j][k] = (float) rightHRIRImag_HOA2[i][j][k] * scaleFactor;
                    }
#else
                    HrtfFastConv->leftHRIRReal_HOA2[i][j] = leftHRIRReal_HOA2[i][j];
@@ -964,6 +997,9 @@ static ivas_error ivas_binaural_hrtf_open(
#endif
                }
            }
#ifdef FIX_1123_FASTCONV_16BIT_ROM
            else
#endif
                if ( input_config == IVAS_AUDIO_CONFIG_FOA )
            {
                for ( j = 0; j < FOA_CHANNELS; j++ )
@@ -971,10 +1007,10 @@ static ivas_error ivas_binaural_hrtf_open(
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    for ( k = 0; k < HrtfFastConv->ntaps_hrir_foa; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_FOA[i][j][k] = (float) leftHRIRReal_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ );
                        HrtfFastConv->leftHRIRImag_FOA[i][j][k] = (float) leftHRIRImag_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ );
                        HrtfFastConv->rightHRIRReal_FOA[i][j][k] = (float) rightHRIRReal_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ );
                        HrtfFastConv->rightHRIRImag_FOA[i][j][k] = (float) rightHRIRImag_FOA[i][j][k] * powf( 2.f, -1.f * (float) FASTCONV_HRIR_FOA_factorQ );
                        HrtfFastConv->leftHRIRReal_FOA[i][j][k] = (float) leftHRIRReal_FOA[i][j][k] * scaleFactor;
                        HrtfFastConv->leftHRIRImag_FOA[i][j][k] = (float) leftHRIRImag_FOA[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRReal_FOA[i][j][k] = (float) rightHRIRReal_FOA[i][j][k] * scaleFactor;
                        HrtfFastConv->rightHRIRImag_FOA[i][j][k] = (float) rightHRIRImag_FOA[i][j][k] * scaleFactor;
                    }
#else
                    HrtfFastConv->leftHRIRReal_FOA[i][j] = leftHRIRReal_FOA[i][j];
@@ -986,13 +1022,15 @@ static ivas_error ivas_binaural_hrtf_open(
            }
        }
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) fastconvReverberationTimes_factorQ );
        for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ )
        {
            HrtfFastConv->fastconvReverberationTimes[i] = (float) fastconvReverberationTimes[i] * powf( 2.f, -1.f * (float) fastconvReverberationTimes_factorQ );
            HrtfFastConv->fastconvReverberationTimes[i] = (float) fastconvReverberationTimes[i] * scaleFactor;
        }
        scaleFactor = powf( 2.f, -1.f * (float) fastconvReverberationEneCorrections_factorQ );
        for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ )
        {
            HrtfFastConv->fastconvReverberationEneCorrections[i] = (float) fastconvReverberationEneCorrections[i] * powf( 2.f, -1.f * (float) fastconvReverberationEneCorrections_factorQ );
            HrtfFastConv->fastconvReverberationEneCorrections[i] = (float) fastconvReverberationEneCorrections[i] * scaleFactor;
        }
#else
        mvr2r( fastconvReverberationTimes, HrtfFastConv->fastconvReverberationTimes, CLDFB_NO_CHANNELS_MAX );
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@
   the United Nations Convention on Contracts on the International Sales of Goods.
*******************************************************************************************************/
/* Generated on 15-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64 */
/* Generated on 16-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64 */
/* clang-format off */
+2 −2
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@
/* Tables generated by the script at "scripts/binauralRenderer_interface/fastconv/generate_tables_for_fastconv.m */
/* Can be replaced by your own generated HRIR tables */
/*
 * Generated on 15-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64
 * Generated on 16-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64
*/
@@ -46967,7 +46967,7 @@ const int16_t fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX] =
/*
 * Generated on 15-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64
 * Generated on 16-Jul-2024 with Matlab version 24.1.0.2578822 (R2024a) Update 2 by marcemerit on MACA64
 * Binaural rendering data set based on BRIRs 
 Tables derived from Mozart IIS BRIRs.*/
+53 −22
Original line number Diff line number Diff line
@@ -1850,7 +1850,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
    char *hrtf_data_rptr;
    ivas_error error;
    Word16 factorQ;
#ifndef FIX_1123_FASTCONV_16BIT_ROM
#ifdef FIX_1123_FASTCONV_16BIT_ROM
    float scaleFactor;
#else
    int32_t *ptW32;
#endif
    int16_t *ptW16;
@@ -1923,6 +1925,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* HRIR Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        for ( i = 0; i < BINAURAL_CONVBANDS; i++ )
        {
@@ -1937,7 +1942,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRReal[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRReal[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRReal[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -1962,7 +1967,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRImag[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRImag[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRImag[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -1987,7 +1992,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRReal[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRReal[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRReal[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2012,7 +2017,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRImag[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRImag[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRImag[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2067,6 +2072,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* HRIR Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        for ( i = 0; i < BINAURAL_CONVBANDS; i++ )
        {
@@ -2081,7 +2089,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRReal_HOA3[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRReal_HOA3[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRReal_HOA3[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2106,7 +2114,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRImag_HOA3[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRImag_HOA3[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRImag_HOA3[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2131,7 +2139,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRReal_HOA3[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRReal_HOA3[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRReal_HOA3[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2156,7 +2164,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRImag_HOA3[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRImag_HOA3[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRImag_HOA3[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2211,6 +2219,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* HRIR Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        for ( i = 0; i < BINAURAL_CONVBANDS; i++ )
        {
@@ -2225,7 +2236,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRReal_HOA2[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRReal_HOA2[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRReal_HOA2[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2250,7 +2261,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRImag_HOA2[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRImag_HOA2[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRImag_HOA2[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2275,7 +2286,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRReal_HOA2[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRReal_HOA2[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRReal_HOA2[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2300,7 +2311,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRImag_HOA2[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRImag_HOA2[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRImag_HOA2[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2356,6 +2367,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* HRIR Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        for ( i = 0; i < BINAURAL_CONVBANDS; i++ )
        {
@@ -2370,7 +2384,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRReal_FOA[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRReal_FOA[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRReal_FOA[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2395,7 +2409,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftHRIRImag_FOA[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftHRIRImag_FOA[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftHRIRImag_FOA[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2420,7 +2434,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRReal_FOA[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRReal_FOA[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRReal_FOA[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2445,7 +2459,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightHRIRImag_FOA[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightHRIRImag_FOA[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightHRIRImag_FOA[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2501,6 +2515,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* BRIR Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        for ( i = 0; i < BINAURAL_CONVBANDS; i++ )
        {
@@ -2515,7 +2532,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftBRIRReal[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftBRIRReal[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftBRIRReal[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2540,7 +2557,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->leftBRIRImag[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->leftBRIRImag[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->leftBRIRImag[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2565,7 +2582,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightBRIRReal[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightBRIRReal[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightBRIRReal[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2590,7 +2607,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
#endif
                {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
                    ( *hHRTF )->rightBRIRImag[i][j][k] = (float) ptW16[k] * powf( 2.f, -1.f * (float) factorQ );
                    ( *hHRTF )->rightBRIRImag[i][j][k] = (float) ptW16[k] * scaleFactor;
#else
                    ( *hHRTF )->rightBRIRImag[i][j][k] = (float) ptW32[k] * powf( 2.f, -1.f * (float) factorQ );
#endif
@@ -2613,22 +2630,36 @@ static ivas_error create_fastconv_HRTF_from_rawdata_fx(
        /* fastconvReverberationTimes Q factor*/
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        ptW16 = (int16_t *) hrtf_data_rptr;
        for ( j = 0; j < CLDFB_NO_CHANNELS_MAX; j++ )
        {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
            ( *hHRTF )->fastconvReverberationTimes[j] = (float) ptW16[j] * powf( 2.f, -1.f * factorQ );
#else
            ( *hHRTF )->fastconvReverberationTimes[j] = (float) ptW16[j] * scaleFactor;
#endif
        }
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( int16_t );

        /* fastconvReverberationEneCorrections Q factor */
        factorQ = *( (Word16 *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( Word16 );
#ifdef FIX_1123_FASTCONV_16BIT_ROM
        scaleFactor = powf( 2.f, -1.f * (float) factorQ );
#endif

        ptW16 = (int16_t *) hrtf_data_rptr;
        for ( j = 0; j < CLDFB_NO_CHANNELS_MAX; j++ )
        {
#ifdef FIX_1123_FASTCONV_16BIT_ROM
            ( *hHRTF )->fastconvReverberationEneCorrections[j] = (float) ptW16[j] * powf( 2.f, -1.f * factorQ );
#else
            ( *hHRTF )->fastconvReverberationEneCorrections[j] = (float) ptW16[j] * scaleFactor;
#endif 
        }
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( int16_t );
    }
Loading