Multiple Astra Cameras - Inconsistent Depth-to-Color Registration

I’m running multiple Astra cameras on OpenNI 2.3.0 (Build 63)-Win32. I’m setting the device to have depth-to-color registration and frame sync, but when I switch between cameras sometimes one of the cameras is not registered. It seems to happen every other time I switch between them in the same process (Cam1=good → Cam2=good → Cam1=good → Cam2=bad → repeat). I’m calling shutdown and initialize between each call.

getImageRegistrationMode returns IMAGE_REGISTRATION_DEPTH_TO_COLOR when in this broken state, but the image is not registered.

I turned on file logging and nothing is shown in the log. They are identical for the registered and non-registered version.

It also seems to only happen on some machines. I’ve compared the Orbbec.ini files on each machine and they match. Turning on the registration in the ini file has no effect.

Possibly related, when I try to force the registration again while it’s in this broken state, I get a STATUS_BAD_PARAMETER returned even though isImageRegistrationModeSupported returns true. This happens when setting registration via setImageRegistrationMode AND setProperty.

Possibly related, the camera does not turn off the IR emitter when shutdown is called. We were using the Asus Xtion Pro cameras and have never seen that behavior on them. Might be a red herring though…