webrtc: name threads based on the element name

Makes debugging a busy loop possibly easier

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1240>
This commit is contained in:
Matthew Waters 2020-05-06 00:25:45 +10:00 committed by GStreamer Merge Bot
parent d0be6b74f2
commit 1f395e3ddb
3 changed files with 42 additions and 16 deletions

View file

@ -713,9 +713,13 @@ _gst_pc_thread (GstWebRTCBin * webrtc)
static void
_start_thread (GstWebRTCBin * webrtc)
{
gchar *name;
PC_LOCK (webrtc);
webrtc->priv->thread = g_thread_new ("gst-pc-ops",
(GThreadFunc) _gst_pc_thread, webrtc);
name = g_strdup_printf ("%s:pc", GST_OBJECT_NAME (webrtc));
webrtc->priv->thread = g_thread_new (name, (GThreadFunc) _gst_pc_thread,
webrtc);
g_free (name);
while (!webrtc->priv->loop)
PC_COND_WAIT (webrtc);
@ -5840,6 +5844,21 @@ gst_webrtc_bin_get_property (GObject * object, guint prop_id,
PC_UNLOCK (webrtc);
}
static void
gst_webrtc_bin_constructed (GObject * object)
{
GstWebRTCBin *webrtc = GST_WEBRTC_BIN (object);
gchar *name;
GST_ERROR_OBJECT (webrtc, "%s", GST_OBJECT_NAME (webrtc));
name = g_strdup_printf ("%s:ice", GST_OBJECT_NAME (webrtc));
webrtc->priv->ice = gst_webrtc_ice_new (name);
g_signal_connect (webrtc->priv->ice, "on-ice-candidate",
G_CALLBACK (_on_local_ice_candidate_cb), webrtc);
g_free (name);
}
static void
_free_pending_pad (GstPad * pad)
{
@ -5957,6 +5976,7 @@ gst_webrtc_bin_class_init (GstWebRTCBinClass * klass)
"Filter/Network/WebRTC", "A bin for webrtc connections",
"Matthew Waters <matthew@centricular.com>");
gobject_class->constructed = gst_webrtc_bin_constructed;
gobject_class->get_property = gst_webrtc_bin_get_property;
gobject_class->set_property = gst_webrtc_bin_set_property;
gobject_class->dispose = gst_webrtc_bin_dispose;
@ -6395,9 +6415,6 @@ gst_webrtc_bin_init (GstWebRTCBin * webrtc)
g_array_set_clear_func (webrtc->priv->session_mid_map,
(GDestroyNotify) clear_session_mid_item);
webrtc->priv->ice = gst_webrtc_ice_new ();
g_signal_connect (webrtc->priv->ice, "on-ice-candidate",
G_CALLBACK (_on_local_ice_candidate_cb), webrtc);
webrtc->priv->ice_stream_map =
g_array_new (FALSE, TRUE, sizeof (IceStreamItem));
webrtc->priv->pending_remote_ice_candidates =

View file

@ -118,7 +118,7 @@ static void
_start_thread (GstWebRTCICE * ice)
{
g_mutex_lock (&ice->priv->lock);
ice->priv->thread = g_thread_new ("gst-nice-ops",
ice->priv->thread = g_thread_new (GST_OBJECT_NAME (ice),
(GThreadFunc) _gst_nice_thread, ice);
while (!ice->priv->loop)
@ -901,11 +901,27 @@ gst_webrtc_ice_finalize (GObject * object)
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gst_webrtc_ice_constructed (GObject * object)
{
GstWebRTCICE *ice = GST_WEBRTC_ICE (object);
_start_thread (ice);
ice->priv->nice_agent = nice_agent_new (ice->priv->main_context,
NICE_COMPATIBILITY_RFC5245);
g_signal_connect (ice->priv->nice_agent, "new-candidate-full",
G_CALLBACK (_on_new_candidate), ice);
G_OBJECT_CLASS (parent_class)->constructed (object);
}
static void
gst_webrtc_ice_class_init (GstWebRTCICEClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
gobject_class->constructed = gst_webrtc_ice_constructed;
gobject_class->get_property = gst_webrtc_ice_get_property;
gobject_class->set_property = gst_webrtc_ice_set_property;
gobject_class->finalize = gst_webrtc_ice_finalize;
@ -964,13 +980,6 @@ gst_webrtc_ice_init (GstWebRTCICE * ice)
g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify) gst_uri_unref);
_start_thread (ice);
ice->priv->nice_agent = nice_agent_new (ice->priv->main_context,
NICE_COMPATIBILITY_RFC5245);
g_signal_connect (ice->priv->nice_agent, "new-candidate-full",
G_CALLBACK (_on_new_candidate), ice);
ice->priv->nice_stream_map =
g_array_new (FALSE, TRUE, sizeof (struct NiceStreamItem));
g_array_set_clear_func (ice->priv->nice_stream_map,
@ -978,7 +987,7 @@ gst_webrtc_ice_init (GstWebRTCICE * ice)
}
GstWebRTCICE *
gst_webrtc_ice_new (void)
gst_webrtc_ice_new (const gchar * name)
{
return g_object_new (GST_TYPE_WEBRTC_ICE, NULL);
return g_object_new (GST_TYPE_WEBRTC_ICE, "name", name, NULL);
}

View file

@ -58,7 +58,7 @@ struct _GstWebRTCICEClass
GstObjectClass parent_class;
};
GstWebRTCICE * gst_webrtc_ice_new (void);
GstWebRTCICE * gst_webrtc_ice_new (const gchar * name);
GstWebRTCICEStream * gst_webrtc_ice_add_stream (GstWebRTCICE * ice,
guint session_id);
GstWebRTCICETransport * gst_webrtc_ice_find_transport (GstWebRTCICE * ice,