Commit 53f7c8af authored by emerit's avatar emerit
Browse files

make switch FIX_POINT_HRTF_FILE_FORMAT FIX_POINT_HRTF_FILE_OPTIM building

parent 041dcc2f
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -131,7 +131,9 @@ typedef struct

    IVAS_DEC_HRTF_HANDLE *hHrtfTD;

#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
    IVAS_DEC_HRTF_STATISTICS_HANDLE *hHrtfStatistics;
#endif

    IVAS_BIN_RENDERER_TYPE binaural_renderer;
    IVAS_BIN_RENDERER_TYPE binaural_renderer_old;
@@ -196,7 +198,9 @@ int main(

#ifdef FIX_POINT_HRTF_FILE_OPTIM
    hHrtfBinary.hHrtfTD = NULL; /* just to avoid compilation warning */
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
    hHrtfBinary.hHrtfStatistics = NULL; /* just to avoid compilation warning */
#endif
#endif
    /*------------------------------------------------------------------------------------------*
     * Parse command-line arguments
@@ -670,7 +674,9 @@ cleanup:
        if ( arg.hrtfReaderEnabled )
        {
            destroy_td_hrtf( hHrtfBinary.hHrtfTD );
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
            destroy_hrtf_statistics( hHrtfBinary.hHrtfStatistics );
#endif
        }
#else
#ifdef FIX_POINT_HRTF_FILE_FORMAT
@@ -2805,6 +2811,7 @@ static ivas_error load_hrtf_from_file(
        }
    }

#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
    if ( hHrtfBinary->hHrtfStatistics == NULL && ( binaural_renderer == IVAS_BIN_RENDERER_TYPE_FASTCONV || binaural_renderer == IVAS_BIN_RENDERER_TYPE_CREND ) && OutputConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
    {
        if ( ( error = IVAS_DEC_GetHrtfStatisticsHandle( hIvasDec, &hHrtfBinary->hHrtfStatistics ) ) != IVAS_ERR_OK )
@@ -2826,6 +2833,7 @@ static ivas_error load_hrtf_from_file(
            }
        }
    }
#endif

    return IVAS_ERR_OK;
}
+5 −1
Original line number Diff line number Diff line
@@ -85,8 +85,8 @@
#define CR_2109_to_2112_cd0_ce0  /* This is related to the CRs include in the 26.444 package of 21-12. Concerns lead_deindexing and  */
#define FIX_QMETADATA_PENALTY /* Nokia: transform penalty calculation in qmetadata into integer operations */

// #define FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM                     /* FhG: issue 1123: update FastConv and ParamBin ROM tables and scripts to generate 16 bit tables instead of float */
//#define FIX_POINT_HRTF_FILE_FORMAT          /* ORANGE : add crend changes and fix point binaural rom and hrtf binary file format */
// #define FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM                     /* FhG: issue 1123: update FastConv and ParamBin ROM tables and scripts to generate 16 bit tables instead of float */
//#define FIX_POINT_HRTF_FILE_FORMAT_REVERB          /* ORANGE : add crend changes and fix point binaural rom and hrtf binary file format */
// #define FIX_POINT_CREND_HRTF_FILE_FORMAT
//#define FIX_TDREND_HRTF_FILE_FORMAT
@@ -96,15 +96,19 @@
#endif
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
#define FIX_POINT_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_OPTIM
#endif
#ifdef FIX_POINT_CREND_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_OPTIM
#endif
#ifdef FIX_TDREND_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_OPTIM
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#define FIX_POINT_HRTF_FILE_FORMAT
#define FIX_POINT_HRTF_FILE_OPTIM
#endif

#define FIX_1013_CRASH_HQ_CORE_DEC /* Ittiam: Saturation added on the lines of EVS */
+57 −17
Original line number Diff line number Diff line
@@ -748,19 +748,19 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
    }
    ELSE
    {
        IF( NEQ_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftReal_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftReal_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HrtfFastConv->leftReal" );
        }
        IF( NEQ_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftImag_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftImag_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HrtfFastConv->leftImag" );
        }
        IF( NEQ_32( IVAS_ERR_OK, vas_alloc_pppMem_fx( &HrtfFastConv->rightReal_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightReal_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HrtfFastConv->rightReal" );
        }
        IF( NEQ_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightImag_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightImag_fx, BINAURAL_CONVBANDS, n_channels, HrtfFastConv->ntaps, allocate_init_flag ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HrtfFastConv->rightImag" );
        }
@@ -962,67 +962,79 @@ static ivas_error ivas_binaural_hrtf_open_fx(
        test();
        IF( EQ_32( input_config, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_32( renderer_type, RENDERER_BINAURAL_FASTCONV ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            HrtfFastConv->FASTCONV_latency_s_fx = FASTCONV_HRIR_latency_s_fx;
            HrtfFastConv->ntaps = BINAURAL_NTAPS;
            move16();
            move16();
#else
            HrtfFastConv->FASTCONV_HRIR_latency_s_fx = FASTCONV_HRIR_latency_s_fx;
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            move16();
#else
            move32();
#endif
        }
        if ( EQ_32( input_config, IVAS_AUDIO_CONFIG_HOA2 ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            HrtfFastConv->FASTCONV_latency_s_fx = FASTCONV_HOA2_latency_s_fx;
            HrtfFastConv->ntaps = BINAURAL_NTAPS_SBA;
            move16();
            move16();
#else
            HrtfFastConv->FASTCONV_HOA2_latency_s_fx = FASTCONV_HOA2_latency_s_fx;
            move32();
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            move16();
#else
            move32();
#endif
        }
        if ( EQ_32( input_config, IVAS_AUDIO_CONFIG_HOA3 ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            HrtfFastConv->FASTCONV_latency_s_fx = FASTCONV_HOA3_latency_s_fx;
            HrtfFastConv->ntaps = BINAURAL_NTAPS_SBA;
            move16();
            move16();
#else
            HrtfFastConv->FASTCONV_HOA3_latency_s_fx = FASTCONV_HOA3_latency_s_fx;
            move32();
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            move16();
#else
            move32();
#endif
        }
        if ( EQ_32( input_config, IVAS_AUDIO_CONFIG_FOA ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            HrtfFastConv->FASTCONV_latency_s_fx = FASTCONV_FOA_latency_s_fx;
            HrtfFastConv->ntaps = BINAURAL_NTAPS_SBA;
            move16();
            move16();
#else
            HrtfFastConv->FASTCONV_FOA_latency_s_fx = FASTCONV_FOA_latency_s_fx;
            move32();
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            move16();
#else
            move32();
#endif
        }
        test();
        IF( EQ_32( input_config, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_32( renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            HrtfFastConv->FASTCONV_latency_s_fx = FASTCONV_BRIR_latency_s_fx;
            HrtfFastConv->ntaps = BINAURAL_NTAPS_MAX;
            move16();
            move16();
#else
            HrtfFastConv->FASTCONV_BRIR_latency_s_fx = FASTCONV_BRIR_latency_s_fx;
            move32();
#endif
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            move16();
#else
            move32();
#endif
        }

@@ -1421,9 +1433,17 @@ ivas_error ivas_binRenderer_open_fx(

        hBinRenderer->hoa_dec_mtx = st_ivas->hoa_dec_mtx;
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#ifdef FIX_POINT_HRTF_FILE_OPTIM
        st_ivas->binaural_latency_ns = L_shr_r( Mult_32_32( st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx, 1000000000 ), st_ivas->hHrtfFastConv->factor_Q_latency_s_fx );
#else
        st_ivas->binaural_latency_ns = L_shr_r( Mult_32_32( st_ivas->hHrtfFastConv->FASTCONV_BRIR_latency_s_fx, 1000000000 ), st_ivas->hHrtfFastConv->factor_Q_latency_s_fx );
#endif
#else
#ifdef FIX_POINT_HRTF_FILE_OPTIM
        st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
        st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_BRIR_latency_s_fx;
#endif
#endif
        move32();
    }
@@ -1442,24 +1462,40 @@ ivas_error ivas_binRenderer_open_fx(
        {
            IF( EQ_32( hBinRenderer->ivas_format, MC_FORMAT ) )
            {
#ifdef FIX_POINT_HRTF_FILE_OPTIM
                st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
                st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_HRIR_latency_s_fx;
#endif
                move32();
            }
            ELSE
            {
                IF( EQ_16( hBinRenderer->nInChannels, 16 ) )
                {
#ifdef FIX_POINT_HRTF_FILE_OPTIM
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_HOA3_latency_s_fx;
#endif
                    move32();
                }
                ELSE IF( EQ_16( hBinRenderer->nInChannels, 9 ) )
                {
#ifdef FIX_POINT_HRTF_FILE_OPTIM
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_HOA2_latency_s_fx;
#endif
                    move32();
                }
                ELSE IF( EQ_16( hBinRenderer->nInChannels, 4 ) )
                {
#ifdef FIX_POINT_HRTF_FILE_OPTIM
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
                    st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_FOA_latency_s_fx;
#endif
                    move32();
                }
                ELSE
@@ -1471,7 +1507,11 @@ ivas_error ivas_binRenderer_open_fx(
        ELSE
        {
            /* same value for MC or HOA both use MC BRIR*/
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_latency_s_fx;
#else
            st_ivas->binaural_latency_ns = st_ivas->hHrtfFastConv->FASTCONV_BRIR_latency_s_fx;
#endif
            move32();
        }
#endif
+36 −0
Original line number Diff line number Diff line
@@ -2449,12 +2449,46 @@ ivas_error ivas_init_decoder_fx(
        }

#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
#ifdef FIX_POINT_HRTF_FILE_OPTIM
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs, 0 ) ),
                   IVAS_ERR_OK ) )
        {
            return error;
        }
#else
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hHrtfCrend, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs, 0 ) ),
                   IVAS_ERR_OK ) )
        {
            return error;
        }
#endif
#else
#ifdef FIX_POINT_HRTF_FILE_OPTIM
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hHrtfCrend, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs ) ),
                   IVAS_ERR_OK ) )
        {
            return error;
        }
#else
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hHrtfCrend, st_ivas->hDecoderConfig->output_Fs ) ),
                   IVAS_ERR_OK ) )
        {
            return error;
        }
#endif
#else
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs ) ),
                   IVAS_ERR_OK ) )
        {
            return error;
        }
#else
        IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hDecoderConfig->output_config,
                                                  st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ),
@@ -2462,6 +2496,8 @@ ivas_error ivas_init_decoder_fx(
        {
            return error;
        }
#endif
#endif
#endif

        st_ivas->binaural_latency_ns = st_ivas->hCrendWrapper->binaural_latency_ns;
+8 −0
Original line number Diff line number Diff line
@@ -242,9 +242,17 @@ static ivas_error ivas_ism_bitrate_switching_dec_fx(

            /* Open Crend Binaural renderer */
#ifdef FIX_POINT_HRTF_FILE_FORMAT_REVERB
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, st_ivas->hHrtfCrend, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs, 0 ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs, 0 ) ), IVAS_ERR_OK ) )
#endif
#else
#ifdef FIX_POINT_HRTF_FILE_OPTIM
            IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, st_ivas->hHrtfCrend, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_rend_openCrend( &( st_ivas->hCrendWrapper ), st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hRenderConfig, st_ivas->hSetOfHRTF, st_ivas->hDecoderConfig->output_Fs ) ), IVAS_ERR_OK ) )
#endif
#endif
            {
                return error;
Loading