webrtcbin: Bad error handling
As part of the ongoing quest of getting jitsi to work in my WebKit gstwebrtc backend I am now hitting this:
0:00:06.303249622 69 0x1f4e860 ERROR default webrtcsdp.c:613:_get_final_setup: remote SDP has the same 'a=setup:actpass' attribute. This is not legal
0:00:06.303263102 69 0x1f4e860 TRACE webrtcbin gstwebrtcbin.c:4003:_find_transceiver_for_sdp_media:<webkit-webrtcbin-0> Found transceiver <webrtctransceiver1>
0:00:06.303271612 69 0x1f4e860 TRACE webrtcbin gstwebrtcbin.c:594:_find_transport_for_session:<webkit-webrtcbin-0> Found transport <transportstream0> for session 0
0:00:06.303280383 69 0x1f4e860 DEBUG webrtctransportsendbin transportsendbin.c:166:transport_send_bin_change_state:<transportsendbin0> changing state: PLAYING => PLAYING
0:00:06.303295696 69 0x1f4e860 DEBUG webrtctransportreceivebin transportreceivebin.c:213:transport_receive_bin_change_state: changing state: PLAYING => PLAYING
0:00:06.303323534 69 0x1f4e860 ERROR default webrtcsdp.c:613:_get_final_setup: remote SDP has the same 'a=setup:actpass' attribute. This is not legal
(WebKitWebProcess:69): GLib-WARNING **: 01:38:06.104: GError set over the top of a previous GError or uninitialized memory.
This indicates a bug in someone's code. You must ensure an error is NULL before it's set.
The overwriting error message was: Cannot intersect direction attributes for media 1
0:00:06.303554094 69 0x19e1550 DEBUG webkitmediastreamsrc GStreamerMediaStreamSource.cpp:439:webkitMediaStreamSrcChangeState:<webkitmediastreamsrc4> READY->PAUSED
** (MiniBrowser:21): WARNING **: 01:38:19.999: WebProcess CRASHED
The issue seems to be that _update_transceiver_from_sdp_media()
sets the GError once but we don't exit from the loop it's called from in _update_transceivers_from_sdp()
so that opens the door to have the error set more than once, which apparently is not allowed :)