Loading lib_rend/lib_rend.c +26 −1 Original line number Diff line number Diff line Loading @@ -7175,6 +7175,7 @@ static ivas_error renderSplitBinauralWithPostRot( /*copy pose correction after MD is parsed*/ hSplitBin->multiBinPoseData.poseCorrectionMode = bits.pose_correction; /* decode audio */ if ( splitBinInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) { if ( bits.codec == IVAS_SPLIT_REND_CODEC_LCLD ) Loading @@ -7201,7 +7202,31 @@ static ivas_error renderSplitBinauralWithPostRot( copyBufferTo2dArray( splitBinInput->base.inputBuffer, tmpCrendBuffer ); } if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB ) /* apply pose correction if enabled */ if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE && isPostRendInputCldfb ) { /* 0DOF with LCLD codec requires CLDFB synthesis */ int16_t ch_idx, slot_idx; for ( ch_idx = 0; ch_idx < BINAURAL_CHANNELS; ch_idx++ ) { float *RealBuffer[CLDFB_NO_COL_MAX]; float *ImagBuffer[CLDFB_NO_COL_MAX]; for ( slot_idx = 0; slot_idx < CLDFB_NO_COL_MAX; slot_idx++ ) { RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[ch_idx][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[ch_idx][slot_idx]; } cldfbSynthesis( RealBuffer, ImagBuffer, &( tmpCrendBuffer[ch_idx][0] ), hSplitBin->hBinHrSplitPostRend->cldfbSyn[0]->no_channels * CLDFB_NO_COL_MAX, hSplitBin->hBinHrSplitPostRend->cldfbSyn[ch_idx] ); } } else if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB ) { ivas_rend_CldfbSplitPostRendProcess( hSplitBin->hBinHrSplitPostRend, Loading Loading
lib_rend/lib_rend.c +26 −1 Original line number Diff line number Diff line Loading @@ -7175,6 +7175,7 @@ static ivas_error renderSplitBinauralWithPostRot( /*copy pose correction after MD is parsed*/ hSplitBin->multiBinPoseData.poseCorrectionMode = bits.pose_correction; /* decode audio */ if ( splitBinInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) { if ( bits.codec == IVAS_SPLIT_REND_CODEC_LCLD ) Loading @@ -7201,7 +7202,31 @@ static ivas_error renderSplitBinauralWithPostRot( copyBufferTo2dArray( splitBinInput->base.inputBuffer, tmpCrendBuffer ); } if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB ) /* apply pose correction if enabled */ if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE && isPostRendInputCldfb ) { /* 0DOF with LCLD codec requires CLDFB synthesis */ int16_t ch_idx, slot_idx; for ( ch_idx = 0; ch_idx < BINAURAL_CHANNELS; ch_idx++ ) { float *RealBuffer[CLDFB_NO_COL_MAX]; float *ImagBuffer[CLDFB_NO_COL_MAX]; for ( slot_idx = 0; slot_idx < CLDFB_NO_COL_MAX; slot_idx++ ) { RealBuffer[slot_idx] = Cldfb_RealBuffer_Binaural[ch_idx][slot_idx]; ImagBuffer[slot_idx] = Cldfb_ImagBuffer_Binaural[ch_idx][slot_idx]; } cldfbSynthesis( RealBuffer, ImagBuffer, &( tmpCrendBuffer[ch_idx][0] ), hSplitBin->hBinHrSplitPostRend->cldfbSyn[0]->no_channels * CLDFB_NO_COL_MAX, hSplitBin->hBinHrSplitPostRend->cldfbSyn[ch_idx] ); } } else if ( bits.pose_correction == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_CLDFB ) { ivas_rend_CldfbSplitPostRendProcess( hSplitBin->hBinHrSplitPostRend, Loading