Commit 038cc8cb authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[fix] non-zero DoF renderer split-pre rendering

parent b84ae51b
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -9238,21 +9238,17 @@ ivas_error IVAS_REND_GetSamples(
        return error;
    }

    if ( numOutChannels != outAudio.config.numChannels )
    if ( numOutChannels != outAudio.config.numChannels
#ifdef API_5MS
         && hIvasRend->outputConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_CODED && hIvasRend->outputConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_SPLIT_PCM
#endif
    )
    {
        return IVAS_ERR_WRONG_NUM_CHANNELS;
    }

#ifdef API_5MS
    /* outAudio.data is only valid if not in split rendering mode */
    if ( hBits == NULL )
    {
#endif
    /* Clear original output buffer */
    set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.numSamplesPerChannel );
#ifdef API_5MS
    }
#endif


#ifdef SPLIT_REND_WITH_HEAD_ROT
@@ -9278,8 +9274,10 @@ ivas_error IVAS_REND_GetSamples(
            hIvasRend->headRotData.sr_pose_pred_axis );
        assert( num_poses_orig == hIvasRend->splitRendWrapper.multiBinPoseData.num_poses && "number of poses should not change dynamically" );

#ifndef API_5MS
        /* Clear output buffer */
        set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.numSamplesPerChannel );
#endif
    }
#endif
    if ( ( error = renderActiveInputsIsm( hIvasRend, outAudio ) ) != IVAS_ERR_OK )
@@ -9418,7 +9416,15 @@ ivas_error IVAS_REND_GetSplitBinauralBitstream(
        }
    }
    hIvasRend->splitRendEncBuffer.config.is_cldfb = cldfb_in;
    hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel = ( cldfb_in ? 2 : 1 ) * hIvasRend->hRendererConfig->split_rend_config.codec_frame_size_ms * ( hIvasRend->sampleRateOut / 1000 );
    if ( hIvasRend->hRendererConfig->split_rend_config.dof == 0 || hIvasRend->hRendererConfig->split_rend_config.poseCorrectionMode == IVAS_SPLIT_REND_POSE_CORRECTION_MODE_NONE )
    {
        hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel = hIvasRend->hRendererConfig->split_rend_config.codec_frame_size_ms * ( hIvasRend->sampleRateOut / 1000 );
    }
    else
    {
        hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel = hIvasRend->sampleRateOut / FRAMES_PER_SEC;
    }
    hIvasRend->splitRendEncBuffer.config.numSamplesPerChannel *= cldfb_in ? 2 : 1;

    return getSamplesInternal( hIvasRend, hIvasRend->splitRendEncBuffer, hBits );
}