Loading lib_rend/lib_rend_fx.c +43 −4 Original line number Diff line number Diff line Loading @@ -1660,7 +1660,6 @@ static ivas_error alignInputDelay( shl( inputAudio.config.numSamplesPerChannel, 1 ) ); /* pre delay for this input is maximum delay - input delay */ preDelay = maxGlobalDelaySamples - inputBase->delayNumSamples * cldfb2tdSampleFact; preDelay = sub( maxGlobalDelaySamples, i_mult( inputBase->delayNumSamples, cldfb2tdSampleFact ) ); Loading Loading @@ -1701,10 +1700,10 @@ static ivas_error alignInputDelay( ELSE { numSamplesToPush = inputAudio.config.numSamplesPerChannel; move32(); move16(); numSamplesToPop = inputAudio.config.numSamplesPerChannel; move32(); move16(); } ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data_fx, numSamplesToPush ); Loading Loading @@ -3607,13 +3606,20 @@ ivas_error IVAS_REND_Open( } hIvasRend = *phIvasRend; move32(); hIvasRend->sampleRateOut = outputSampleRate; move32(); hIvasRend->outputConfig = outConfig; move32(); hIvasRend->customLsOut = defaultCustomLs(); hIvasRend->hLimiter = NULL; move32(); hIvasRend->efapOutWrapper.hEfap = NULL; move32(); hIvasRend->efapOutWrapper.pCustomLsSetup = NULL; move32(); hIvasRend->num_subframes = num_subframes; move16(); /* Initialize limiter */ IF( NE_32( ( error = IVAS_REND_GetNumOutChannels( hIvasRend, &numOutChannels ) ), IVAS_ERR_OK ) ) Loading Loading @@ -3675,27 +3681,38 @@ ivas_error IVAS_REND_Open( isar_init_split_rend_handles( hIvasRend->splitRendWrapper ); } hIvasRend->splitRendEncBuffer.data_fx = NULL; move32(); hIvasRend->splitRendEncBuffer.config.is_cldfb = 0; move16(); hIvasRend->splitRendEncBuffer.config.numChannels = 0; move16(); hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel = 0; move16(); FOR( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { initRendInputBase_fx( &hIvasRend->inputsIsm[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsIsm[i].crendWrapper = NULL; move32(); hIvasRend->inputsIsm[i].hReverb = NULL; move32(); hIvasRend->inputsIsm[i].tdRendWrapper.hBinRendererTd = NULL; move32(); FOR( j = 0; j < MAX_HEAD_ROT_POSES - 1; ++j ) { hIvasRend->inputsIsm[i].splitTdRendWrappers[j].hBinRendererTd = NULL; move32(); hIvasRend->inputsIsm[i].splitTdRendWrappers[j].hHrtfTD = NULL; move32(); } hIvasRend->inputsIsm[i].nonDiegeticPan = nonDiegeticPan; move16(); hIvasRend->inputsIsm[i].nonDiegeticPanGain_fx = nonDiegeticPanGain; move32(); hIvasRend->inputsIsm[i].hOMasa = NULL; move32(); hIvasRend->inputsIsm[i].bufferData_fx = NULL; move32(); } FOR( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) Loading @@ -3703,20 +3720,29 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsMc[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsMc[i].efapInWrapper.hEfap = NULL; move32(); hIvasRend->inputsMc[i].crendWrapper = NULL; move32(); hIvasRend->inputsMc[i].hReverb = NULL; move32(); hIvasRend->inputsMc[i].tdRendWrapper.hBinRendererTd = NULL; move32(); hIvasRend->inputsMc[i].bufferData_fx = NULL; move32(); hIvasRend->inputsMc[i].lfeDelayBuffer_fx = NULL; move32(); hIvasRend->inputsMc[i].nonDiegeticPan = nonDiegeticPan; move16(); hIvasRend->inputsMc[i].nonDiegeticPanGain_fx = nonDiegeticPanGain; move32(); hIvasRend->inputsMc[i].hMcMasa = NULL; move32(); FOR( j = 0; j < MAX_HEAD_ROT_POSES - 1; ++j ) { hIvasRend->inputsMc[i].splitTdRendWrappers[j].hBinRendererTd = NULL; move32(); hIvasRend->inputsMc[i].splitTdRendWrappers[j].hHrtfTD = NULL; move32(); } } Loading @@ -3725,10 +3751,15 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsSba[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsSba[i].crendWrapper = NULL; move32(); hIvasRend->inputsSba[i].cldfbRendWrapper.hCldfbRend = NULL; move32(); hIvasRend->inputsSba[i].cldfbRendWrapper.hHrtfFastConv = NULL; move32(); hIvasRend->inputsSba[i].bufferData_fx = NULL; move32(); hIvasRend->inputsSba[i].hDirAC = NULL; move32(); } FOR( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) Loading @@ -3736,17 +3767,25 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsMasa[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsMasa[i].metadataHasBeenFed = false; move16(); hIvasRend->inputsMasa[i].bufferData_fx = NULL; move32(); hIvasRend->inputsMasa[i].hMasaPrerend = NULL; move32(); hIvasRend->inputsMasa[i].hMasaExtRend = NULL; move16(); move32(); } hIvasRend->hHrtfs.hHrtfFastConv = NULL; move32(); hIvasRend->hHrtfs.hHrtfParambin = NULL; move32(); hIvasRend->hHrtfs.hHrtfTD = NULL; move32(); hIvasRend->hHrtfs.hHrtfCrend = NULL; move32(); hIvasRend->hHrtfs.hHrtfStatistics = NULL; move32(); IF( asHrtfBinary ) { Loading Loading
lib_rend/lib_rend_fx.c +43 −4 Original line number Diff line number Diff line Loading @@ -1660,7 +1660,6 @@ static ivas_error alignInputDelay( shl( inputAudio.config.numSamplesPerChannel, 1 ) ); /* pre delay for this input is maximum delay - input delay */ preDelay = maxGlobalDelaySamples - inputBase->delayNumSamples * cldfb2tdSampleFact; preDelay = sub( maxGlobalDelaySamples, i_mult( inputBase->delayNumSamples, cldfb2tdSampleFact ) ); Loading Loading @@ -1701,10 +1700,10 @@ static ivas_error alignInputDelay( ELSE { numSamplesToPush = inputAudio.config.numSamplesPerChannel; move32(); move16(); numSamplesToPop = inputAudio.config.numSamplesPerChannel; move32(); move16(); } ivas_TD_RINGBUF_Push( inputBase->delayBuffer, inputAudio.data_fx, numSamplesToPush ); Loading Loading @@ -3607,13 +3606,20 @@ ivas_error IVAS_REND_Open( } hIvasRend = *phIvasRend; move32(); hIvasRend->sampleRateOut = outputSampleRate; move32(); hIvasRend->outputConfig = outConfig; move32(); hIvasRend->customLsOut = defaultCustomLs(); hIvasRend->hLimiter = NULL; move32(); hIvasRend->efapOutWrapper.hEfap = NULL; move32(); hIvasRend->efapOutWrapper.pCustomLsSetup = NULL; move32(); hIvasRend->num_subframes = num_subframes; move16(); /* Initialize limiter */ IF( NE_32( ( error = IVAS_REND_GetNumOutChannels( hIvasRend, &numOutChannels ) ), IVAS_ERR_OK ) ) Loading Loading @@ -3675,27 +3681,38 @@ ivas_error IVAS_REND_Open( isar_init_split_rend_handles( hIvasRend->splitRendWrapper ); } hIvasRend->splitRendEncBuffer.data_fx = NULL; move32(); hIvasRend->splitRendEncBuffer.config.is_cldfb = 0; move16(); hIvasRend->splitRendEncBuffer.config.numChannels = 0; move16(); hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel = 0; move16(); FOR( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { initRendInputBase_fx( &hIvasRend->inputsIsm[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsIsm[i].crendWrapper = NULL; move32(); hIvasRend->inputsIsm[i].hReverb = NULL; move32(); hIvasRend->inputsIsm[i].tdRendWrapper.hBinRendererTd = NULL; move32(); FOR( j = 0; j < MAX_HEAD_ROT_POSES - 1; ++j ) { hIvasRend->inputsIsm[i].splitTdRendWrappers[j].hBinRendererTd = NULL; move32(); hIvasRend->inputsIsm[i].splitTdRendWrappers[j].hHrtfTD = NULL; move32(); } hIvasRend->inputsIsm[i].nonDiegeticPan = nonDiegeticPan; move16(); hIvasRend->inputsIsm[i].nonDiegeticPanGain_fx = nonDiegeticPanGain; move32(); hIvasRend->inputsIsm[i].hOMasa = NULL; move32(); hIvasRend->inputsIsm[i].bufferData_fx = NULL; move32(); } FOR( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) Loading @@ -3703,20 +3720,29 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsMc[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsMc[i].efapInWrapper.hEfap = NULL; move32(); hIvasRend->inputsMc[i].crendWrapper = NULL; move32(); hIvasRend->inputsMc[i].hReverb = NULL; move32(); hIvasRend->inputsMc[i].tdRendWrapper.hBinRendererTd = NULL; move32(); hIvasRend->inputsMc[i].bufferData_fx = NULL; move32(); hIvasRend->inputsMc[i].lfeDelayBuffer_fx = NULL; move32(); hIvasRend->inputsMc[i].nonDiegeticPan = nonDiegeticPan; move16(); hIvasRend->inputsMc[i].nonDiegeticPanGain_fx = nonDiegeticPanGain; move32(); hIvasRend->inputsMc[i].hMcMasa = NULL; move32(); FOR( j = 0; j < MAX_HEAD_ROT_POSES - 1; ++j ) { hIvasRend->inputsMc[i].splitTdRendWrappers[j].hBinRendererTd = NULL; move32(); hIvasRend->inputsMc[i].splitTdRendWrappers[j].hHrtfTD = NULL; move32(); } } Loading @@ -3725,10 +3751,15 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsSba[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsSba[i].crendWrapper = NULL; move32(); hIvasRend->inputsSba[i].cldfbRendWrapper.hCldfbRend = NULL; move32(); hIvasRend->inputsSba[i].cldfbRendWrapper.hHrtfFastConv = NULL; move32(); hIvasRend->inputsSba[i].bufferData_fx = NULL; move32(); hIvasRend->inputsSba[i].hDirAC = NULL; move32(); } FOR( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) Loading @@ -3736,17 +3767,25 @@ ivas_error IVAS_REND_Open( initRendInputBase_fx( &hIvasRend->inputsMasa[i].base, IVAS_AUDIO_CONFIG_INVALID, 0, getRendCtx( hIvasRend ), NULL, 0 ); hIvasRend->inputsMasa[i].metadataHasBeenFed = false; move16(); hIvasRend->inputsMasa[i].bufferData_fx = NULL; move32(); hIvasRend->inputsMasa[i].hMasaPrerend = NULL; move32(); hIvasRend->inputsMasa[i].hMasaExtRend = NULL; move16(); move32(); } hIvasRend->hHrtfs.hHrtfFastConv = NULL; move32(); hIvasRend->hHrtfs.hHrtfParambin = NULL; move32(); hIvasRend->hHrtfs.hHrtfTD = NULL; move32(); hIvasRend->hHrtfs.hHrtfCrend = NULL; move32(); hIvasRend->hHrtfs.hHrtfStatistics = NULL; move32(); IF( asHrtfBinary ) { Loading