Loading lib_rend/lib_rend_fx.c +26 −11 Original line number Diff line number Diff line Loading @@ -1716,16 +1716,21 @@ static ivas_error alignInputDelay( } #ifdef FIX_1119_SPLIT_RENDERING_VOIP // NOTE(sgi2knj): The arithmetic below needs to use BASOPs for ( i = 0; i < inputAudio.config.numChannels; ++i ) FOR( i = 0; i < inputAudio.config.numChannels; ++i ) { p_read_channels[i] = inputAudio.data_fx + i * numSamplesToPush; Word32 tmp; tmp = imult3216( L_deposit_l( numSamplesToPush ), i ); p_read_channels[i] = inputAudio.data_fx + tmp; } ivas_TD_RINGBUF_PushChannels( inputBase->delayBuffer, p_read_channels, numSamplesToPush ); for ( i = 0; i < inputAudio.config.numChannels; ++i ) FOR( i = 0; i < inputAudio.config.numChannels; ++i ) { p_write_channels[i] = inputBase->inputBuffer.data_fx + i * numSamplesToPop; Word32 tmp; tmp = imult3216( L_deposit_l( numSamplesToPop ), i ); p_write_channels[i] = inputBase->inputBuffer.data_fx + tmp; } ivas_TD_RINGBUF_PopChannels( inputBase->delayBuffer, p_write_channels, numSamplesToPop ); #else Loading Loading @@ -9357,14 +9362,15 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( ISAR_SPLIT_REND_BITS_DATA bits; Word16 max_bands; Word16 Q_out[2]; Word16 pcm_out_flag; #ifdef FIX_1119_SPLIT_RENDERING_VOIP Word32 *p_Cldfb_RealBuffer_Binaural[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX]; Word32 *p_Cldfb_ImagBuffer_Binaural[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX]; Word16 j; for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) FOR( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) { for ( j = 0; j < CLDFB_NO_COL_MAX; ++j ) FOR( j = 0; j < CLDFB_NO_COL_MAX; ++j ) { p_Cldfb_RealBuffer_Binaural[i][j] = Cldfb_RealBuffer_Binaural[i][j]; p_Cldfb_ImagBuffer_Binaural[i][j] = Cldfb_ImagBuffer_Binaural[i][j]; Loading @@ -9380,6 +9386,15 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( Q_out[1] = Q31; move16(); pcm_out_flag = 0; move16(); if ( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) { pcm_out_flag = 1; move16(); } FOR( ch = 0; ch < i_mult( MAX_HEAD_ROT_POSES, BINAURAL_CHANNELS ); ch++ ) { tmpBinaural[ch] = tmpBinaural_buff[ch]; Loading Loading @@ -9520,7 +9535,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( tmpBinaural, 1, cldfb_in_flag, ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0, pcm_out_flag, ro_md_flag, Q_buff, Q_out ) ) != IVAS_ERR_OK ) Loading @@ -9538,7 +9553,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( tmpBinaural, 1, cldfb_in_flag, ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0, pcm_out_flag, ro_md_flag, Q_buff, Q_out ) ) != IVAS_ERR_OK ) Loading @@ -9547,7 +9562,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( return error; } IF( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) IF( pcm_out_flag ) { FOR( j = 0; j < BINAURAL_CHANNELS; j++ ) { Loading @@ -9558,7 +9573,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( convertInternalBitsBuffToBitsBuffer( hBits, bits ); /* copy over first pose data to outAudio */ IF( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) IF( pcm_out_flag ) { /* set outAudio to zero - getSamplesInternal only cleared splitRendEncBuffer */ set_zero_fx( outAudio.data_fx, i_mult( outAudio.config.numChannels, outAudio.config.numSamplesPerChannel ) ); Loading Loading
lib_rend/lib_rend_fx.c +26 −11 Original line number Diff line number Diff line Loading @@ -1716,16 +1716,21 @@ static ivas_error alignInputDelay( } #ifdef FIX_1119_SPLIT_RENDERING_VOIP // NOTE(sgi2knj): The arithmetic below needs to use BASOPs for ( i = 0; i < inputAudio.config.numChannels; ++i ) FOR( i = 0; i < inputAudio.config.numChannels; ++i ) { p_read_channels[i] = inputAudio.data_fx + i * numSamplesToPush; Word32 tmp; tmp = imult3216( L_deposit_l( numSamplesToPush ), i ); p_read_channels[i] = inputAudio.data_fx + tmp; } ivas_TD_RINGBUF_PushChannels( inputBase->delayBuffer, p_read_channels, numSamplesToPush ); for ( i = 0; i < inputAudio.config.numChannels; ++i ) FOR( i = 0; i < inputAudio.config.numChannels; ++i ) { p_write_channels[i] = inputBase->inputBuffer.data_fx + i * numSamplesToPop; Word32 tmp; tmp = imult3216( L_deposit_l( numSamplesToPop ), i ); p_write_channels[i] = inputBase->inputBuffer.data_fx + tmp; } ivas_TD_RINGBUF_PopChannels( inputBase->delayBuffer, p_write_channels, numSamplesToPop ); #else Loading Loading @@ -9357,14 +9362,15 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( ISAR_SPLIT_REND_BITS_DATA bits; Word16 max_bands; Word16 Q_out[2]; Word16 pcm_out_flag; #ifdef FIX_1119_SPLIT_RENDERING_VOIP Word32 *p_Cldfb_RealBuffer_Binaural[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX]; Word32 *p_Cldfb_ImagBuffer_Binaural[MAX_HEAD_ROT_POSES * BINAURAL_CHANNELS][CLDFB_NO_COL_MAX]; Word16 j; for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) FOR( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) { for ( j = 0; j < CLDFB_NO_COL_MAX; ++j ) FOR( j = 0; j < CLDFB_NO_COL_MAX; ++j ) { p_Cldfb_RealBuffer_Binaural[i][j] = Cldfb_RealBuffer_Binaural[i][j]; p_Cldfb_ImagBuffer_Binaural[i][j] = Cldfb_ImagBuffer_Binaural[i][j]; Loading @@ -9380,6 +9386,15 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( Q_out[1] = Q31; move16(); pcm_out_flag = 0; move16(); if ( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) { pcm_out_flag = 1; move16(); } FOR( ch = 0; ch < i_mult( MAX_HEAD_ROT_POSES, BINAURAL_CHANNELS ); ch++ ) { tmpBinaural[ch] = tmpBinaural_buff[ch]; Loading Loading @@ -9520,7 +9535,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( tmpBinaural, 1, cldfb_in_flag, ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0, pcm_out_flag, ro_md_flag, Q_buff, Q_out ) ) != IVAS_ERR_OK ) Loading @@ -9538,7 +9553,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( tmpBinaural, 1, cldfb_in_flag, ( hIvasRend->outputConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0, pcm_out_flag, ro_md_flag, Q_buff, Q_out ) ) != IVAS_ERR_OK ) Loading @@ -9547,7 +9562,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( return error; } IF( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) IF( pcm_out_flag ) { FOR( j = 0; j < BINAURAL_CHANNELS; j++ ) { Loading @@ -9558,7 +9573,7 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream( convertInternalBitsBuffToBitsBuffer( hBits, bits ); /* copy over first pose data to outAudio */ IF( EQ_32( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) IF( pcm_out_flag ) { /* set outAudio to zero - getSamplesInternal only cleared splitRendEncBuffer */ set_zero_fx( outAudio.data_fx, i_mult( outAudio.config.numChannels, outAudio.config.numSamplesPerChannel ) ); Loading