New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 664150 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 624436



Sign in to add a comment

Support RealSense R200 depth stream

Project Member Reported by martina....@intel.com, Nov 10 2016

Issue description

As described in  issue #662911  #8 , the output of the depth stream when using the R200 camera doesn't look right, probably because the R200 uses some disparity format different from the other depth cameras.
 
Screenshot from 2016-11-08 11-49-44.png
111 KB View Download
I've shifted the data by 4 and it looks better now (a lot more recognizable). IR is still black. The attached image shows my hand in the depth view.
Screenshot from 2016-11-10 15-50-52.png
183 KB View Download
Description: Show this description
I forgot to mention - the image I get when using librealsense and not Chromium to get the image looks fine - similar to the second image.

The bit shift is just a hack and not the right way the data should be displayed. Info about how the format actually looks like should be somewhere here https://github.com/IntelRealSense/librealsense/blob/master/doc/projection.md#depth-image-formats.
mediacapture-depth specification doesn't handle specific rendering of disparity mode for R200 camera [1].
Don't think there's much we can do about this in Chromium - this is how upper byte of 16-bit data looks.
We could check though:
1) Find if it is possible and how to switch disparity (only available in R200) mode ON/OFF. 
2) Propose rendering for disparity mode in mediacapture-depth spec.


[1]
https://github.com/w3c/mediacapture-depth/issues/80#issuecomment-260641134
This is not a problem of disparity mode, it's simply that the R200 uses a different scale. The other depth cameras use a 1/32 mm scale while R200 uses a 1 mm scale, making the normal output look like random noise. We could either just scale it down by 32 with glPixelTransferf(*_SCALE) or something similar, or use some equivalent of librealsense's rs_set_device_option(...) with RS_OPTION_R200_DEPTH_UNITS, set to 31.

Technically, the data currently shown aren't exactly wrong - they will just confuse the users a lot, We could  put this into a JS library on top of Chromium, but we might get bug reports when uses see expected output in librealsense and black with a little noise with Chromium.
The work on this needs to be moved to:
https://www.w3.org/TR/mediacapture-depth/#the-video-element
there it is/should be defined how to render long range, near range, disparity this in video element.

Chromium exposes row 16-bit format, deprojection to real world coordinates (scale) from 16-bit value happens using mediacapture-depth API in JS.

Status: WontFix (was: Assigned)

Sign in to add a comment