Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black screen when a second iOS user connects to a Twilio room #576

Closed
3 tasks done
samgabriel opened this issue Sep 24, 2020 · 32 comments
Closed
3 tasks done

Black screen when a second iOS user connects to a Twilio room #576

samgabriel opened this issue Sep 24, 2020 · 32 comments

Comments

@samgabriel
Copy link
Contributor

Please read first!

Please use Public Google Group (mailing list) for general technical discussions and questions.

  • I have used Google with the error message or bug in association with the library and Cordova words to make sure the issue I'm reporting is only related to iOSRTC.
  • I have provided steps to reproduce (e.g. sample code or updated extra/renderer-and-libwebrtc-tests.js file).
  • I have provided third party library name and version, ios, Xcode and plugin version and adapter.js version if used.

Note: If the checkboxes above are not checked (which you do after the issue is posted), the issue will be closed, removing this checkbox will result in automatic closed issue.

Versions affected

  • Cordova version (e.g 8.0.0):
  • Cordova iOS version (e.g 5.1.0):
  • Plugin version (e.g 6.0.13):
  • iOS version (e.g 13.3, 13.1):
  • Xcode version (e.g 11.3.1 ):
  • WebRTC-adapter version (e.g. packaged):
  • ** Twilio 2.7.2 and 2.4.2

Description

This was originally mentioned on #569
With iosrtc running whenever a user connects from iosrtc 6.0.13 using twilio. iosrtc shows black screen for the user's video.

Steps to reproduce

Connect to a video room using twilio. Connect a desktop user using Chrome observe the desktop screen video showing correctly.
Connect another user from an ios app running iosrtc. Observe a blackscreen showing instead of the user's video.

Expected results

iosrtc shows the video of the second user.

Actual results

Black screen

Here is the log file that were able to reproduce consistently.

2020-09-24 12:58:03.451314-0400 Brainfuse[1222:42625] iosrtc:RTCDataChannel onEvent() | [type:message, data:{"message":"{\"off\":[],\"on\":[\"MTf97ae17a259dbbe94c01b397fe2c87e4\"],\"track_toggles\":[{\"sid\":\"MTf97ae17a259dbbe94c01b397fe2c87e4\",\"state\":\"on\"}],\"type\":\"track_switch_off\"}\n","type":"message"}] +46s
2020-09-24 12:58:03.455791-0400 Brainfuse[1222:42625] helpnow4 published track video
2020-09-24 12:58:03.456175-0400 Brainfuse[1222:42625] cancel disconnect timer
2020-09-24 12:58:03.460451-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() [desc:{"type":"offer","sdp":"v=0\r\no=- 3809955436 3809955438 IN IP4 0.0.0.0\r\ns=VM3921ac915ffc9eae572104af947bc405\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=ice-lite\r\na=msid-semantic: WMS *\r\na=group:BUNDLE audio video data\r\nm=audio 1 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:audio\r\na=recvonly\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\nm=video 1 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:100 H264/90000\r\na=rtpmap:127 VP8/90000\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtcp-rsize\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:video\r\na=sendrecv\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\na=ssrc:1240258836 cname:user401308011@host-90d440db\r\na=ssrc:1240258836 msid:default bc7609f1-7a77-41e3-b692-b383312ab294\r\na=ssrc:3793072082 cname:user401308011@host-90d440db\r\na=ssrc:3793072082 msid:default fc56e758-1c99-4966-abb8-fc0ec204321b\r\na=ssrc:765007587 cname:user401308011@host-90d440db\r\na=ssrc:765007587 msid:default 9190c7d7-1ff3-4ea7-b099-b8072066c57c\r\nm=application 1 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sctpmap:5000 webrtc-datachannel 16\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=setup:actpass\r\na=mid:data\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\n"}] +46s
2020-09-24 12:58:03.471550-0400 Brainfuse[1222:42625] THREAD WARNING: ['Console'] took '11.124268' ms. Plugin should use a background thread.
2020-09-24 12:58:03.472123-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setRemoteDescription()
2020-09-24 12:58:03.472563-0400 Brainfuse[1222:42763] PluginRTCPeerConnection#setRemoteDescription()
2020-09-24 12:58:03.475114-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("have-remote-offer")]
2020-09-24 12:58:03.477793-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onaddtrack
2020-09-24 12:58:03.478024-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:03.479668-0400 Brainfuse[1222:42791] PluginMediaStream#init()
2020-09-24 12:58:03.481362-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:03.481713-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:bc7609f1-7a77-41e3-b692-b383312ab294]
2020-09-24 12:58:03.482034-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:03.482372-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:fc56e758-1c99-4966-abb8-fc0ec204321b]
2020-09-24 12:58:03.482773-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:03.483043-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:9190c7d7-1ff3-4ea7-b099-b8072066c57c]
2020-09-24 12:58:03.483741-0400 Brainfuse[1222:42791] PluginMediaStream#run()
2020-09-24 12:58:03.484918-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onaddtrack stream id ** default_C16FB2B0-E8A7-4C60-B551-B8550F416E12 
2020-09-24 12:58:03.485095-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#deinit()
2020-09-24 12:58:03.485915-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setRemoteDescription() | success callback
2020-09-24 12:58:03.510969-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"type":"signalingstatechange","signalingState":"have-remote-offer"}] +50ms
2020-09-24 12:58:03.511716-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:track, data:{"stream":{"id":"default_C16FB2B0-E8A7-4C60-B551-B8550F416E12","audioTracks":{},"videoTracks":{"bc7609f1-7a77-41e3-b692-b383312ab294":{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"},"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"fc56e758-1c99-4966-abb8-fc0ec204321b":{"readyState":"live","id":"fc56e758-1c99-4966-abb8-fc0ec204321b","kind":"video","enabled":true,"trackId":"fc56e758-1c99-4966-abb8-fc0ec204321b"}}},"track":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"streamId":"default_C16FB2B0-E8A7-4C60-B551-B8550F416E12","type":"track"}] +1ms
2020-09-24 12:58:03.514914-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"}] +46s
2020-09-24 12:58:03.515632-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:03.516767-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist
2020-09-24 12:58:03.517175-0400 Brainfuse[1222:42625] iosrtc:MediaStream create() | [dataFromEvent:{"id":"default_C16FB2B0-E8A7-4C60-B551-B8550F416E12","audioTracks":{},"videoTracks":{"bc7609f1-7a77-41e3-b692-b383312ab294":{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"},"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"fc56e758-1c99-4966-abb8-fc0ec204321b":{"readyState":"live","id":"fc56e758-1c99-4966-abb8-fc0ec204321b","kind":"video","enabled":true,"trackId":"fc56e758-1c99-4966-abb8-fc0ec204321b"}}}] +7s
2020-09-24 12:58:03.520872-0400 Brainfuse[1222:42625] iosrtc:MediaStream new MediaStream(arg) | [arg:[]] +0ms
2020-09-24 12:58:03.521185-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_init()
2020-09-24 12:58:03.524767-0400 Brainfuse[1222:42625] PluginMediaStream#init()
2020-09-24 12:58:03.525782-0400 Brainfuse[1222:42625] PluginMediaStream#run()
2020-09-24 12:58:03.526635-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_setListener()
2020-09-24 12:58:03.527069-0400 Brainfuse[1222:42763] PluginMediaStream#setListener()
2020-09-24 12:58:03.527158-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"}] +2ms
2020-09-24 12:58:03.527413-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:03.527763-0400 Brainfuse[1222:42763] PluginMediaStreamTrack#setListener() [kind:video, id:bc7609f1-7a77-41e3-b692-b383312ab294]
2020-09-24 12:58:03.527793-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"}] +1ms
2020-09-24 12:58:03.528084-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:03.528265-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist
2020-09-24 12:58:03.528502-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"fc56e758-1c99-4966-abb8-fc0ec204321b","kind":"video","enabled":true,"trackId":"fc56e758-1c99-4966-abb8-fc0ec204321b"}] +0ms
2020-09-24 12:58:03.529018-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:03.529751-0400 Brainfuse[1222:42625] iosrtc:MediaStream new MediaStream(arg) | [arg:] +9ms
2020-09-24 12:58:03.529922-0400 Brainfuse[1222:42763] PluginMediaStreamTrack#setListener() [kind:video, id:fc56e758-1c99-4966-abb8-fc0ec204321b]
2020-09-24 12:58:03.530687-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_init()
2020-09-24 12:58:03.533299-0400 Brainfuse[1222:42625] PluginMediaStream#init()
2020-09-24 12:58:03.535576-0400 Brainfuse[1222:42625] PluginMediaStream#run()
2020-09-24 12:58:03.536044-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_setListener()
2020-09-24 12:58:03.536406-0400 Brainfuse[1222:42625] iosrtc:MediaStream getVideoTracks() +1ms
2020-09-24 12:58:03.536411-0400 Brainfuse[1222:42771] PluginMediaStream#setListener()
2020-09-24 12:58:03.536687-0400 Brainfuse[1222:42625] iosrtc:MediaStream addTrack() [track:{"_listeners":{"ended":[null,null]},"id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}] +0ms
2020-09-24 12:58:03.536998-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack()
2020-09-24 12:58:03.538119-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist
2020-09-24 12:58:03.538471-0400 Brainfuse[1222:42625] iosrtc:MediaStream emitConnected() +1ms
2020-09-24 12:58:03.539656-0400 Brainfuse[1222:42625] *** helpnow4 has added track id 9190c7d7-1ff3-4ea7-b099-b8072066c57c [RemoteVideoTrack #3: MTf97ae17a259dbbe94c01b397fe2c87e4]
2020-09-24 12:58:03.539937-0400 Brainfuse[1222:42625] iosrtc:MediaStream new MediaStream(arg) | [arg:] +4ms
2020-09-24 12:58:03.540313-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_init()
2020-09-24 12:58:03.542237-0400 Brainfuse[1222:42625] PluginMediaStream#init()
2020-09-24 12:58:03.543976-0400 Brainfuse[1222:42625] PluginMediaStream#run()
2020-09-24 12:58:03.544632-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_setListener()
2020-09-24 12:58:03.545947-0400 Brainfuse[1222:42763] PluginMediaStream#setListener()
2020-09-24 12:58:03.546014-0400 Brainfuse[1222:42625] iosrtc:MediaStream getVideoTracks() +3ms
2020-09-24 12:58:03.546281-0400 Brainfuse[1222:42625] iosrtc:MediaStream addTrack() [track:{"_listeners":{"ended":[null,null,null]},"id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}] +0ms
2020-09-24 12:58:03.569289-0400 Brainfuse[1222:42625] THREAD WARNING: ['Console'] took '22.990234' ms. Plugin should use a background thread.
2020-09-24 12:58:03.569755-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack()
2020-09-24 12:58:03.569966-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist
2020-09-24 12:58:03.570410-0400 Brainfuse[1222:42625] iosrtc:MediaStream emitConnected() +0ms
2020-09-24 12:58:03.571110-0400 Brainfuse[1222:42625] MathQuill debug:: video item on attach helpnow4
2020-09-24 12:58:03.571535-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler observeVideo() +46s
2020-09-24 12:58:03.571799-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer new() | [element:"[object HTMLVideoElement]"] +45s
2020-09-24 12:58:03.572075-0400 Brainfuse[1222:42625] iosrtcPlugin#new_MediaStreamRenderer()
2020-09-24 12:58:03.572438-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#init()
2020-09-24 12:58:03.573375-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#run()
2020-09-24 12:58:03.609929-0400 Brainfuse[1222:42625] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003df3d40 h=-&- v=-&- WKWebView:0x7fa66e831200'Brainfuse'.minY == 44   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003df0a00 h=-&- v=-&- V:[WKWebView:0x7fa66e831200'Brainfuse']-(0)-|   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003d08ff0 h=--& v=--& UIView:0x7fa66cc5e370.height == 0   (active)>",
    "<NSLayoutConstraint:0x600003d0e1c0 UIView:0x7fa66cc5e370.top == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.top   (active)>",
    "<NSLayoutConstraint:0x600003d0e210 UIView:0x7fa66cc5e370.bottom == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.bottom   (active)>",
    "<NSLayoutConstraint:0x600003df30c0 'UIView-Encapsulated-Layout-Height' UIView:0x7fa66cc07350.height == 896   (active)>",
    "<NSLayoutConstraint:0x600003dc74d0 'UIViewSafeAreaLayoutGuide-bottom' V:[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']-(34)-|   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>",
    "<NSLayoutConstraint:0x600003dc5770 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003d0e210 UIView:0x7fa66cc5e370.bottom == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.bottom   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-09-24 12:58:03.612122-0400 Brainfuse[1222:42625] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003df3d90 h=-&- v=-&- WKWebView:0x7fa66e831200'Brainfuse'.minX == 0   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003df1400 h=-&- v=-&- H:[WKWebView:0x7fa66e831200'Brainfuse']-(0)-|   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003d092c0 h=--& v=--& UIView:0x7fa66cc5e370.width == 0   (active)>",
    "<NSLayoutConstraint:0x600003d0e260 UIView:0x7fa66cc5e370.left == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.left   (active)>",
    "<NSLayoutConstraint:0x600003d0e2b0 UIView:0x7fa66cc5e370.right == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.right   (active)>",
    "<NSLayoutConstraint:0x600003df3890 'UIView-Encapsulated-Layout-Width' UIView:0x7fa66cc07350.width == 414   (active)>",
    "<NSLayoutConstraint:0x600003dc5860 'UIViewSafeAreaLayoutGuide-left' H:|-(0)-[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'](LTR)   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>",
    "<NSLayoutConstraint:0x600003dc5d60 'UIViewSafeAreaLayoutGuide-right' H:[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']-(0)-|(LTR)   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003d0e2b0 UIView:0x7fa66cc5e370.right == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.right   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-09-24 12:58:03.615261-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.615555-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +3ms
2020-09-24 12:58:03.615715-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | [data:{"elementLeft":0,"elementTop":0,"elementWidth":0,"elementHeight":0,"videoViewWidth":0,"videoViewHeight":0,"visible":false,"opacity":null,"zIndex":0,"mirrored":false,"objectFit":"contain","clip":true,"borderRadius":null}] +0ms
2020-09-24 12:58:03.616008-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_refresh()
2020-09-24 12:58:03.616228-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#refresh() [elementLeft:0.0, elementTop:0.0, elementWidth:0.0, elementHeight:0.0, videoViewWidth:0.0, videoViewHeight:0.0, visible:false, opacity:1.0, zIndex:0.0, mirrored:false, clip:true, borderRadius:0.0]
2020-09-24 12:58:03.616491-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer render() helpnow4 [2897539633-3778151908-1956294494-450409663] [stream:{"_listeners":{},"_id":"2897539633-3778151908-1956294494-450409663","_active":true,"connected":true,"_audioTracks":{},"_videoTracks":{"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"_listeners":{"ended":[null,null,null,null]},"id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}},"_blobId":"MediaStream_2897539633-3778151908-1956294494-450409663"}]  +1ms
2020-09-24 12:58:03.616787-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_render()
2020-09-24 12:58:03.617052-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#render()
2020-09-24 12:58:03.624432-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler new video element added helpnow4 +88ms
2020-09-24 12:58:03.624867-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler observeVideo() +0ms
2020-09-24 12:58:03.625244-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler new video element added helpnow4 +1ms
2020-09-24 12:58:03.629134-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() | success +117ms
2020-09-24 12:58:03.631891-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() [options:] +1ms
2020-09-24 12:58:03.632536-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_createAnswer()
2020-09-24 12:58:03.633119-0400 Brainfuse[1222:42771] PluginRTCPeerConnection#createAnswer()
2020-09-24 12:58:03.636670-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#init()
2020-09-24 12:58:03.637114-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#init() | [mandatoryConstraints:{
}, optionalConstraints:{
}]
2020-09-24 12:58:03.637403-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#getConstraints()
2020-09-24 12:58:03.639413-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#deinit()
2020-09-24 12:58:03.642764-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#createAnswer() | success callback
2020-09-24 12:58:03.709444-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler refreshVideos() +41ms
2020-09-24 12:58:03.709977-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +126ms
2020-09-24 12:58:03.710259-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | [data:{"elementLeft":0,"elementTop":266,"elementWidth":207,"elementHeight":104,"videoViewWidth":139,"videoViewHeight":104,"visible":true,"opacity":1,"zIndex":0,"mirrored":false,"objectFit":"contain","clip":true,"borderRadius":0}] +1ms
2020-09-24 12:58:03.710549-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_refresh()
2020-09-24 12:58:03.710771-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#refresh() [elementLeft:0.0, elementTop:266.0, elementWidth:207.0, elementHeight:104.0, videoViewWidth:139.0, videoViewHeight:104.0, visible:true, opacity:1.0, zIndex:0.0, mirrored:false, clip:true, borderRadius:0.0]
2020-09-24 12:58:03.711204-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.711425-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +0ms
2020-09-24 12:58:03.715228-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | [data:{"elementLeft":0,"elementTop":41,"elementWidth":414,"elementHeight":225,"videoViewWidth":414,"videoViewHeight":225,"visible":true,"opacity":1,"zIndex":0,"mirrored":false,"objectFit":"fill","clip":true,"borderRadius":0}] +0ms
2020-09-24 12:58:03.716024-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_refresh()
2020-09-24 12:58:03.716431-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#refresh() [elementLeft:0.0, elementTop:41.0, elementWidth:414.0, elementHeight:225.0, videoViewWidth:414.0, videoViewHeight:225.0, visible:true, opacity:1.0, zIndex:0.0, mirrored:false, clip:true, borderRadius:0.0]
2020-09-24 12:58:03.717162-0400 Brainfuse[1222:42625] new state: AudioOptionsState
2020-09-24 12:58:03.718805-0400 Brainfuse[1222:42625] new state: StudentVideoConnectedState
2020-09-24 12:58:03.719053-0400 Brainfuse[1222:42625] new state: InitialScreenShareState
2020-09-24 12:58:03.720192-0400 Brainfuse[1222:42625] Connection(1).processIncomingMsg:100:Audio:helpnow4:@:Status:1:null:0:0:0
2020-09-24 12:58:03.720464-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() | success [desc:{"type":"answer","sdp":"v=0\r\no=- 7579279118273428334 4 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video data\r\na=msid-semantic: WMS\r\nm=audio 31759 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 49447 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 53911 typ srflx raddr 192.168.190.128 rport 49447 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 31759 typ relay raddr 172.93.15.242 rport 53911 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49586 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 13144 typ relay raddr 172.93.15.242 rport 1278 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=inactive\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:0 PCMU/8000\r\nm=video 13317 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 59834 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 56451 typ srflx raddr 192.168.190.128 rport 59834 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 13317 typ relay raddr 172.93.15.242 rport 56451 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49589 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 50593 typ relay raddr 172.93.15.242 rport 8192 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:video\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:127 VP8/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}] +63ms
2020-09-24 12:58:03.722456-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setLocalDescription()
2020-09-24 12:58:03.724711-0400 Brainfuse[1222:42763] PluginRTCPeerConnection#setLocalDescription()
2020-09-24 12:58:03.724844-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler releaseMediaStreamRender helpnow4 74616 +47ms
2020-09-24 12:58:03.725061-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer close() +46ms
2020-09-24 12:58:03.725279-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_close()
2020-09-24 12:58:03.725450-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#close()
2020-09-24 12:58:03.725615-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#reset()
2020-09-24 12:58:03.728811-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#deinit()
2020-09-24 12:58:03.730539-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer new() | [element:"[object HTMLVideoElement]"] +0ms
2020-09-24 12:58:03.731292-0400 Brainfuse[1222:42625] iosrtcPlugin#new_MediaStreamRenderer()
2020-09-24 12:58:03.731526-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#init()
2020-09-24 12:58:03.732892-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#run()
2020-09-24 12:58:03.733300-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.733778-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +1ms
2020-09-24 12:58:03.734157-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | [data:{"elementLeft":0,"elementTop":41,"elementWidth":414,"elementHeight":225,"videoViewWidth":414,"videoViewHeight":225,"visible":true,"opacity":1,"zIndex":0,"mirrored":false,"objectFit":"fill","clip":true,"borderRadius":0}] +0ms
2020-09-24 12:58:03.734641-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_refresh()
2020-09-24 12:58:03.747614-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("stable")]
2020-09-24 12:58:03.748922-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#refresh() [elementLeft:0.0, elementTop:41.0, elementWidth:414.0, elementHeight:225.0, videoViewWidth:414.0, videoViewHeight:225.0, visible:true, opacity:1.0, zIndex:0.0, mirrored:false, clip:true, borderRadius:0.0]
2020-09-24 12:58:03.749323-0400 Brainfuse[1222:42625] THREAD WARNING: ['iosrtcPlugin'] took '14.729004' ms. Plugin should use a background thread.
2020-09-24 12:58:03.749752-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer render() helpnow4 [2897539633-3778151908-1956294494-450409663] [stream:{"_listeners":{"update":[null],"inactive":[null]},"_id":"2897539633-3778151908-1956294494-450409663","_active":true,"connected":true,"_audioTracks":{},"_videoTracks":{"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"_listeners":{"ended":[null,null,null,null]},"id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}},"_blobId":"MediaStream_2897539633-3778151908-1956294494-450409663"}]  +0ms
2020-09-24 12:58:03.749979-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer | video size changed [width:320.0, height:240.0]
2020-09-24 12:58:03.750524-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_render()
2020-09-24 12:58:03.750758-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#render()
2020-09-24 12:58:03.751047-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler releaseMediaStreamRender helpnow4 25542 +2ms
2020-09-24 12:58:03.751932-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer close() +1ms
2020-09-24 12:58:03.752207-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_close()
2020-09-24 12:58:03.752422-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#close()
2020-09-24 12:58:03.752595-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#reset()
2020-09-24 12:58:03.753268-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#deinit()
2020-09-24 12:58:03.753794-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer new() | [element:"[object HTMLVideoElement]"] +0ms
2020-09-24 12:58:03.754059-0400 Brainfuse[1222:42625] iosrtcPlugin#new_MediaStreamRenderer()
2020-09-24 12:58:03.754246-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#init()
2020-09-24 12:58:03.755328-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#run()
2020-09-24 12:58:03.756008-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.756313-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +0ms
2020-09-24 12:58:03.756592-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | [data:{"elementLeft":0,"elementTop":41,"elementWidth":414,"elementHeight":225,"videoViewWidth":414,"videoViewHeight":225,"visible":true,"opacity":1,"zIndex":0,"mirrored":false,"objectFit":"fill","clip":true,"borderRadius":0}] +0ms
2020-09-24 12:58:03.757105-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_refresh()
2020-09-24 12:58:03.757517-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#refresh() [elementLeft:0.0, elementTop:41.0, elementWidth:414.0, elementHeight:225.0, videoViewWidth:414.0, videoViewHeight:225.0, visible:true, opacity:1.0, zIndex:0.0, mirrored:false, clip:true, borderRadius:0.0]
2020-09-24 12:58:03.758164-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer render() helpnow4 [2897539633-3778151908-1956294494-450409663] [stream:{"_listeners":{"update":[null,null],"inactive":[null,null]},"_id":"2897539633-3778151908-1956294494-450409663","_active":true,"connected":true,"_audioTracks":{},"_videoTracks":{"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"_listeners":{"ended":[null,null,null,null]},"id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}},"_blobId":"MediaStream_2897539633-3778151908-1956294494-450409663"}]  +1ms
2020-09-24 12:58:03.758746-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamRenderer_render()
2020-09-24 12:58:03.759349-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer#render()
2020-09-24 12:58:03.761630-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setLocalDescription() | success callback
2020-09-24 12:58:03.792470-0400 Brainfuse[1222:42625] Failed to bind EAGLDrawable: <CAEAGLLayer: 0x600001e48880> to GL_RENDERBUFFER 1
2020-09-24 12:58:03.792816-0400 Brainfuse[1222:42625] Failed to make complete framebuffer object 8cd6
2020-09-24 12:58:03.794444-0400 Brainfuse[1222:42625] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003df3d90 h=-&- v=-&- WKWebView:0x7fa66e831200'Brainfuse'.minX == 0   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003df1400 h=-&- v=-&- H:[WKWebView:0x7fa66e831200'Brainfuse']-(0)-|   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003df3570 h=--& v=--& UIView:0x7fa66ce17c10.width == 207   (active)>",
    "<NSLayoutConstraint:0x600003df3a20 UIView:0x7fa66ce17c10.left == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.left   (active)>",
    "<NSLayoutConstraint:0x600003df0870 UIView:0x7fa66ce17c10.right == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.right   (active)>",
    "<NSLayoutConstraint:0x600003df3890 'UIView-Encapsulated-Layout-Width' UIView:0x7fa66cc07350.width == 414   (active)>",
    "<NSLayoutConstraint:0x600003dc5860 'UIViewSafeAreaLayoutGuide-left' H:|-(0)-[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'](LTR)   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>",
    "<NSLayoutConstraint:0x600003dc5d60 'UIViewSafeAreaLayoutGuide-right' H:[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']-(0)-|(LTR)   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003df0870 UIView:0x7fa66ce17c10.right == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.right   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-09-24 12:58:03.799075-0400 Brainfuse[1222:42625] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003d41b30 h=--& v=--& UIView:0x7fa66cf8aea0.minY == 41   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>",
    "<NSLayoutConstraint:0x600003d09ae0 UIView:0x7fa66cf8aea0.top == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.top   (active)>",
    "<NSLayoutConstraint:0x600003dc5770 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003d09ae0 UIView:0x7fa66cf8aea0.top == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.top   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-09-24 12:58:03.801857-0400 Brainfuse[1222:42625] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
	(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003df3d40 h=-&- v=-&- WKWebView:0x7fa66e831200'Brainfuse'.minY == 44   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003df0a00 h=-&- v=-&- V:[WKWebView:0x7fa66e831200'Brainfuse']-(0)-|   (active, names: '|':UIView:0x7fa66cc07350 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003d41b30 h=--& v=--& UIView:0x7fa66cf8aea0.minY == 41   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003d41ef0 h=--& v=--& UIView:0x7fa66cf8aea0.height == 225   (active)>",
    "<NSLayoutConstraint:0x600003d09a90 UIView:0x7fa66cf8aea0.bottom == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.bottom   (active)>",
    "<NSLayoutConstraint:0x600003df30c0 'UIView-Encapsulated-Layout-Height' UIView:0x7fa66cc07350.height == 896   (active)>",
    "<NSLayoutConstraint:0x600003dc74d0 'UIViewSafeAreaLayoutGuide-bottom' V:[UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide']-(34)-|   (active, names: '|':WKWebView:0x7fa66e831200'Brainfuse' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003d09a90 UIView:0x7fa66cf8aea0.bottom == UILayoutGuide:0x6000027c9880'UIViewSafeAreaLayoutGuide'.bottom   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-09-24 12:58:03.815283-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler refreshVideos() +36ms
2020-09-24 12:58:03.816148-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +35ms
2020-09-24 12:58:03.816953-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.817214-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +1ms
2020-09-24 12:58:03.817481-0400 Brainfuse[1222:42625] iosrtc:videoElementsHandler refreshVideos() +1ms
2020-09-24 12:58:03.817880-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.818705-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.818975-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() | no video track yet +0ms
2020-09-24 12:58:03.819270-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"signalingState":"stable","type":"signalingstatechange"}] +73ms
2020-09-24 12:58:03.883957-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer onEvent() | [type:videoresize, data:{"size":{"width":320,"height":240},"type":"videoresize"}] +79ms
2020-09-24 12:58:03.884870-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:03.888276-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setLocalDescription() | success +75ms
2020-09-24 12:58:04.429394-0400 Brainfuse[1222:42625] Track remove TrainMe5  [RemoteVideoTrack #2: MTb93deada516fdded05bcc1e0f33fffd1]
2020-09-24 12:58:04.431399-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack enabled = false +915ms
2020-09-24 12:58:04.432447-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setEnabled()
2020-09-24 12:58:04.433079-0400 Brainfuse[1222:42771] PluginMediaStreamTrack#setEnabled() [kind:video, id:fc56e758-1c99-4966-abb8-fc0ec204321b, value:false]
2020-09-24 12:58:04.433458-0400 Brainfuse[1222:42625] TrainMe5 unpublished track video
2020-09-24 12:58:04.434322-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() [desc:{"type":"offer","sdp":"v=0\r\no=- 3809955436 3809955439 IN IP4 0.0.0.0\r\ns=VM3921ac915ffc9eae572104af947bc405\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=ice-lite\r\na=msid-semantic: WMS *\r\na=group:BUNDLE audio video data\r\nm=audio 1 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:audio\r\na=recvonly\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\nm=video 1 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:100 H264/90000\r\na=rtpmap:127 VP8/90000\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtcp-rsize\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:video\r\na=sendrecv\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\na=ssrc:1240258836 cname:user401308011@host-90d440db\r\na=ssrc:1240258836 msid:default bc7609f1-7a77-41e3-b692-b383312ab294\r\na=ssrc:765007587 cname:user401308011@host-90d440db\r\na=ssrc:765007587 msid:default 9190c7d7-1ff3-4ea7-b099-b8072066c57c\r\nm=application 1 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sctpmap:5000 webrtc-datachannel 16\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=setup:actpass\r\na=mid:data\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\n"}] +594ms
2020-09-24 12:58:04.448739-0400 Brainfuse[1222:42625] THREAD WARNING: ['Console'] took '14.396973' ms. Plugin should use a background thread.
2020-09-24 12:58:04.449320-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setRemoteDescription()
2020-09-24 12:58:04.450040-0400 Brainfuse[1222:42771] PluginRTCPeerConnection#setRemoteDescription()
2020-09-24 12:58:04.452868-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("have-remote-offer")]
2020-09-24 12:58:04.456207-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setRemoteDescription() | success callback
2020-09-24 12:58:04.458805-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"signalingState":"have-remote-offer","type":"signalingstatechange"}] +24ms
2020-09-24 12:58:04.459582-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() | success +1ms
2020-09-24 12:58:04.460622-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() [options:] +0ms
2020-09-24 12:58:04.461223-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_createAnswer()
2020-09-24 12:58:04.462264-0400 Brainfuse[1222:42771] PluginRTCPeerConnection#createAnswer()
2020-09-24 12:58:04.468665-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#init()
2020-09-24 12:58:04.469683-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#init() | [mandatoryConstraints:{
}, optionalConstraints:{
}]
2020-09-24 12:58:04.470585-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#getConstraints()
2020-09-24 12:58:04.472173-0400 Brainfuse[1222:42771] PluginRTCPeerConnectionConstraints#deinit()
2020-09-24 12:58:04.472324-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#createAnswer() | success callback
2020-09-24 12:58:04.474866-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() | success [desc:{"type":"answer","sdp":"v=0\r\no=- 7579279118273428334 5 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video data\r\na=msid-semantic: WMS\r\nm=audio 31759 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 49447 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 53911 typ srflx raddr 192.168.190.128 rport 49447 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 31759 typ relay raddr 172.93.15.242 rport 53911 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49586 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 13144 typ relay raddr 172.93.15.242 rport 1278 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=inactive\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:0 PCMU/8000\r\nm=video 13317 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 59834 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 56451 typ srflx raddr 192.168.190.128 rport 59834 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 13317 typ relay raddr 172.93.15.242 rport 56451 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49589 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 50593 typ relay raddr 172.93.15.242 rport 8192 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:video\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:127 VP8/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}] +16ms
2020-09-24 12:58:04.477179-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setLocalDescription()
2020-09-24 12:58:04.478171-0400 Brainfuse[1222:42771] PluginRTCPeerConnection#setLocalDescription()
2020-09-24 12:58:04.479541-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("stable")]
2020-09-24 12:58:04.481019-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"signalingState":"stable","type":"signalingstatechange"}] +6ms
2020-09-24 12:58:04.482925-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setLocalDescription() | success callback
2020-09-24 12:58:04.484902-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setLocalDescription() | success +4ms
2020-09-24 12:58:05.181159-0400 Brainfuse[1222:42791] PluginRTCDataChannel | utf8 message received
2020-09-24 12:58:05.185605-0400 Brainfuse[1222:42625] iosrtc:RTCDataChannel onEvent() | [type:message, data:{"message":"{\"off\":[],\"on\":[\"MT91c6b4a106607cc0b95fd4fe1978a356\"],\"track_toggles\":[{\"sid\":\"MT91c6b4a106607cc0b95fd4fe1978a356\",\"state\":\"on\"}],\"type\":\"track_switch_off\"}\n","type":"message"}] +2s
2020-09-24 12:58:05.203833-0400 Brainfuse[1222:42625] TrainMe5 published track video
2020-09-24 12:58:05.204274-0400 Brainfuse[1222:42625] cancel disconnect timer
2020-09-24 12:58:05.204609-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() [desc:{"type":"offer","sdp":"v=0\r\no=- 3809955436 3809955440 IN IP4 0.0.0.0\r\ns=VM3921ac915ffc9eae572104af947bc405\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=ice-lite\r\na=msid-semantic: WMS *\r\na=group:BUNDLE audio video data\r\nm=audio 1 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:audio\r\na=recvonly\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\nm=video 1 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 0.0.0.0\r\na=rtpmap:100 H264/90000\r\na=rtpmap:127 VP8/90000\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtcp-rsize\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=rtcp-mux\r\na=setup:actpass\r\na=mid:video\r\na=sendrecv\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\na=ssrc:1240258836 cname:user401308011@host-90d440db\r\na=ssrc:1240258836 msid:default bc7609f1-7a77-41e3-b692-b383312ab294\r\na=ssrc:1740698714 cname:user401308011@host-90d440db\r\na=ssrc:1740698714 msid:default 914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe\r\na=ssrc:765007587 cname:user401308011@host-90d440db\r\na=ssrc:765007587 msid:default 9190c7d7-1ff3-4ea7-b099-b8072066c57c\r\nm=application 1 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sctpmap:5000 webrtc-datachannel 16\r\na=candidate:2 1 UDP 2013266430 3.235.111.231 17382 typ host\r\na=candidate:2 2 UDP 2013266429 3.235.111.231 13038 typ host\r\na=setup:actpass\r\na=mid:data\r\na=ice-ufrag:4qNy\r\na=ice-pwd:fWOYxzsyhbnyCBBc75hJmN\r\na=fingerprint:sha-256 A9:AA:3F:4A:53:B8:EF:F4:19:63:14:82:32:F1:AC:BC:0A:77:72:7D:E5:0C:24:E8:76:87:C2:73:76:50:D8:E4\r\n"}] +716ms
2020-09-24 12:58:05.216114-0400 Brainfuse[1222:42625] THREAD WARNING: ['Console'] took '11.504150' ms. Plugin should use a background thread.
2020-09-24 12:58:05.216776-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setRemoteDescription()
2020-09-24 12:58:05.217308-0400 Brainfuse[1222:42771] PluginRTCPeerConnection#setRemoteDescription()
2020-09-24 12:58:05.220976-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("have-remote-offer")]
2020-09-24 12:58:05.224728-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onaddtrack
2020-09-24 12:58:05.227670-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"type":"signalingstatechange","signalingState":"have-remote-offer"}] +25ms
2020-09-24 12:58:05.228051-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:05.229496-0400 Brainfuse[1222:42791] PluginMediaStream#init()
2020-09-24 12:58:05.229927-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:05.230671-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:bc7609f1-7a77-41e3-b692-b383312ab294]
2020-09-24 12:58:05.233697-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:05.244389-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:9190c7d7-1ff3-4ea7-b099-b8072066c57c]
2020-09-24 12:58:05.247729-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#init()
2020-09-24 12:58:05.248632-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#run() [kind:video, id:914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe]
2020-09-24 12:58:05.249145-0400 Brainfuse[1222:42791] PluginMediaStream#run()
2020-09-24 12:58:05.250491-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onaddtrack stream id ** default_3ADB617B-1F60-448D-A480-B690C3065DD3 
2020-09-24 12:58:05.252587-0400 Brainfuse[1222:42791] PluginMediaStreamTrack#deinit()
2020-09-24 12:58:05.259066-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setRemoteDescription() | success callback
2020-09-24 12:58:05.260362-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:track, data:{"streamId":"default_3ADB617B-1F60-448D-A480-B690C3065DD3","track":{"readyState":"live","id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","enabled":true,"trackId":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe"},"stream":{"id":"default_3ADB617B-1F60-448D-A480-B690C3065DD3","audioTracks":{},"videoTracks":{"bc7609f1-7a77-41e3-b692-b383312ab294":{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"},"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe":{"readyState":"live","id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","enabled":true,"trackId":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe"}}},"type":"track"}] +28ms
2020-09-24 12:58:05.260979-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","enabled":true,"trackId":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe"}] +824ms
2020-09-24 12:58:05.261301-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:05.261784-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe does not exist
2020-09-24 12:58:05.262465-0400 Brainfuse[1222:42625] iosrtc:MediaStream create() | [dataFromEvent:{"id":"default_3ADB617B-1F60-448D-A480-B690C3065DD3","audioTracks":{},"videoTracks":{"bc7609f1-7a77-41e3-b692-b383312ab294":{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"},"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe":{"readyState":"live","id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","enabled":true,"trackId":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe"}}}] +2s
2020-09-24 12:58:05.265447-0400 Brainfuse[1222:42625] iosrtc:MediaStream new MediaStream(arg) | [arg:[]] +0ms
2020-09-24 12:58:05.265812-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_init()
2020-09-24 12:58:05.268167-0400 Brainfuse[1222:42625] PluginMediaStream#init()
2020-09-24 12:58:05.270449-0400 Brainfuse[1222:42625] PluginMediaStream#run()
2020-09-24 12:58:05.270953-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_setListener()
2020-09-24 12:58:05.271335-0400 Brainfuse[1222:43190] PluginMediaStream#setListener()
2020-09-24 12:58:05.271316-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"}] +1ms
2020-09-24 12:58:05.271614-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:05.272171-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"}] +0ms
2020-09-24 12:58:05.272178-0400 Brainfuse[1222:43190] PluginMediaStreamTrack#setListener() [kind:video, id:bc7609f1-7a77-41e3-b692-b383312ab294]
2020-09-24 12:58:05.272812-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:05.273167-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist
2020-09-24 12:58:05.273638-0400 Brainfuse[1222:42625] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","enabled":true,"trackId":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe"}] +1ms
2020-09-24 12:58:05.274488-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener()
2020-09-24 12:58:05.275008-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe does not exist
2020-09-24 12:58:05.276158-0400 Brainfuse[1222:42625] iosrtc:MediaStream new MediaStream(arg) | [arg:] +5ms
2020-09-24 12:58:05.276632-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_init()
2020-09-24 12:58:05.279502-0400 Brainfuse[1222:42625] PluginMediaStream#init()
2020-09-24 12:58:05.282032-0400 Brainfuse[1222:42625] PluginMediaStream#run()
2020-09-24 12:58:05.282471-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_setListener()
2020-09-24 12:58:05.282742-0400 Brainfuse[1222:43190] PluginMediaStream#setListener()
2020-09-24 12:58:05.282816-0400 Brainfuse[1222:42625] iosrtc:MediaStream getVideoTracks() +1ms
2020-09-24 12:58:05.283023-0400 Brainfuse[1222:42625] iosrtc:MediaStream addTrack() [track:{"_listeners":{"ended":[null,null]},"id":"914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe","kind":"video","muted":false,"readyState":"live","_enabled":true,"_ended":false}] +0ms
2020-09-24 12:58:05.283245-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack()
2020-09-24 12:58:05.283418-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStream_addTrack() | ERROR: pluginMediaStreamTrack with id=914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe does not exist
2020-09-24 12:58:05.283752-0400 Brainfuse[1222:42625] iosrtc:MediaStream emitConnected() +1ms
2020-09-24 12:58:05.283996-0400 Brainfuse[1222:42625] *** TrainMe5 has added track id 914c8ae3-3ac5-4bd9-ac13-d82ad1c00efe [RemoteVideoTrack #4: MT91c6b4a106607cc0b95fd4fe1978a356]
2020-09-24 12:58:05.292483-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setRemoteDescription() | success +33ms
2020-09-24 12:58:05.292993-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() [options:] +1ms
2020-09-24 12:58:05.294033-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_createAnswer()
2020-09-24 12:58:05.295094-0400 Brainfuse[1222:43190] PluginRTCPeerConnection#createAnswer()
2020-09-24 12:58:05.296391-0400 Brainfuse[1222:43190] PluginRTCPeerConnectionConstraints#init()
2020-09-24 12:58:05.297521-0400 Brainfuse[1222:43190] PluginRTCPeerConnectionConstraints#init() | [mandatoryConstraints:{
}, optionalConstraints:{
}]
2020-09-24 12:58:05.298213-0400 Brainfuse[1222:43190] PluginRTCPeerConnectionConstraints#getConstraints()
2020-09-24 12:58:05.304793-0400 Brainfuse[1222:43190] PluginRTCPeerConnectionConstraints#deinit()
2020-09-24 12:58:05.304925-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#createAnswer() | success callback
2020-09-24 12:58:05.306997-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection createAnswer() | success [desc:{"type":"answer","sdp":"v=0\r\no=- 7579279118273428334 6 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video data\r\na=msid-semantic: WMS\r\nm=audio 31759 UDP/TLS/RTP/SAVPF 111 0\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 49447 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 53911 typ srflx raddr 192.168.190.128 rport 49447 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 31759 typ relay raddr 172.93.15.242 rport 53911 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49586 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 13144 typ relay raddr 172.93.15.242 rport 1278 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=inactive\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:0 PCMU/8000\r\nm=video 13317 UDP/TLS/RTP/SAVPF 100 127 125 124\r\nc=IN IP4 34.203.250.185\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2405272963 1 udp 2122260223 192.168.190.128 59834 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3868705346 1 udp 1686052607 172.93.15.242 56451 typ srflx raddr 192.168.190.128 rport 59834 generation 0 network-id 1 network-cost 10\r\na=candidate:2286148812 1 udp 41885695 34.203.250.185 13317 typ relay raddr 172.93.15.242 rport 56451 generation 0 network-id 1 network-cost 10\r\na=candidate:3252580723 1 tcp 1518280447 192.168.190.128 49589 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3629215049 1 udp 8331007 34.203.250.185 50593 typ relay raddr 172.93.15.242 rport 8192 generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:video\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:127 VP8/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=rtpmap:125 red/90000\r\na=rtpmap:124 ulpfec/90000\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:21Nl\r\na=ice-pwd:5BHea587tNVpofKf14mMlr1C\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 33:57:BA:B0:9C:50:B9:97:37:8E:15:22:96:3B:48:7D:36:8E:48:E2:53:B0:24:AB:5E:7B:AB:C6:A6:1B:B2:32\r\na=setup:passive\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}] +19ms
2020-09-24 12:58:05.324780-0400 Brainfuse[1222:42625] THREAD WARNING: ['Console'] took '17.888916' ms. Plugin should use a background thread.
2020-09-24 12:58:05.325251-0400 Brainfuse[1222:42625] iosrtcPlugin#RTCPeerConnection_setLocalDescription()
2020-09-24 12:58:05.325534-0400 Brainfuse[1222:42763] PluginRTCPeerConnection#setLocalDescription()
2020-09-24 12:58:05.329446-0400 Brainfuse[1222:42791] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("stable")]
2020-09-24 12:58:05.338273-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"signalingState":"stable","type":"signalingstatechange"}] +30ms
2020-09-24 12:58:05.337942-0400 Brainfuse[1222:42791] PluginRTCPeerConnection#setLocalDescription() | success callback
2020-09-24 12:58:05.342306-0400 Brainfuse[1222:42625] iosrtc:RTCPeerConnection setLocalDescription() | success +5ms
2020-09-24 12:58:05.406802-0400 Brainfuse[1222:42625] Connection(1).processIncomingMsg:101:Audio:TrainMe5:@:Status:1:null:0:1:0
2020-09-24 12:58:06.903856-0400 Brainfuse[1222:42625] iosrtc:MediaStream getTracks() +2s
2020-09-24 12:58:06.904244-0400 Brainfuse[1222:42625] iosrtc:MediaStream getTracks() +0ms
2020-09-24 12:58:08.628380-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer | video size changed [width:480.0, height:360.0]
2020-09-24 12:58:08.631834-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer onEvent() | [type:videoresize, data:{"type":"videoresize","size":{"width":480,"height":360}}] +5s
2020-09-24 12:58:08.632227-0400 Brainfuse[1222:42625] iosrtc:MediaStreamRenderer refresh() +0ms
2020-09-24 12:58:12.642963-0400 Brainfuse[1222:42625] PluginMediaStreamRenderer | video size changed [width:640.0, height:480.0]

Here are few things to notice from this log on line 27 and line 40 you see this message
2020-09-24 12:58:03.516767-0400 Brainfuse[1222:42625] iosrtcPlugin#MediaStreamTrack_setListener() | ERROR: pluginMediaStreamTrack with id=9190c7d7-1ff3-4ea7-b099-b8072066c57c does not exist

We trace down the problem to the PluginRTCPeerConnection onaddtrack initializing a new PluginMediaStream but the stream tracks are not registered in the iosrtcPlugin.pluginMediaStreamTracks.

We tried to moving the self.eventListenerForAddStream from peerConnection

self.eventListenerForAddStream(pluginMediaStream!)
to the getPluginMediaStream but that caused the app to crash on the simulator.

Another thing that is odd is that there are multiple tracks coming from the connection when actually the participant is only publishing one video.

Another issue is that
iosrtc:RTCPeerConnection onEvent() | [type:track, data:{"stream":{"id":"default_C16FB2B0-E8A7-4C60-B551-B8550F416E12","audioTracks":{},"videoTracks":{"bc7609f1-7a77-41e3-b692-b383312ab294":{"readyState":"live","id":"bc7609f1-7a77-41e3-b692-b383312ab294","kind":"video","enabled":true,"trackId":"bc7609f1-7a77-41e3-b692-b383312ab294"},"9190c7d7-1ff3-4ea7-b099-b8072066c57c":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"fc56e758-1c99-4966-abb8-fc0ec204321b":{"readyState":"live","id":"fc56e758-1c99-4966-abb8-fc0ec204321b","kind":"video","enabled":true,"trackId":"fc56e758-1c99-4966-abb8-fc0ec204321b"}}},"track":{"readyState":"live","id":"9190c7d7-1ff3-4ea7-b099-b8072066c57c","kind":"video","enabled":true,"trackId":"9190c7d7-1ff3-4ea7-b099-b8072066c57c"},"streamId":"default_C16FB2B0-E8A7-4C60-B551-B8550F416E12","type":"track"}] +1ms

as you can see here these track ids are duplicated which i think the reason we are getting blackscreens

@akilude

This comment has been minimized.

@hthetiot
Copy link
Contributor

does not occur when using the legacy onaddstream method instead of addtrack.

thank you @akilude this help.

@samgabriel
Copy link
Contributor Author

@hthetiot we were able to fix the black screen issue using moving self.eventListenerForAddStream(currentPluginMediaStream!) to the getPluginMediaStream method after line 594

currentPluginMediaStream = PluginMediaStream(rtcMediaStream: stream!)
currentPluginMediaStream!.run()
// Let the plugin store it in its dictionary.
pluginMediaStreams[currentPluginMediaStream!.id] = currentPluginMediaStream;

I initially said that we were getting a crash on the simulator.
The crash on the simulator only happens when my coworker starts video from his iPhone running 14.0 if I start the video from my iPhone 13.6.1 there is no crash.

Additionally we tried to replace WebRTC library version 0.72 and on that version we don't get a crash but we get a red screen instead of the video. The screen shot below is from the tester that from the #569 (comment) issue
ios showing red video

The black screen described in this issue happens when a participant in the room turn off their video and turn it back on.

@hthetiot
Copy link
Contributor

hthetiot commented Oct 7, 2020

thx @samgabriel i will apply the fix, alternativly feel free to make PR.
for crash on 14 see #578

@samgabriel
Copy link
Contributor Author

Hi @hthetiot I saw #578 but the crash is happening on the simulator running iOS 13.3, The #578 discusses a crash on 14.0.1 and mentions that 14 is ok. When my coworkers connects with his iPhone version 14.0 his app is not crashing. He can share his video and it is visible on the desktop but it crashes the simulator and with M72 it shows the red box above.

@hthetiot
Copy link
Contributor

hthetiot commented Oct 7, 2020

we were able to fix the black screen issue using moving self.eventListenerForAddStream(currentPluginMediaStream!) to the getPluginMediaStream method after line 594

This part is unclear, please make PR so i can see your changes or provide diff.

samgabriel added a commit to samgabriel/cordova-plugin-iosrtc that referenced this issue Oct 7, 2020
@samgabriel
Copy link
Contributor Author

Hi @hthetiot please find the attached diff #579

@samgabriel
Copy link
Contributor Author

@hthetiot have you had a chance to check out the PR?

@akilude akilude mentioned this issue Oct 11, 2020
3 tasks
@hthetiot
Copy link
Contributor

@samgabriel sorry i missed the PR looking into ASAP, thank you for helping.

hthetiot added a commit that referenced this issue Oct 16, 2020
@hthetiot
Copy link
Contributor

@samgabriel I did merge #579 on master and plan to release ASAP as part of 6.0.14. I'm waiting for #580 (review) that i also d'like to include in 6.0.14, in case this is not merged by Sunday, I will release 6.0.14 with #579 anyway Sunday.

Can @akilude @samgabriel test master to confirm this fix your issue.

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#master --verbose
cordova platform remove ios --no-save
cordova platform add ios --no-save

@hthetiot
Copy link
Contributor

Thank you again @samgabriel for your assistance.

@hthetiot
Copy link
Contributor

hthetiot commented Oct 17, 2020

Just to let you know, i want to also pass #585 in 6.0.14 to handle possible ios 14.0.1 crash; see #583
If you test #585 it's also include #579 fix.
cc @pasmat @samgabriel @akilude @sboudouk

@hthetiot
Copy link
Contributor

After you tried #585 if you still have the issue and you are not yet on iOS 14.0.1
Please try this PR see testing instructions: #587

@hthetiot
Copy link
Contributor

6.0.14 with #585 released and #587 landed on master.

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#master --verbose
cordova platform remove ios --no-save
cordova platform add ios --no-save

@samgabriel
Copy link
Contributor Author

@hthetiot the Black screen and red screen issue in the screenshot above was actually also due to the version of WebRTC we updated our fork to version M84 and everything started working normally from iOS 14

@samgabriel
Copy link
Contributor Author

@hthetiot we are going to test #585 and #587 without M84 then report back

@samgabriel
Copy link
Contributor Author

@hthetiot we just tested it from iOS 14 and we can see the video that was previously not displaying

@samgabriel
Copy link
Contributor Author

@hthetiot actually after updating the device with iOS 14 to version 6.0.14 the simulator is crashing again so definitely need the M84 version

@samgabriel
Copy link
Contributor Author

@hthetiot we tried to update the WebRTC to M84 but with this latest version no videos are showing up it is as if nothing is being published or received. any ideas?

@hthetiot
Copy link
Contributor

@hthetiot we just tested it from iOS 14 and we can see the video that was previously not displaying

Assuming you tested master.

@hthetiot
Copy link
Contributor

@hthetiot actually after updating the device with iOS 14 to version 6.0.14 the simulator is crashing again so definitely need the M84 version

6.0.14 should not crash, you may check that you regenerated iOS, but 6.0.14 does not include black video fix, master or future 6.0.15 does.

@hthetiot
Copy link
Contributor

What did you test for M84 (task/8.0.0 branch), I updated to M87 this weekend.

@hthetiot
Copy link
Contributor

hthetiot commented Oct 21, 2020

If you can just test master that our target for this issue.

@akilude
Copy link
Contributor

akilude commented Oct 23, 2020

The black screen issue does not occur when using the legacy onaddstream method instead of addtrack.

@hthetiot Tried master, it seems to be fixed, works with addtrack/ontrack as well

@samgabriel
Copy link
Contributor Author

@hthetiot sorry have been busy with other issues we will try master on the Monday and let you know. We tested with 6.0.14. You said you updated to M87 but the last commit on the lib/WebRTC shows updating to M69. Was that what you were referring to?

@hthetiot
Copy link
Contributor

hthetiot commented Nov 19, 2020

The last know Twillio issue should have been fixed on #605 that has landed on master target is 6.0.16

@akilude

This comment has been minimized.

@dgreif

This comment has been minimized.

@akilude

This comment has been minimized.

@hthetiot hthetiot modified the milestones: 6.1.1, 6.0.16 Jan 20, 2021
@danielehrhardt

This comment has been minimized.

@hthetiot

This comment has been minimized.

@hthetiot hthetiot self-assigned this Jan 23, 2021
@cordova-rtc cordova-rtc locked as resolved and limited conversation to collaborators Jan 23, 2021
@hthetiot

This comment has been minimized.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants