diff --git a/corelib/src/CameraRGBD.cpp b/corelib/src/CameraRGBD.cpp index 354aa7e0..a246e611 100644 --- a/corelib/src/CameraRGBD.cpp +++ b/corelib/src/CameraRGBD.cpp @@ -519,21 +519,24 @@ bool CameraOpenNI2::init(const std::string & calibrationFolder) return false; } - if(UFile::getExtension(_deviceId).compare("oni")!=0 && - !_device->isImageRegistrationModeSupported(openni::IMAGE_REGISTRATION_DEPTH_TO_COLOR)) + if(UFile::getExtension(_deviceId).compare("oni")==0) + { + if(_device->getPlaybackControl() && + _device->getPlaybackControl()->setRepeatEnabled(false) != openni::STATUS_OK) + { + UERROR("CameraOpenNI2: Cannot set repeat mode to false."); + _device->close(); + openni::OpenNI::shutdown(); + return false; + } + } + else if(!_device->isImageRegistrationModeSupported(openni::IMAGE_REGISTRATION_DEPTH_TO_COLOR)) { UERROR("CameraOpenNI2: Device doesn't support depth/color registration."); _device->close(); openni::OpenNI::shutdown(); return false; } - else if(_device->getPlaybackControl() && _device->getPlaybackControl()->setRepeatEnabled(false) != openni::STATUS_OK) - { - UERROR("CameraOpenNI2: Cannot set repeat mode to false."); - _device->close(); - openni::OpenNI::shutdown(); - return false; - } if(_device->getSensorInfo(openni::SENSOR_DEPTH) == NULL || _device->getSensorInfo(openni::SENSOR_COLOR) == NULL)