RESOLVED FIXED 210932
getUserMedia returns OverConstrained on Jitsi
https://bugs.webkit.org/show_bug.cgi?id=210932
Summary getUserMedia returns OverConstrained on Jitsi
Philippe Normand
Reported 2020-04-23 12:14:44 PDT
Because of this block of code: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp#L267 Any reason why lower-resolutions presets are not checked? Jitsi requires 1280x720 at 30fps but because of that, if my webcam doesn't support this, similar lower presets (same aspect-ratio) are dimissed. I don't understand why :)
Attachments
gUM constraints (65.07 KB, image/png)
2020-04-24 09:21 PDT, Jaya
no flags
failing gUM (159.00 KB, image/png)
2020-04-24 10:22 PDT, Philippe Normand
no flags
gUM works in Chrome (197.67 KB, image/png)
2020-04-24 11:44 PDT, Philippe Normand
no flags
gUM probe (217.46 KB, image/png)
2020-04-24 13:58 PDT, Philippe Normand
no flags
WIP (1.56 KB, patch)
2020-06-26 09:42 PDT, Philippe Normand
no flags
Patch (18.62 KB, patch)
2020-07-02 01:44 PDT, youenn fablet
no flags
Philippe Normand
Comment 1 2020-04-23 12:18:17 PDT
That's one of the reasons Jitsi (meet.jit.si) doesn't work well currently on Safari. It would be great to fix it, as it's quite widely used nowadays.
youenn fablet
Comment 2 2020-04-23 12:23:57 PDT
So, you would like WebKit to upsample? This seems sad but is doable... Maybe we should bring that issue to Jitsi.
Philippe Normand
Comment 3 2020-04-23 12:42:11 PDT
Well, I think that upsampled video is better than no video at all :)
Philippe Normand
Comment 4 2020-04-23 13:29:12 PDT
Philippe Normand
Comment 5 2020-04-23 13:34:35 PDT
Another likely reproducer: https://test.webrtc.org
Jaya
Comment 6 2020-04-23 15:22:30 PDT
Hey there, I am a Jitsi developer. We do use ideal constraints so I am surprised you are running into this issue. Here is the link to the line of code - https://github.com/jitsi/lib-jitsi-meet/blob/master/modules/RTC/RTCUtils.js#L56 Can you pls provide me more details about the issue ? The github issue referenced in the above comment is a meta issue for all camera related bugs, I wasn't able to dig up your particular issue. Thank you !
Philippe Normand
Comment 7 2020-04-24 08:06:12 PDT
These are the constraints Jitsi currently requires for me: audioConstraints {"mandatoryConstraints":{},"advancedConstraints":[]} videoConstraints {"mandatoryConstraints":{"width":{"min":320,"max":1280,"ideal":1280},"height":{"min":180,"max":720,"ideal":720},"facingMode":{"exact":[],"ideal":["user"]}},"advancedConstraints":[]} This is a JSON internal serialization of the constraints... I can submit a patch if such feature is considered useful for logging.
Jaya
Comment 8 2020-04-24 09:21:56 PDT
Created attachment 397461 [details] gUM constraints
youenn fablet
Comment 9 2020-04-24 09:35:07 PDT
Seems like constraints that are ok, min is 320x280, ideal is 1280x720. I am not sure how we are hitting OverConstrained here.
youenn fablet
Comment 10 2020-04-24 09:35:25 PDT
navigator.mediaDevices.getUserMedia({video : {width:{"min":320,"max":1280,"ideal":1280},height:{"min":180,"max":720,"ideal":720}, facingMode: "user"} }) works for me locally.
Philippe Normand
Comment 11 2020-04-24 10:08:22 PDT
(In reply to youenn fablet from comment #10) > navigator.mediaDevices.getUserMedia({video : > {width:{"min":320,"max":1280,"ideal":1280},height:{"min":180,"max":720, > "ideal":720}, facingMode: "user"} }) works for me locally. What's your MBP model? On a early 2013 MBP, the gUM fails on Jitsi, I suppose because my webcam doesn't handle 720p at 30fps.
youenn fablet
Comment 12 2020-04-24 10:11:33 PDT
Mine is more recent but I am not sure it matters because Safari should process these constraints just fine as Lon as the web cam can provide 320x180. Can you try Safari Tech Preview maybe?
Philippe Normand
Comment 13 2020-04-24 10:22:35 PDT
Created attachment 397465 [details] failing gUM This is on Safari TP.
Philippe Normand
Comment 14 2020-04-24 10:25:48 PDT
navigator.mediaDevices.getUserMedia({video:{}}) works though ;)
youenn fablet
Comment 15 2020-04-24 11:16:58 PDT
(In reply to Philippe Normand from comment #14) > navigator.mediaDevices.getUserMedia({video:{}}) works though ;) Can you play a little bit with the constraints and reduce as much as possible? We should probably add a console log error message with the failing constraint.
Philippe Normand
Comment 16 2020-04-24 11:31:19 PDT
Any non-empty video constraint fails, basically. Even this: {video : {height:{"min":180}}}. The only working one I found so far is {video:{}}.
Philippe Normand
Comment 17 2020-04-24 11:44:13 PDT
Created attachment 397477 [details] gUM works in Chrome
Eric Carlson
Comment 18 2020-04-24 13:51:39 PDT
What does this produce: (async () => { try { const filter = ({width, height}) => ({width, height}); const stream = await navigator.mediaDevices.getUserMedia({video:{}}); const [track] = stream.getVideoTracks(); console.log(`Capabilities: ${JSON.stringify(filter(track.getCapabilities()), null, 2)}`); console.log(`Settings: ${JSON.stringify(filter(track.getSettings()), null, 2)}`); } catch(e) { console.log(e); } })();
Philippe Normand
Comment 19 2020-04-24 13:56:55 PDT
[Log] Capabilities: { "width": { "max": 1280, "min": 1 }, "height": { "max": 720, "min": 1 } } [Log] Settings: { "width": 640, "height": 480 }
Philippe Normand
Comment 20 2020-04-24 13:58:08 PDT
Created attachment 397504 [details] gUM probe
Philippe Normand
Comment 21 2020-04-27 10:03:13 PDT
(In reply to Philippe Normand from comment #19) > [Log] Capabilities: { > "width": { > "max": 1280, > "min": 1 > }, > "height": { > "max": 720, > "min": 1 > } > } > [Log] Settings: { > "width": 640, > "height": 480 > } Same on Chrome BTW. So is this a bug in the end?
Eric Carlson
Comment 22 2020-04-27 12:40:12 PDT
(In reply to Philippe Normand from comment #21) > > Same on Chrome BTW. So is this a bug in the end? It is definitely a bug if all non-empty video constraint fail.
Philippe Normand
Comment 23 2020-04-28 04:58:38 PDT
FWIW this isn't specific to the Mac port. Also happens in GTK.
Philippe Normand
Comment 24 2020-05-06 10:34:27 PDT
This yields no result in Safari TP: (async () => { for (let w = 1280; w > 0; w -= 10) { for (let h = 720; h > 0; h -= 10) { try { let stream = await navigator.mediaDevices.getUserMedia({ video: { width: { "min": w, "max": 1280, "ideal": w }, height: { "min": h, "max": 720, "ideal": h } } }); console.log("Success " + w + "x" + h); } catch (err) {} } } console.log("Done"); })();
Ribero
Comment 25 2020-06-02 01:58:38 PDT
Same situation in my context running: (async () => { try { const filter = ({width, height}) => ({width, height}); const stream = await navigator.mediaDevices.getUserMedia({video:{}}); const [track] = stream.getVideoTracks(); console.log(`Capabilities: ${JSON.stringify(filter(track.getCapabilities()), null, 2)}`); console.log(`Settings: ${JSON.stringify(filter(track.getSettings()), null, 2)}`); } catch(e) { console.log(e); } })(); with: MacBook Pro (Retina, mid-2012), macOS 10.14.6 / Safari 13.1 and 13.1.1 : [Log] Capabilities: { "width": { "max": 1280, "min": 1 }, "height": { "max": 720, "min": 1 } } [Log] Settings: { "width": 640, "height": 480 } iMac (Retina 4K, 21.5-inch, 2017), macOS 10.14.6 / Safari 13.1 and 13.1.1: [Log] Capabilities: { "width": { "max": 1280, "min": 1 }, "height": { "max": 720, "min": 1 } } [Log] Settings: { "width": 640, "height": 480 } and with an antique Mac Pro (beginning 2008), macOS 10.13.6 (17G66), Safari 13.0.4 (13608.4.9.1.4) + iSight : [Log] Capabilities: { "width": { "max": 640, "min": 1 }, "height": { "max": 480, "min": 1 } } [Log] Settings: { "width": 640, "height": 480 }
Jaya
Comment 26 2020-06-16 05:29:28 PDT
Any chance of this getting fixed ? We have more Jitsi users complaining about this issue. Specifying only ideal constraint and not specifying min/max values for width/height seem to work for some of the cases.
Radar WebKit Bug Importer
Comment 27 2020-06-16 05:42:07 PDT
youenn fablet
Comment 28 2020-06-26 05:56:42 PDT
Philippe, if you have time to build WebKit Tot with https://bugs.webkit.org/show_bug.cgi?id=213643 applied on your laptop, that might help. Or we can wait for STP to pick up this change.
Philippe Normand
Comment 29 2020-06-26 07:26:10 PDT
(In reply to youenn fablet from comment #28) > Philippe, if you have time to build WebKit Tot with > https://bugs.webkit.org/show_bug.cgi?id=213643 applied on your laptop, that > might help. Or we can wait for STP to pick up this change. I'm not sure this will help, that patch doesn't log the call site I referred to in comment 0, afaics.
youenn fablet
Comment 30 2020-06-26 07:28:22 PDT
(In reply to Philippe Normand from comment #0) > Because of this block of code: > https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/ > mediastream/RealtimeVideoCaptureSource.cpp#L267 > > Any reason why lower-resolutions presets are not checked? We do not want to super-sample in general. > Jitsi requires 1280x720 at 30fps but because of that, if my webcam doesn't > support this, similar lower presets (same aspect-ratio) are dimissed. I > don't understand why :) It asks for 1280x720 but these are ideal constraints so normally, if it cannot be met, it should not result in an error.
youenn fablet
Comment 31 2020-06-26 07:29:07 PDT
> I'm not sure this will help, that patch doesn't log the call site I referred > to in comment 0, afaics. It should log which constraint is failing and if this is a video wifth/height/frame rate constraint, the video presets available.
Philippe Normand
Comment 32 2020-06-26 07:35:00 PDT
Starting MiniBrowser. RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate failed supporting constraints 1280 720 30.000000 VideoPreset of size (2304,1536) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (2304,1296) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (1920,1080) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset of size (1600,896) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset of size (1280,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset of size (960,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (1024,576) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (800,600) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (864,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (800,448) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,360) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (432,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (352,288) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,180) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (176,144) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,120) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,90) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] Video capture was requested but no device was found amongst 1 devices IntConstraint 1, min 320, max 1280, exact -1, ideal 1280 IntConstraint 2, min 180, max 720, exact -1, ideal 720 MediaConstraint 5 of type 4 RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate failed supporting constraints 1280 720 30.000000 VideoPreset of size (2304,1536) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (2304,1296) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (1920,1080) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset of size (1600,896) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset of size (1280,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset of size (960,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (1024,576) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (800,600) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (864,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (800,448) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,360) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (432,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (352,288) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,180) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (176,144) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,120) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,90) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] Video capture was requested but no device was found amongst 1 devices IntConstraint 1, min 320, max 1280, exact -1, ideal 1280 IntConstraint 2, min 180, max 720, exact -1, ideal 720 MediaConstraint 10 of type 4
Philippe Normand
Comment 33 2020-06-26 07:35:51 PDT
That's GTK on my linux workstation, with a logitech C920 webcam.
Philippe Normand
Comment 34 2020-06-26 07:39:48 PDT
$ gst-device-monitor-1.0 Video/Source Probing devices... Device found: name : HD Pro Webcam C920 class : Video/Source caps : video/x-raw, format=(string)YUY2, width=(int)2304, height=(int)1536, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)2/1; video/x-raw, format=(string)YUY2, width=(int)2304, height=(int)1296, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)2/1; video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1; video/x-raw, format=(string)YUY2, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-raw, format=(string)YUY2, width=(int)160, height=(int)90, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; image/jpeg, width=(int)160, height=(int)90, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)160, height=(int)90, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 }; properties: device.path = /dev/video0 udev-probed = false device.api = v4l2 v4l2.device.driver = uvcvideo v4l2.device.card = "HD\ Pro\ Webcam\ C920" v4l2.device.bus_info = usb-0000:00:14.0-1 v4l2.device.version = 329235 (0x00050613) v4l2.device.capabilities = 2225078273 (0x84a00001) v4l2.device.device_caps = 69206017 (0x04200001) gst-launch-1.0 v4l2src ! ...
Philippe Normand
Comment 35 2020-06-26 07:41:52 PDT
I suppose this failure is kinda expected because the webcam doesn't support 1280x720@30 for raw video. But it would be nice to fallback to a smaller resolution. I can't test on my MBP now, I'll wait the Safari TP update.
youenn fablet
Comment 36 2020-06-26 07:50:30 PDT
Thanks, The issue might be that the width can go from 144 to 2304, so 1280 is fine, but frame rate cannot follow, hence the issue. I guess the issue is ideal constraints are not handled properly. (In reply to Philippe Normand from comment #32) > Starting MiniBrowser. > RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate failed supporting > constraints 1280 720 30.000000 > VideoPreset of size (2304,1536) and type 2 > VideoPreset frame rate range [2.000000, 2.000000] > VideoPreset of size (2304,1296) and type 2 > VideoPreset frame rate range [2.000000, 2.000000] > VideoPreset of size (1920,1080) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset of size (1600,896) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset of size (1280,720) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset of size (960,720) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset of size (1024,576) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset of size (800,600) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset of size (864,480) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset of size (800,448) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (640,480) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (640,360) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (432,240) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (352,288) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (320,240) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (320,180) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (176,144) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (160,120) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (160,90) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > Video capture was requested but no device was found amongst 1 devices > IntConstraint 1, min 320, max 1280, exact -1, ideal 1280 > IntConstraint 2, min 180, max 720, exact -1, ideal 720 > MediaConstraint 5 of type 4 > RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate failed supporting > constraints 1280 720 30.000000 > VideoPreset of size (2304,1536) and type 2 > VideoPreset frame rate range [2.000000, 2.000000] > VideoPreset of size (2304,1296) and type 2 > VideoPreset frame rate range [2.000000, 2.000000] > VideoPreset of size (1920,1080) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset of size (1600,896) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset of size (1280,720) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset of size (960,720) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset of size (1024,576) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset of size (800,600) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset of size (864,480) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset of size (800,448) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (640,480) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (640,360) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (432,240) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (352,288) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (320,240) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (320,180) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (176,144) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (160,120) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > VideoPreset of size (160,90) and type 2 > VideoPreset frame rate range [5.000000, 5.000000] > VideoPreset frame rate range [7.500000, 7.500000] > VideoPreset frame rate range [10.000000, 10.000000] > VideoPreset frame rate range [15.000000, 15.000000] > VideoPreset frame rate range [20.000000, 20.000000] > VideoPreset frame rate range [24.000000, 24.000000] > VideoPreset frame rate range [30.000000, 30.000000] > Video capture was requested but no device was found amongst 1 devices > IntConstraint 1, min 320, max 1280, exact -1, ideal 1280 > IntConstraint 2, min 180, max 720, exact -1, ideal 720 > MediaConstraint 10 of type 4
youenn fablet
Comment 37 2020-06-26 08:20:06 PDT
In bool RealtimeMediaSource::supportsSizeAndFrameRate, we select width, height and frameRate independently and then try to apply them jointly. If it fails jointly, we are failing, but we should not with ideal constraints.
Philippe Normand
Comment 38 2020-06-26 09:42:38 PDT
Created attachment 402875 [details] WIP This crude patch works: Starting MiniBrowser. RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate failed supporting constraints 1280 720 30.000000 VideoPreset of size (2304,1536) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (2304,1296) and type 2 VideoPreset frame rate range [2.000000, 2.000000] VideoPreset of size (1920,1080) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset of size (1600,896) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset of size (1280,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset of size (960,720) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (1024,576) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset of size (800,600) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (864,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset of size (800,448) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,480) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (640,360) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (432,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (352,288) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,240) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (320,180) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (176,144) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,120) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000] VideoPreset of size (160,90) and type 2 VideoPreset frame rate range [5.000000, 5.000000] VideoPreset frame rate range [7.500000, 7.500000] VideoPreset frame rate range [10.000000, 10.000000] VideoPreset frame rate range [15.000000, 15.000000] VideoPreset frame rate range [20.000000, 20.000000] VideoPreset frame rate range [24.000000, 24.000000] VideoPreset frame rate range [30.000000, 30.000000]
youenn fablet
Comment 39 2020-07-02 01:44:44 PDT
Philippe Normand
Comment 40 2020-07-02 02:55:57 PDT
Nice, I confirm this works here on Linux in Jitsi. I'd give a r+ but you didn't ask for it :)
youenn fablet
Comment 41 2020-07-02 04:23:47 PDT
(In reply to Philippe Normand from comment #40) > Nice, I confirm this works here on Linux in Jitsi. I'd give a r+ but you > didn't ask for it :) Here it is!
Philippe Normand
Comment 42 2020-07-02 06:56:51 PDT
Comment on attachment 403353 [details] Patch Thanks, Youenn :)
EWS
Comment 43 2020-07-02 07:05:34 PDT
Committed r263844: <https://trac.webkit.org/changeset/263844> All reviewed patches have been landed. Closing bug and clearing flags on attachment 403353 [details].
Philippe Normand
Comment 44 2020-07-12 12:18:26 PDT
Works on Safari TP as well, btw :)
Note You need to log in before you can comment on or make changes to this bug.