New issue
Advanced search Search tips

Issue 766128 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 526870
Owner: ----
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug


Previous locations:
webrtc:8227


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 description

What 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.

 
Components: Webcam
Labels: OS-Mac

Comment 2 by magjed@webrtc.org, Sep 18 2017

Owner: oprypin@webrtc.org
This is a Chrome issue and not a WebRTC issue, so I'm not a suitable owner. Please move to the Chrome tracker.
Project: chromium
Moved issue webrtc:8227 to now be  issue chromium:766128 .
Components: Blink
Owner: ----
Components: -Blink Blink>GetUserMedia

Comment 6 by guidou@chromium.org, Sep 18 2017

Cc: guidou@chromium.org chfremer@chromium.org
Components: -Blink>GetUserMedia Blink>GetUserMedia>Webcam
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.

+

Comment 7 by guidou@chromium.org, Sep 18 2017

Labels: Needs-Feedback
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)"
  }
]

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)"
  }
]
Project Member

Comment 10 by sheriffbot@chromium.org, Sep 19 2017

Labels: -Needs-Feedback
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
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?
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. 
guidou@/ chfremer@ -- A friendly ping. Is there any update on this issue.
Thanks!
Status: Available (was: Unconfirmed)
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.
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.
Is this issue still exists? 

if so Seems like the same scenario as 571074. Can we merge into a single ticket?
Mergedinto: 526870
Status: Duplicate (was: Available)

Sign in to add a comment