From ed3aa740bedf2cf308d91d89b017071af34260a2 Mon Sep 17 00:00:00 2001 From: Taruntej Kanakamalla Date: Mon, 14 Aug 2023 12:11:57 +0530 Subject: [PATCH] net/webrtc: deprecate consumer-added on the signaller add a new signal webrtcbin-ready in this place doing same thing but can be used for both consumers and producers Please note this change is only to the consumer-added signal on the signaller interface. The consumer-added signal on the webrtcsink is unchanged Part-of: --- docs/plugins/gst_plugins_cache.json | 14 ++++++++++++++ net/webrtc/src/aws_kvs_signaller/imp.rs | 2 +- net/webrtc/src/livekit_signaller/imp.rs | 2 +- net/webrtc/src/signaller/iface.rs | 15 +++++++++++++++ net/webrtc/src/webrtcsink/imp.rs | 1 + net/webrtc/src/whip_signaller/imp.rs | 2 +- 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json index bec11184..1539cec5 100644 --- a/docs/plugins/gst_plugins_cache.json +++ b/docs/plugins/gst_plugins_cache.json @@ -7131,6 +7131,20 @@ "args": [], "return-type": "gboolean", "when": "last" + }, + "webrtcbin-ready": { + "args": [ + { + "name": "arg0", + "type": "gchararray" + }, + { + "name": "arg1", + "type": "GstElement" + } + ], + "return-type": "void", + "when": "last" } } }, diff --git a/net/webrtc/src/aws_kvs_signaller/imp.rs b/net/webrtc/src/aws_kvs_signaller/imp.rs index 128b6ca3..385a6656 100644 --- a/net/webrtc/src/aws_kvs_signaller/imp.rs +++ b/net/webrtc/src/aws_kvs_signaller/imp.rs @@ -345,7 +345,7 @@ impl Signaller { gst::info!(CAT, "Ice servers: {:?}", ice_servers); self.obj().connect_closure( - "consumer-added", + "webrtcbin-ready", false, glib::closure!(|_signaller: &super::AwsKvsSignaller, _consumer_identifier: &str, diff --git a/net/webrtc/src/livekit_signaller/imp.rs b/net/webrtc/src/livekit_signaller/imp.rs index ae85e89e..dd4efa55 100644 --- a/net/webrtc/src/livekit_signaller/imp.rs +++ b/net/webrtc/src/livekit_signaller/imp.rs @@ -269,7 +269,7 @@ impl SignallableImpl for Signaller { let weak_imp = imp.downgrade(); imp.obj().connect_closure( - "consumer-added", + "webrtcbin-ready", false, glib::closure!(|_signaler: &super::LiveKitSignaller, _consumer_identifier: &str, diff --git a/net/webrtc/src/signaller/iface.rs b/net/webrtc/src/signaller/iface.rs index 2ab6f475..98f57d1d 100644 --- a/net/webrtc/src/signaller/iface.rs +++ b/net/webrtc/src/signaller/iface.rs @@ -284,9 +284,12 @@ unsafe impl prelude::ObjectInterface for Signallable { * * This signal can be used to tweak @webrtcbin, creating a data * channel for example. + * + * Deprecated: 1.24: Use `webrtcbin-ready` instead */ Signal::builder("consumer-added") .param_types([String::static_type(), gst::Element::static_type()]) + .deprecated() .build(), /** * GstRSWebRTCSignallableIface::consumer-removed: @@ -386,6 +389,18 @@ unsafe impl prelude::ObjectInterface for Signallable { false }) .build(), + /** + * GstRSWebRTCSignallableIface::webrtcbin-ready: + * @self: The object implementing #GstRSWebRTCSignallableIface + * @peer_id: Id of the consumer/producer + * @webrtcbin: The internal WebRTCBin element + * + * This signal can be used to tweak @webrtcbin, creating a data + * channel for example. + */ + Signal::builder("webrtcbin-ready") + .param_types([String::static_type(), gst::Element::static_type()]) + .build(), ] }); SIGNALS.as_ref() diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs index b1348f7d..453e5e12 100644 --- a/net/webrtc/src/webrtcsink/imp.rs +++ b/net/webrtc/src/webrtcsink/imp.rs @@ -2613,6 +2613,7 @@ impl BaseWebRTCSink { // moment. element.emit_by_name::<()>("consumer-added", &[&peer_id, &webrtcbin]); signaller.emit_by_name::<()>("consumer-added", &[&peer_id, &webrtcbin]); + signaller.emit_by_name::<()>("webrtcbin-ready", &[&peer_id, &webrtcbin]); // We don't connect to on-negotiation-needed, this in order to call the above // signal without holding the state lock: diff --git a/net/webrtc/src/whip_signaller/imp.rs b/net/webrtc/src/whip_signaller/imp.rs index 112b4336..741a50c6 100644 --- a/net/webrtc/src/whip_signaller/imp.rs +++ b/net/webrtc/src/whip_signaller/imp.rs @@ -426,7 +426,7 @@ impl SignallableImpl for WhipClient { } self.obj().connect_closure( - "consumer-added", + "webrtcbin-ready", false, glib::closure!(|signaller: &super::WhipClientSignaller, _consumer_identifier: &str,