Commit 62ea7e0c authored by emerit's avatar emerit
Browse files

bugs fixs linked to BINAURAL_NTAPS

parent 6a19989e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1426,7 +1426,11 @@ typedef enum

#define BINAURAL_MAXBANDS                       60                          /* Max number of bands */
#define BINAURAL_CONVBANDS                      50                          /* Bands upto which convolution is performed */
#ifdef UPDATE_SBA_FILTER
#define BINAURAL_NTAPS                           5
#else
#define BINAURAL_NTAPS                           7
#endif
#define BINAURAL_NTAPS_MAX                      96

#define HRTF_SH_ORDER                           3
+23 −0
Original line number Diff line number Diff line
@@ -183,7 +183,11 @@ static ivas_error ivas_binRenderer_convModuleOpen(
    }
    else
    {
#ifdef UPDATE_SBA_FILTER
        hBinRenConvModule->numTaps = BINAURAL_NTAPS;
#else
        hBinRenConvModule->numTaps = 7;
#endif

        /* Use fixed order filtering */
        bandIdx = 0;
@@ -347,13 +351,16 @@ static ivas_error ivas_binRenderer_convModuleOpen(
                else
                {
#ifdef UPDATE_SBA_FILTER
#ifdef UPDATE_SBA_FILTER_WITH_SUPPORT_FOA_HOA2_FILTERS
                    if ( input_config == IVAS_REND_AUDIO_CONFIG_HOA3 )
                    {
#endif
                        /* HOA3 filter coefficients */
                        hBinRenConvModule->filterTapsLeftReal[bandIdx][chIdx] = hHrtf->leftHRIRReal_HOA3[bandIdx][chIdx];
                        hBinRenConvModule->filterTapsLeftImag[bandIdx][chIdx] = hHrtf->leftHRIRImag_HOA3[bandIdx][chIdx];
                        hBinRenConvModule->filterTapsRightReal[bandIdx][chIdx] = hHrtf->rightHRIRReal_HOA3[bandIdx][chIdx];
                        hBinRenConvModule->filterTapsRightImag[bandIdx][chIdx] = hHrtf->rightHRIRImag_HOA3[bandIdx][chIdx];
#ifdef UPDATE_SBA_FILTER_WITH_SUPPORT_FOA_HOA2_FILTERS
                    }
                    else if ( input_config == IVAS_REND_AUDIO_CONFIG_HOA2 )
                    {
@@ -375,6 +382,7 @@ static ivas_error ivas_binRenderer_convModuleOpen(
                    {
                        return IVAS_ERR_INVALID_INPUT_FORMAT;
                    }
#endif
#else
                    /* HOA3 filter coefficients */
                    hBinRenConvModule->filterTapsLeftReal[bandIdx][chIdx] = hHrtf->leftHRIRReal_HOA3[bandIdx][chIdx];
@@ -430,10 +438,18 @@ static ivas_error ivas_binaural_hrtf_open(
        {
            for ( j = 0; j < HRTF_LS_CHANNELS; j++ )
            {
#ifdef UPDATE_SBA_FILTER
                mvr2r( leftHRIRReal[i][j], HrtfFastConv->leftHRIRReal[i][j], BINAURAL_NTAPS );
                mvr2r( leftHRIRImag[i][j], HrtfFastConv->leftHRIRImag[i][j], BINAURAL_NTAPS );
                mvr2r( rightHRIRReal[i][j], HrtfFastConv->rightHRIRReal[i][j], BINAURAL_NTAPS );
                mvr2r( rightHRIRImag[i][j], HrtfFastConv->rightHRIRImag[i][j], BINAURAL_NTAPS );
#else
                mvr2r( leftHRIRReal[i][j], HrtfFastConv->leftHRIRReal[i][j], 7 );
                mvr2r( leftHRIRImag[i][j], HrtfFastConv->leftHRIRImag[i][j], 7 );
                mvr2r( rightHRIRReal[i][j], HrtfFastConv->rightHRIRReal[i][j], 7 );
                mvr2r( rightHRIRImag[i][j], HrtfFastConv->rightHRIRImag[i][j], 7 );
#endif


                mvr2r( leftBRIRReal[i][j], HrtfFastConv->leftBRIRReal[i][j], BINAURAL_NTAPS_MAX );
                mvr2r( leftBRIRImag[i][j], HrtfFastConv->leftBRIRImag[i][j], BINAURAL_NTAPS_MAX );
@@ -443,10 +459,17 @@ static ivas_error ivas_binaural_hrtf_open(

            for ( j = 0; j < HRTF_SH_CHANNELS; j++ )
            {
#ifdef UPDATE_SBA_FILTER
                mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], BINAURAL_NTAPS );
                mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], BINAURAL_NTAPS );
                mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], BINAURAL_NTAPS );
                mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], BINAURAL_NTAPS );
#else
                mvr2r( leftHRIRReal_HOA3[i][j], HrtfFastConv->leftHRIRReal_HOA3[i][j], 7 );
                mvr2r( leftHRIRImag_HOA3[i][j], HrtfFastConv->leftHRIRImag_HOA3[i][j], 7 );
                mvr2r( rightHRIRReal_HOA3[i][j], HrtfFastConv->rightHRIRReal_HOA3[i][j], 7 );
                mvr2r( rightHRIRImag_HOA3[i][j], HrtfFastConv->rightHRIRImag_HOA3[i][j], 7 );
#endif
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -975,11 +975,11 @@ static ivas_error ivas_rend_initCrend(
                    hHrtf->pOut_to_bin_diffuse_im[j] = hSetOfHRTF->hHRTF_hrir_foa->pOut_to_bin_diffuse_im[j];
                }
            }
#endif
            else
            {
                return IVAS_ERROR( IVAS_ERR_INTERNAL, "Unsupported renderer type in Crend" );
            }
#endif
        }

#else
+22 −8
Original line number Diff line number Diff line
@@ -719,27 +719,41 @@ typedef struct ivas_hrtfs_crend_structure
typedef struct ivas_hrtfs_fastconv_struct
{
    float FASTCONV_HRIR_latency_s;
#ifdef UPDATE_SBA_FILTER
    float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS];
    float leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS];
    float rightHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS];
    float rightHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS];
#else
    float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][7];
    float leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][7];
    float rightHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][7];
    float rightHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][7];
#endif

    float FASTCONV_HOA3_latency_s;
#ifdef UPDATE_SBA_FILTER
    float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS];
    float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS];
    float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS];
    float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][BINAURAL_NTAPS];
#else
    float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][7];
    float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][7];
    float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][7];
    float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][HRTF_SH_CHANNELS][7];
#endif
#ifdef UPDATE_SBA_FILTER_WITH_SUPPORT_FOA_HOA2_FILTERS
    float FASTCONV_HOA2_latency_s;
    float leftHRIRReal_HOA2[BINAURAL_CONVBANDS][9][7];
    float leftHRIRImag_HOA2[BINAURAL_CONVBANDS][9][7];
    float rightHRIRReal_HOA2[BINAURAL_CONVBANDS][9][7];
    float rightHRIRImag_HOA2[BINAURAL_CONVBANDS][9][7];
    float leftHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS];
    float leftHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS];
    float rightHRIRReal_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS];
    float rightHRIRImag_HOA2[BINAURAL_CONVBANDS][9][BINAURAL_NTAPS];
    float FASTCONV_FOA_latency_s;
    float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][7];
    float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][7];
    float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][7];
    float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][7];
    float leftHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS];
    float leftHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS];
    float rightHRIRReal_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS];
    float rightHRIRImag_FOA[BINAURAL_CONVBANDS][4][BINAURAL_NTAPS];
#endif
    float FASTCONV_BRIR_latency_s;
    float leftBRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX];