Loading lib_rend/ivas_crend.c +2 −0 Original line number Diff line number Diff line Loading @@ -1743,6 +1743,7 @@ ivas_error ivas_rend_crendProcessSubframe( } #ifdef SPLIT_REND_WITH_HEAD_ROT /*-----------------------------------------------------------------------------------------* * Function ivas_rend_crend_ProcessSplitBin() * Loading Loading @@ -1860,3 +1861,4 @@ ivas_error ivas_rend_crendProcessSplitBin( return IVAS_ERR_OK; } #endif lib_rend/ivas_prot_rend.h +2 −0 Original line number Diff line number Diff line Loading @@ -637,12 +637,14 @@ ivas_error ivas_rend_crendProcessSubframe( const int32_t output_Fs /* i : output sampling rate */ ); #ifdef SPLIT_REND_WITH_HEAD_ROT /* TODO tmu : interface cleanup */ ivas_error ivas_rend_crendProcessSplitBin( Decoder_Struct *st_ivas, float output[][L_FRAME48k], const int16_t output_frame ); #endif /*----------------------------------------------------------------------------------* * Reverberator Loading lib_rend/lib_rend.c +93 −22 Original line number Diff line number Diff line Loading @@ -177,7 +177,9 @@ typedef struct EFAP_WRAPPER efapInWrapper; TDREND_WRAPPER tdRendWrapper; CREND_WRAPPER_HANDLE crendWrapper; #ifdef SPLIT_REND_WITH_HEAD_ROT TDREND_WRAPPER splitTdRendWrappers[MAX_HEAD_ROT_POSES - 1]; /* Additional TD Rend instances used for split rendering */ #endif REVERB_HANDLE hReverb; rotation_gains rot_gains_prev; int16_t nonDiegeticPan; Loading Loading @@ -2136,8 +2138,10 @@ static ivas_error updateMcPanGains( switch ( outConfig ) { case IVAS_REND_AUDIO_CONFIG_BINAURAL: #ifdef SPLIT_REND_WITH_HEAD_ROT case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED: case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM: #endif break; /* Do nothing */ case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR: case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB: Loading Loading @@ -2184,7 +2188,9 @@ static ivas_error initMcBinauralRendering( RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif int32_t outSampleRate; /* check if re-initialization */ Loading @@ -2194,6 +2200,7 @@ static ivas_error initMcBinauralRendering( inputMc->tdRendWrapper.hHrtfTD = NULL; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i ) { if ( inputMc->splitTdRendWrappers[i].hBinRendererTd != NULL ) Loading @@ -2202,6 +2209,7 @@ static ivas_error initMcBinauralRendering( inputMc->splitTdRendWrappers[i].hHrtfTD = NULL; } } #endif ivas_rend_closeCrend( &inputMc->crendWrapper #ifdef SPLIT_REND_WITH_HEAD_ROT Loading Loading @@ -2248,6 +2256,7 @@ static ivas_error initMcBinauralRendering( return error; } #ifdef SPLIT_REND_WITH_HEAD_ROT if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { /* Open TD renderer wrappers */ Loading @@ -2267,6 +2276,7 @@ static ivas_error initMcBinauralRendering( } } #endif if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { if ( ( error = ivas_reverb_open( &( inputMc->hReverb ), getIvasAudioConfigFromRendAudioConfig( outConfig ), NULL, hRendCfg, outSampleRate ) ) != IVAS_ERR_OK ) Loading Loading @@ -2397,7 +2407,9 @@ static ivas_error setRendInputActiveMc( const IVAS_REND_InputId id, RENDER_CONFIG_DATA *hRendCfg ) { #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif ivas_error error; rendering_context rendCtx; IVAS_REND_AudioConfig outConfig; Loading Loading @@ -2432,13 +2444,19 @@ static ivas_error setRendInputActiveMc( inputMc->hMcMasa = NULL; initRotGains( inputMc->rot_gains_prev ); inputMc->lfeRouting = defaultLfeRouting( inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ); #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < (int16_t) ( sizeof( inputMc->splitTdRendWrappers ) / sizeof( *inputMc->splitTdRendWrappers ) ); ++i ) { inputMc->splitTdRendWrappers[i] = defaultTdRendWrapper(); } #endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( getAudioConfigType( outConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) #else if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRendCfg ) ) != IVAS_ERR_OK ) { Loading @@ -2465,7 +2483,9 @@ static ivas_error setRendInputActiveMc( static void clearInputMc( input_mc *inputMc ) { #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif rendering_context rendCtx; rendCtx = inputMc->base.ctx; Loading Loading @@ -2501,6 +2521,7 @@ static void clearInputMc( inputMc->tdRendWrapper.hHrtfTD = NULL; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < (int16_t) ( sizeof( inputMc->splitTdRendWrappers ) / sizeof( *inputMc->splitTdRendWrappers ) ); ++i ) { if ( inputMc->splitTdRendWrappers[i].hBinRendererTd != NULL ) Loading @@ -2509,6 +2530,7 @@ static void clearInputMc( inputMc->splitTdRendWrappers[i].hHrtfTD = NULL; } } #endif ivas_mcmasa_ana_close( &( inputMc->hMcMasa ) ); Loading Loading @@ -3696,12 +3718,14 @@ ivas_error IVAS_REND_Open( hIvasRend->inputsMc[i].nonDiegeticPanGain = nonDiegeticPanGain; hIvasRend->inputsMc[i].hMcMasa = NULL; #ifdef SPLIT_REND_WITH_HEAD_ROT for ( j = 0; j < (int16_t) ( sizeof( hIvasRend->inputsMc[i].splitTdRendWrappers ) / sizeof( *hIvasRend->inputsMc[i].splitTdRendWrappers ) ); ++j ) { hIvasRend->inputsMc[i].splitTdRendWrappers[j].hBinRendererTd = NULL; hIvasRend->inputsMc[i].splitTdRendWrappers[j].hHrtfTD = NULL; } } #endif for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { Loading Loading @@ -4290,7 +4314,11 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( return error; } #ifdef SPLIT_REND_WITH_HEAD_ROT if ( getAudioConfigType( hIvasRend->outputConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) #else if ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { if ( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -6338,16 +6366,24 @@ static ivas_error renderActiveInputsIsm( static ivas_error renderLfeToBinaural( const input_mc *mcInput, #ifdef SPLIT_REND_WITH_HEAD_ROT const IVAS_REND_AudioConfig outConfig, #endif IVAS_REND_AudioBuffer outAudio ) { int16_t i; int16_t lfe_idx; #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t pose_idx, num_poses; #endif float gain; float *readPtr, *writePtr; #ifdef SPLIT_REND_WITH_HEAD_ROT assert( ( getAudioConfigType( outConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) && "Must be binaural output" ); #else assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); #endif push_wmops( "renderLfeToBinaural" ); Loading Loading @@ -6377,6 +6413,7 @@ static ivas_error renderLfeToBinaural( num_poses = 1; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( pose_idx = 0; pose_idx < num_poses; ++pose_idx ) { readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); Loading @@ -6393,6 +6430,23 @@ static ivas_error renderLfeToBinaural( *writePtr++ += gain * ( *readPtr++ ); } } #else /* Copy LFE to left and right ears */ readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); writePtr = getSmplPtr( outAudio, 0, 0 ); for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) { *writePtr++ += gain * ( *readPtr++ ); } readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); writePtr = getSmplPtr( outAudio, 1, 0 ); for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) { *writePtr++ += gain * ( *readPtr++ ); } #endif pop_wmops(); Loading Loading @@ -6491,7 +6545,12 @@ static ivas_error renderMcToBinaural( accumulate2dArrayToBuffer( tmpRendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -6589,7 +6648,12 @@ static ivas_error renderMcToBinauralRoom( accumulate2dArrayToBuffer( tmpRendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -6687,7 +6751,11 @@ static ivas_error renderMcCustomLsToBinauralRoom( accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif ) { return error; } Loading Loading @@ -6762,6 +6830,7 @@ static ivas_error renderMcToMasa( return IVAS_ERR_OK; } #ifdef SPLIT_REND_WITH_HEAD_ROT static ivas_error renderMcToSplitBinaural( input_mc *mcInput, const IVAS_REND_AudioConfig outConfig, Loading Loading @@ -6934,6 +7003,7 @@ static ivas_error renderMcToSplitBinaural( return IVAS_ERR_OK; } #endif static ivas_error renderInputMc( input_mc *mcInput, Loading Loading @@ -6985,10 +7055,12 @@ static ivas_error renderInputMc( error = renderMcToBinauralRoom( mcInput, outConfig, outAudio ); } break; #ifdef SPLIT_REND_WITH_HEAD_ROT case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED: case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM: error = renderMcToSplitBinaural( mcInput, outConfig, outAudio ); break; #endif default: return IVAS_ERR_INVALID_OUTPUT_FORMAT; } Loading Loading @@ -8528,8 +8600,7 @@ ivas_error IVAS_REND_GetSamples( if ( ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || ( ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) && ( ( hIvasRend->inputsIsm[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) || ( hIvasRend->inputsMc[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) ) ) ) ( hIvasRend->inputsMc[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) ) ) ) { outAudio = hIvasRend->splitRendEncBuffer; } Loading Loading
lib_rend/ivas_crend.c +2 −0 Original line number Diff line number Diff line Loading @@ -1743,6 +1743,7 @@ ivas_error ivas_rend_crendProcessSubframe( } #ifdef SPLIT_REND_WITH_HEAD_ROT /*-----------------------------------------------------------------------------------------* * Function ivas_rend_crend_ProcessSplitBin() * Loading Loading @@ -1860,3 +1861,4 @@ ivas_error ivas_rend_crendProcessSplitBin( return IVAS_ERR_OK; } #endif
lib_rend/ivas_prot_rend.h +2 −0 Original line number Diff line number Diff line Loading @@ -637,12 +637,14 @@ ivas_error ivas_rend_crendProcessSubframe( const int32_t output_Fs /* i : output sampling rate */ ); #ifdef SPLIT_REND_WITH_HEAD_ROT /* TODO tmu : interface cleanup */ ivas_error ivas_rend_crendProcessSplitBin( Decoder_Struct *st_ivas, float output[][L_FRAME48k], const int16_t output_frame ); #endif /*----------------------------------------------------------------------------------* * Reverberator Loading
lib_rend/lib_rend.c +93 −22 Original line number Diff line number Diff line Loading @@ -177,7 +177,9 @@ typedef struct EFAP_WRAPPER efapInWrapper; TDREND_WRAPPER tdRendWrapper; CREND_WRAPPER_HANDLE crendWrapper; #ifdef SPLIT_REND_WITH_HEAD_ROT TDREND_WRAPPER splitTdRendWrappers[MAX_HEAD_ROT_POSES - 1]; /* Additional TD Rend instances used for split rendering */ #endif REVERB_HANDLE hReverb; rotation_gains rot_gains_prev; int16_t nonDiegeticPan; Loading Loading @@ -2136,8 +2138,10 @@ static ivas_error updateMcPanGains( switch ( outConfig ) { case IVAS_REND_AUDIO_CONFIG_BINAURAL: #ifdef SPLIT_REND_WITH_HEAD_ROT case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED: case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM: #endif break; /* Do nothing */ case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR: case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB: Loading Loading @@ -2184,7 +2188,9 @@ static ivas_error initMcBinauralRendering( RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif int32_t outSampleRate; /* check if re-initialization */ Loading @@ -2194,6 +2200,7 @@ static ivas_error initMcBinauralRendering( inputMc->tdRendWrapper.hHrtfTD = NULL; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i ) { if ( inputMc->splitTdRendWrappers[i].hBinRendererTd != NULL ) Loading @@ -2202,6 +2209,7 @@ static ivas_error initMcBinauralRendering( inputMc->splitTdRendWrappers[i].hHrtfTD = NULL; } } #endif ivas_rend_closeCrend( &inputMc->crendWrapper #ifdef SPLIT_REND_WITH_HEAD_ROT Loading Loading @@ -2248,6 +2256,7 @@ static ivas_error initMcBinauralRendering( return error; } #ifdef SPLIT_REND_WITH_HEAD_ROT if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { /* Open TD renderer wrappers */ Loading @@ -2267,6 +2276,7 @@ static ivas_error initMcBinauralRendering( } } #endif if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { if ( ( error = ivas_reverb_open( &( inputMc->hReverb ), getIvasAudioConfigFromRendAudioConfig( outConfig ), NULL, hRendCfg, outSampleRate ) ) != IVAS_ERR_OK ) Loading Loading @@ -2397,7 +2407,9 @@ static ivas_error setRendInputActiveMc( const IVAS_REND_InputId id, RENDER_CONFIG_DATA *hRendCfg ) { #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif ivas_error error; rendering_context rendCtx; IVAS_REND_AudioConfig outConfig; Loading Loading @@ -2432,13 +2444,19 @@ static ivas_error setRendInputActiveMc( inputMc->hMcMasa = NULL; initRotGains( inputMc->rot_gains_prev ); inputMc->lfeRouting = defaultLfeRouting( inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ); #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < (int16_t) ( sizeof( inputMc->splitTdRendWrappers ) / sizeof( *inputMc->splitTdRendWrappers ) ); ++i ) { inputMc->splitTdRendWrappers[i] = defaultTdRendWrapper(); } #endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( getAudioConfigType( outConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) #else if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRendCfg ) ) != IVAS_ERR_OK ) { Loading @@ -2465,7 +2483,9 @@ static ivas_error setRendInputActiveMc( static void clearInputMc( input_mc *inputMc ) { #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t i; #endif rendering_context rendCtx; rendCtx = inputMc->base.ctx; Loading Loading @@ -2501,6 +2521,7 @@ static void clearInputMc( inputMc->tdRendWrapper.hHrtfTD = NULL; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < (int16_t) ( sizeof( inputMc->splitTdRendWrappers ) / sizeof( *inputMc->splitTdRendWrappers ) ); ++i ) { if ( inputMc->splitTdRendWrappers[i].hBinRendererTd != NULL ) Loading @@ -2509,6 +2530,7 @@ static void clearInputMc( inputMc->splitTdRendWrappers[i].hHrtfTD = NULL; } } #endif ivas_mcmasa_ana_close( &( inputMc->hMcMasa ) ); Loading Loading @@ -3696,12 +3718,14 @@ ivas_error IVAS_REND_Open( hIvasRend->inputsMc[i].nonDiegeticPanGain = nonDiegeticPanGain; hIvasRend->inputsMc[i].hMcMasa = NULL; #ifdef SPLIT_REND_WITH_HEAD_ROT for ( j = 0; j < (int16_t) ( sizeof( hIvasRend->inputsMc[i].splitTdRendWrappers ) / sizeof( *hIvasRend->inputsMc[i].splitTdRendWrappers ) ); ++j ) { hIvasRend->inputsMc[i].splitTdRendWrappers[j].hBinRendererTd = NULL; hIvasRend->inputsMc[i].splitTdRendWrappers[j].hHrtfTD = NULL; } } #endif for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { Loading Loading @@ -4290,7 +4314,11 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( return error; } #ifdef SPLIT_REND_WITH_HEAD_ROT if ( getAudioConfigType( hIvasRend->outputConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) #else if ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_IR || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) #endif { if ( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { Loading Loading @@ -6338,16 +6366,24 @@ static ivas_error renderActiveInputsIsm( static ivas_error renderLfeToBinaural( const input_mc *mcInput, #ifdef SPLIT_REND_WITH_HEAD_ROT const IVAS_REND_AudioConfig outConfig, #endif IVAS_REND_AudioBuffer outAudio ) { int16_t i; int16_t lfe_idx; #ifdef SPLIT_REND_WITH_HEAD_ROT int16_t pose_idx, num_poses; #endif float gain; float *readPtr, *writePtr; #ifdef SPLIT_REND_WITH_HEAD_ROT assert( ( getAudioConfigType( outConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) && "Must be binaural output" ); #else assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); #endif push_wmops( "renderLfeToBinaural" ); Loading Loading @@ -6377,6 +6413,7 @@ static ivas_error renderLfeToBinaural( num_poses = 1; } #ifdef SPLIT_REND_WITH_HEAD_ROT for ( pose_idx = 0; pose_idx < num_poses; ++pose_idx ) { readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); Loading @@ -6393,6 +6430,23 @@ static ivas_error renderLfeToBinaural( *writePtr++ += gain * ( *readPtr++ ); } } #else /* Copy LFE to left and right ears */ readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); writePtr = getSmplPtr( outAudio, 0, 0 ); for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) { *writePtr++ += gain * ( *readPtr++ ); } readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); writePtr = getSmplPtr( outAudio, 1, 0 ); for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) { *writePtr++ += gain * ( *readPtr++ ); } #endif pop_wmops(); Loading Loading @@ -6491,7 +6545,12 @@ static ivas_error renderMcToBinaural( accumulate2dArrayToBuffer( tmpRendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -6589,7 +6648,12 @@ static ivas_error renderMcToBinauralRoom( accumulate2dArrayToBuffer( tmpRendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif { return error; } Loading Loading @@ -6687,7 +6751,11 @@ static ivas_error renderMcCustomLsToBinauralRoom( accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); #ifdef SPLIT_REND_WITH_HEAD_ROT if ( ( error = renderLfeToBinaural( mcInput, outConfig, outAudio ) ) != IVAS_ERR_OK ) #else if ( ( error = renderLfeToBinaural( mcInput, outAudio ) ) != IVAS_ERR_OK ) #endif ) { return error; } Loading Loading @@ -6762,6 +6830,7 @@ static ivas_error renderMcToMasa( return IVAS_ERR_OK; } #ifdef SPLIT_REND_WITH_HEAD_ROT static ivas_error renderMcToSplitBinaural( input_mc *mcInput, const IVAS_REND_AudioConfig outConfig, Loading Loading @@ -6934,6 +7003,7 @@ static ivas_error renderMcToSplitBinaural( return IVAS_ERR_OK; } #endif static ivas_error renderInputMc( input_mc *mcInput, Loading Loading @@ -6985,10 +7055,12 @@ static ivas_error renderInputMc( error = renderMcToBinauralRoom( mcInput, outConfig, outAudio ); } break; #ifdef SPLIT_REND_WITH_HEAD_ROT case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED: case IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM: error = renderMcToSplitBinaural( mcInput, outConfig, outAudio ); break; #endif default: return IVAS_ERR_INVALID_OUTPUT_FORMAT; } Loading Loading @@ -8528,8 +8600,7 @@ ivas_error IVAS_REND_GetSamples( if ( ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || ( ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) && ( ( hIvasRend->inputsIsm[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) || ( hIvasRend->inputsMc[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) ) ) ) ( hIvasRend->inputsMc[0].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) ) ) ) { outAudio = hIvasRend->splitRendEncBuffer; } Loading