Tests at https://jsfiddle.net/thehunmonkgroup/kmgebrfz/15/ seem to indicate that iOS 12.2 Beta now supports arbitrary video resolutions when acquiring a stream via navigator.mediaDevices.getUserMedia().
Local display of the acquired stream works fine, however, when sending that same stream to a peer connection, no data is received by the peer.
I've whipped up a quick test case to illustrate the issue:
1. Visit https://staging-connect.circleanywhere.com/public/ios/qqvga-stream-not-sent-to-peer/#vga in Google Chrome and via an iOS device, and notice that the Google Chrome instance correctly receives the video stream from the iOS device. This configuration sets the video constraints at VGA resolution, which in iOS 12.1 is an available 'standard' resolution.
2. Visit https://staging-connect.circleanywhere.com/public/ios/qqvga-stream-not-sent-to-peer/ in Google Chrome and via an iOS device, and notice that the Google Chrome instance DOES NOT correctly receive the video stream from the iOS device. This configuration sets the video constraints at QQVGA resolution, which in iOS 12.2 is an available 'scaled' resolution as far as I can tell.
Hi Chad, thanks for the report.
I was able to repro it on iOS. MacOS does not seem to have the issue.
https://youennf.github.io/webrtc-tests/src/content/peerconnection/pc-h264/ shows the issue.
Please try it on the latest iOS 13 beta.
My iPhone is too old for iOS 13, I'll test and report back once I get a newer device to test with, should be fairly soon.
In the meantime, will this fix be backported to iOS 12?
Is there some other way to get iOS 13 beta for testing besides installing XCode or OS X beta? Not really wanting to do that.
When with the over the air update be available for developers?
I've confirmed this bug is fixed on iOS 13 Beta -- however, it's still an issue on iOS 12.4, so the fix was not backported.