Issue metadata
Sign in to add a comment
|
can not get video frame when getusermedia with special constraints to open camera(Microsoft HD - 3000) in mac
Reported by
xp...@grandstream.cn,
Sep 11 2017
|
||||||||||||||||||||||||
Issue descriptionWhat steps will reproduce the problem? 1.using the demo https://webrtc.github.io/samples/src/content/peerconnection/constraints/ to open camera: Microsoft LifeCam HD-3000 with some constraints: Resolution: width:(min:1280,max:1280),height:(min:720,max:720) or width:(min:0,max:1280),height:(min:0,max:720) or width:(min:0,max:1920),height:(min:0,max:1080) framerate:(min:0,max:15) result : black frame framerate:(min:5,max:15) result : black frame framerate:(min:10,max:15) result : black frame framerate:(min:11,max:15) result : OK framerate:(min:14,max:15) result : OK What is the expected result? succeed to open camera and the video is normal. What do you see instead? the video frame we got is black when the min of framerate is less than 11 when the max of framerate is 15. What version of the product are you using? On what operating system? Chrome 61.0.3163.79 64bit ; Mac Mini. Please provide any additional information below. We only find the issue with Mac + Chrome + MicroSoft LiftCam HD-3000 . It's OK in Mac + Chrome + other camera device we have . It's OK in windows7/windows10 + chrome + MicroSoft LiftCam HD-3000 with the same constraints. It's OK in Mac + Firefox + MicroSoft LiftCam HD-3000 with the same constraints.
,
Sep 18 2017
This is a Chrome issue and not a WebRTC issue, so I'm not a suitable owner. Please move to the Chrome tracker.
,
Sep 18 2017
,
Sep 18 2017
,
Sep 18 2017
,
Sep 18 2017
xpeng@grandstream.cn@: Can you provide the output of "Video Capture" tab in chrome://media-internals for the problematic camera both on Mac and on Windows? I suspect this camera has a native mode with 10fps that somehow does not work on a Mac. When the requested range is [10-15] fps, the 10fps mode is requested and fails. When range is [11-15] fps, the camera is probably opened in 30fps mode (or some other mode with more than 15fps), which works, and Chrome adjusts the frame rate to 15fps. +
,
Sep 18 2017
,
Sep 19 2017
Mac:
[
{
"captureApi": "AV Foundation",
"formats": [
{
"resolution": "160x120",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "176x144",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "320x240",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "416x240",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "352x288",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "424x240",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "640x360",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "640x480",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "800x448",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "800x600",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "960x544",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "1280x720",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "1280x800",
"fps": "10.00",
"storage": "CPU"
}
],
"id": "0x14100000045e0779",
"name": "Microsoft® LifeCam HD-3000 #2 (045e:0779)"
}
]
,
Sep 19 2017
Windows 10 :
[
{
"captureApi": "Direct Show",
"formats": [
{
"resolution": "160x120",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "176x144",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "320x240",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "352x288",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "424x240",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "640x360",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "640x480",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "800x448",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "800x600",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "960x544",
"fps": "30.00",
"storage": "CPU"
},
{
"resolution": "1280x720",
"fps": "30.00",
"storage": "CPU"
}
],
"id": "\\\\?\\usb#vid_045e&pid_0779&mi_00#6&5e5aa1b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\global",
"name": "Microsoft® LifeCam HD-3000 (045e:0779)"
}
]
,
Sep 19 2017
Thank you for providing more feedback. Adding requester "guidou@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Sep 23 2017
I think the problem is that on Mac, the camera is reporting support for 1280x800@10Hz but it doesn't actually work. When requesting 1280x720 with 10fps or less, that mode is selected and it doesn't work. On Windows it doesn't happen because the camera doesn't report that mode on Windows. chfremer@: It looks like this type of problem is happening with several devices since r493950. Should we consider reverting?
,
Sep 28 2017
Hmm. Drivers reporting support for formats that do not actually work is indeed problematic. However, I don't think that reverting r493950 would be a viable counter-measure for two reasons: 1. Before r493950, we reported the highest fps per resolution as supported. If the problematic format supported by the driver happens to be the highest-fps one for that resolution, we can still run into this issue. 2. r493950 was required to fix the issue that lower-than-maximum fps formats could never be selected even if supported. An alternative, but admittedly ugly solution would be to introduce a blacklisting mechanism to teach Chromium to suppress known-invalid formats for certain camera/OS combinations.
,
Oct 6 2017
guidou@/ chfremer@ -- A friendly ping. Is there any update on this issue. Thanks!
,
Oct 6 2017
,
Oct 6 2017
If guidou@'s theory from #11 is correct and this is caused by the camera driver reporting a format as supported that does not actually work, then I would be inclined to mark this as Won't Fix. It does not seem severe enough to justify adding the complexity and overhead of maintaining a blacklisting mechanism. I believe we have a HD-3000 in our labs somewhere. If we do I can do some quick testing to confirm the theory.
,
Oct 17 2017
I just tried on my MacBook Air with the following results:
Chrome 61.0.3163.100 (stable)
Resolution: width:(min:0,max:1920),height:(min:0,max:1080)
framerate:(min:0,max:15) result : black frame
framerate:(min:5,max:15) result : black frame
framerate:(min:10,max:15) result : black frame
framerate:(min:11,max:15) result : Falls back to opening internal camera at 640x480.
framerate:(min:14,max:15) result : Falls back to opening internal camera at 640x480.
framerate:(min:0,max:30) result : black frame
framerate:(min:0,max:0) result : opens HD-3000 at 640x480
Resolution: width:(min:1280,max:1920),height:(min:0,max:1080)
framerate:(min:0,max:0) result : opens HD-3000 at 1280x720
framerate:(min:30,max:60) result : opens HD-3000 at 1280x720 (doesn't look like 30fps though)
I also tried on a Windows 10 machine and found that, for me, chrome://media-internals does report
{
"resolution": "1280x800",
"fps": "10.00",
"storage": "CPU"
}
as supported, and also succeeds opening that.
I will have to create and look at a debug build on Mac OS to get a closer look at what is going on.
,
Mar 21 2018
Is this issue still exists? if so Seems like the same scenario as 571074. Can we merge into a single ticket?
,
Mar 23 2018
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by oprypin@chromium.org
, Sep 18 2017Labels: OS-Mac