Commit 9dda5a52 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[fix] enale FOA/HOA2 rendering with FastConv in external renderer

parent f8a48b18
Loading
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -1055,10 +1055,17 @@ int main(
            exit( -1 );
        }

#ifndef FIX_1113_EXTREND_ISAR
    CLDFBframeSize_smpls = frameSize_smpls * 2;
    cldfb_in_flag = get_cldfb_in_flag( args.outConfig.audioConfig, &renderConfig );
#endif
    }

#ifdef FIX_1113_EXTREND_ISAR
    CLDFBframeSize_smpls = frameSize_smpls * 2;
    cldfb_in_flag = get_cldfb_in_flag( args.outConfig.audioConfig, &renderConfig );
#endif

    if ( ( error = IVAS_REND_SetOrientationTrackingMode( hIvasRend, args.orientation_tracking ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "Error in IVAS_REND_SetOrientationTrackingMode(): %s\n", ivas_error_to_string( error ) );
+1 −0
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@
#define FIX_1111_TDM_LSP_BUFFER                         /* VA: issue 1111: remove unused buffer `tdm_lspQ_PCh[]' */
#define FIX_1101_CLEANING_JBM_CALL                      /* VA: issue 1101: remove obsolete call of ivas_jbm_dec_tc_buffer_open() */
#define FIX_1053_AEID_FILE_TEST                         /* Philips: Tests for the -aeid file and fix for memory error */
#define FIX_1113_EXTREND_ISAR                           /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */

/* #################### End BE switches ################################## */

+15 −1
Original line number Diff line number Diff line
@@ -998,8 +998,12 @@ ivas_error ivas_rend_openCldfbRend(
        hBinRenderer->conv_band = convBand;
    }

#ifdef FIX_1113_EXTREND_ISAR
    ivas_output_init( hBinRenderer->hInputSetup, inConfig );
#else
    hBinRenderer->hInputSetup->is_loudspeaker_setup = 0;
    hBinRenderer->hInputSetup->output_config = inConfig;
#endif
    if ( ( error = getAudioConfigNumChannels( inConfig, &hBinRenderer->hInputSetup->nchan_out_woLFE ) ) != IVAS_ERR_OK )
    {
        return error;
@@ -1847,7 +1851,13 @@ void ivas_binRenderer(
    }

/* HOA decoding to CICP19 if needed*/
#ifdef FIX_1113_EXTREND_ISAR
    if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 &&
         ( hBinRenderer->nInChannels != 16 && hBinRenderer->nInChannels != 9 && hBinRenderer->nInChannels != 4 ) )
    // if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 && hBinRenderer->hInputSetup->output_config == IVAS_AUDIO_CONFIG_7_1_4 )
#else
    if ( hBinRenderer->hInputSetup->is_loudspeaker_setup == 0 && hBinRenderer->nInChannels != 16 )
#endif
    {
        ivas_sba2mc_cldfb( *( hBinRenderer->hInputSetup ), RealBuffer, ImagBuffer, hBinRenderer->nInChannels, hBinRenderer->conv_band, numTimeSlots, hBinRenderer->hoa_dec_mtx );
    }
@@ -1905,7 +1915,11 @@ void ivas_binRenderer(
                    }
                    else
                    {
#ifdef FIX_1113_EXTREND_ISAR
                        rotateFrame_shd_cldfb( RealBuffer, ImagBuffer, Rmat_local, hBinRenderer->hInputSetup->nchan_out_woLFE, numTimeSlots, hBinRenderer->hInputSetup->ambisonics_order );
#else
                        rotateFrame_shd_cldfb( RealBuffer, ImagBuffer, Rmat_local, hBinRenderer->hInputSetup->nchan_out_woLFE, numTimeSlots, 3 );
#endif
                    }

                    ivas_binRenderer_filterModule( Cldfb_RealBuffer_Binaural[pos_idx], Cldfb_ImagBuffer_Binaural[pos_idx], RealBuffer, ImagBuffer, numTimeSlots, hBinRenderer, pos_idx );
+2 −1
Original line number Diff line number Diff line
@@ -501,8 +501,9 @@ void rotateFrame_shd_cldfb(
    int16_t l = 0, m1 = 0, m2 = 0;
    float realRot[2 * HEADROT_ORDER + 1], imagRot[2 * HEADROT_ORDER + 1];
    float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM];

#ifndef FIX_1113_EXTREND_ISAR
    assert( nInChannels == HEADROT_SHMAT_DIM && "Number of channels must be 16!" );
#endif

    /* initialize rotation matrices with zeros */
    for ( i = 0; i < HEADROT_SHMAT_DIM; i++ )
+2 −1
Original line number Diff line number Diff line
@@ -2511,9 +2511,10 @@ static ivas_error updateSbaPanGains(
                case IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM:
                {
                    if ( hRendCfg->split_rend_config.rendererSelection == ISAR_SPLIT_REND_RENDERER_SELECTION_FASTCONV )

                    {
#ifndef FIX_1113_EXTREND_ISAR
                        assert( inConfig == IVAS_AUDIO_CONFIG_HOA3 && ( *rendCtx.pOutSampleRate == 48000 ) && "split binaural fast conv mode is currently supported with HOA3 input and 48k sampling rate only" );
#endif
                        if ( ( error = ivas_rend_openCldfbRend( &inputSba->cldfbRendWrapper, inConfig, outConfig, &rendCtx.pSplitRendWrapper->multiBinPoseData, *rendCtx.pOutSampleRate ) ) != IVAS_ERR_OK )
                        {
                            return error;