diff --git a/corelib/src/CameraRGBD.cpp b/corelib/src/CameraRGBD.cpp index 1acc470a..354aa7e0 100644 --- a/corelib/src/CameraRGBD.cpp +++ b/corelib/src/CameraRGBD.cpp @@ -519,13 +519,21 @@ bool CameraOpenNI2::init(const std::string & calibrationFolder) return false; } - if(!_device->isImageRegistrationModeSupported(openni::IMAGE_REGISTRATION_DEPTH_TO_COLOR)) + if(UFile::getExtension(_deviceId).compare("oni")!=0 && + !_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)