OpenNI - Get both depth and color frames from one VideoStream (Java wrapper)

Hi there,

I am writing a Java application and am using the OpenNI Java wrapper. There are 4 Orbbec Astra sensors connected.

The desired flow is as follows:

  • Initialize 4 VideoStreams and start them
  • Capture DEPTH frames from each (asynchronously)
  • Capture COLOR frames from each (asynchronously)

I don’t want to close+restart the VideoStreams between captures because this takes time. However, I’ve run into some issues for the approaches I’ve tried so far:

  1. Use 8 VideoStreams (2 per device) - 4 COLOR and 4 DEPTH. This results in the frames never being available and the app hanging forever after the first capture.
  2. Keep 1 VideoStream per device, but change the VideoMode between captures so that its PixelFormat matches the COLOR/DEPTH mode I need (in this case it was RGB-888 and DEPTH-1MM if I recall correctly). Here I got an error when changing the VideoMode: Stream setProperty(3) failed

Has anyone been in a similar situation? I essentially want to capture COLOR and DEPTH frames from a single VideoStream without restarting it.

Any direction would be appreciated - thanks!