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

Issue 807293 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug-Regression

Blocked on: View detail
issue 730068
issue 735576

Blocking:
issue 369849



Sign in to add a comment

Windows (Hello) depth camera streams are not accessible anymore for some cameras (e.g. Realsense D435)

Project Member Reported by aleksand...@intel.com, Jan 30 2018

Issue description

The issue is noticed with Intel RealSense D435 camera.
It doesn't happen with older cameras e.g. SR300.

This is the design behind the recent change in Windows driver MFT, and
related to Windows Hello [1]
"
This removes the camera from KSCATEGORY_VIDEO, which will block it
from being enumerated through the legacy enumeration by regular camera
apps.

Both the SkipCameraEnumeration and SensorCameraMode entries should be
placed in the DDInstall.HW section of the INF file.

"

Since non-RGB cameras could be marked as sensor cameras in driver inf
file, MFEnumDeviceSources would enumerate them only if
KSCATEGORY_SENSOR_CAMERA is supplied as attribute (attribute
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY with value
KSCATEGORY_SENSOR_CAMERA).

Camera is hidden for DirectShow access, too. DirectShow approach is the
default way to enumerate cameras on Windows in Chrome, currently. There
seems to be a consensus to replace DirectShow by MediaFoundation in 
Chrome Issue 735576 #c6 [2].

The fix would then include setting MediaFoundation as default (instead
of DirectShow based approach) on Windows8 and later and enumerating also
depth/IR cameras using the attribute above.

Even though the other depth cameras are visible on Windows, and D435
is visible on Linux, we could reconsider putting this under
experimental --enable-blink-features=MediaCaptureDepth or new flag.

I'll check this further.

[1]
https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/windows-hello-camera-driver-bring-up-guide

[2]
https://bugs.chromium.org/p/chromium/issues/detail?id=735576#c6


 
Cc: chfremer@chromium.org
chfremer@, wasn't this just fixed?
My takeaway from the report was that newer depth cameras are not supported via DirectShow, so this issue is blocked on our work of rolling out the MediaFoundation based video capture.
Status: Assigned (was: Untriaged)
Blocking: 369849
Blockedon: 730068
#2
Yes, it requires MediaFoundation.
Note that the regression is not caused by Chrome change - it is the change in Windows and MediaFoundation API. 

I quickly prototyped the fix.
The actions needed to fix this are:
a) enable media foundation (Issue 735576)
b) When enumerating cameras, enumerate additionally with KSCATEGORY_SENSOR_CAMERA attribute [1]
c) Fix regression in Issue 730068#74 (related to IMFCaptureEngine)
d) few more nits related to selecting preferred format.


[1]
https://cs.chromium.org/chromium/src/media/capture/video/win/video_capture_device_factory_win.cc?rcl=4402134e68e443b37121258c8f91b7d497379d3a&l=99

aleksand...@intel.com, I don't know if you receive notifications from issue 730068. Please take a look to [1].

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=730068#c77
> I don't know if you receive notifications
alaoui.rda@gmail.com.
Should receive them from now on. Thanks.
I feel there's a need to clarify. Issue 730068 patch is regression related to all 16-bit depth cameras. It works fine with default DirectShow implementation or with the patch reverted.
Issue here (807293) is related to a specific D415 [1] and D435 [2] as they apparently require MediaFoundation, as describes above.

[1] https://click.intel.com/intelr-realsensetm-depth-camera-d415.html
[2] https://click.intel.com/intelr-realsensetm-depth-camera-d435.html

Comment 8 by dagi...@gmail.com, Feb 22 2018

We saw an issue with this in the wild at Confrere. User has a Windows laptop with the F200 Depth camera, which is for some reason chosen by default with the following constraints:

{
 "video": {
  "deviceId": "default",
  "height": 720,
  "width": 1280
 },
 "audio": {
  "deviceId": "default"
 }
}

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Error is NotReadableError.

It's very bad to begin with that the depth camera is selected by default, the RGB camera should probably be default. We are going to work around this issue by listening for NotReadableError, fetching available devices from enumerateDevices and testing the next available camera for now (we have camera selector, so this should be fine).

Going to control panel and selecting a different default camera in the settings (RGB F200) works without issue.

See also attached files. One is an rtcstats dump open it with: https://fippo.github.io/webrtc-dump-importer/rtcstats

Other file is the output of chrome://media-internals. Unfortunately we don't have physical access to the machine for further testing at this point, but we have resolved this issue with the customer.
ed740585-9dc1-445e-a60f-a5bdaf598369
1.6 KB View Download
Screen Shot 2018-02-22 at 16.01.10.png
336 KB View Download
#8
daginge@gmail.com, thanks for the report. F200 has the same depth resolution (640x480) as SR300 [1] so let me try to reproduce and resolve this.
Moving this to new Issue 816979. Let's continue there. 

[1]
https://ark.intel.com/products/series/85364/Intel-RealSense-Cameras
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d

commit 3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d
Author: Aleksandar Stojiljkovic <aleksandar.stojiljkovic@intel.com>
Date: Fri Mar 09 05:37:33 2018

Access depth (KSCATEGORY_SENSOR_CAMERA) cameras on Windows.

The recent change in MediaFoundation API requires explicit enumeration
of sensor (newer depth Hello) cameras.

Pass-through mode fixes in MF capture implementation.

Verified using both IntelĀ® RealSenseā„¢ Depth Camera D435 and previous depth
cameras, those that are not marked as sensors in driver inf, e.g. SR300.

Minor refactoring static -> anonymous namespace.

BUG=807293

Change-Id: I8c13d360bfc30cae8902f8e03d553dff69dcbf34
Reviewed-on: https://chromium-review.googlesource.com/944627
Commit-Queue: Aleksandar Stojiljkovic <aleksandar.stojiljkovic@intel.com>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Christian Fremerey <chfremer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542042}
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/content/browser/media/media_internals_unittest.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/BUILD.gn
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/mojom/video_capture_types.mojom
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/mojom/video_capture_types_mojom_traits.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/video_capture_device_descriptor.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/video_capture_device_descriptor.h
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/capability_list_win.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/video_capture_device_factory_win.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/video_capture_device_factory_win.h
[add] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/video_capture_device_factory_win_unittest.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/video_capture_device_mf_win.cc
[modify] https://crrev.com/3af3bbb84f5badb5a2a6e9ba4cb814b790e7ff1d/media/capture/video/win/video_capture_device_mf_win_unittest.cc

Sign in to add a comment