mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-19 00:01:23 +00:00
webrtcbin: fix deadlock when setting up FEC encoder
We bind transceivers' fec_percentage property to the FEC encoder percentage property, and with the binding bidirectional a deadlock was introduced by the latest changes from !1762: We take hold of the transceiver's object lock, then add the binding and set the property to its initial value on the encoder, which causes set_property to deadlock in the transceiver when the binding kicks in. Changing the binding type to DEFAULT (source to target) is enough to address the deadlock and still serves the original intent. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1967>
This commit is contained in:
parent
5c54cad469
commit
30d028317b
1 changed files with 1 additions and 1 deletions
|
@ -4463,7 +4463,7 @@ _build_fec_encoder (GstWebRTCBin * webrtc, WebRTCTransceiver * trans)
|
|||
sinkpad = gst_element_get_static_pad (trans->ulpfecenc, "sink");
|
||||
|
||||
g_object_bind_property (rtp_trans, "fec-percentage", trans->ulpfecenc,
|
||||
"percentage", G_BINDING_BIDIRECTIONAL);
|
||||
"percentage", G_BINDING_DEFAULT);
|
||||
|
||||
trans->redenc = gst_element_factory_make ("rtpredenc", NULL);
|
||||
gst_object_ref_sink (trans->redenc);
|
||||
|
|
Loading…
Reference in a new issue