Otherwise a file descriptor will be leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609>
main (int argc, char *argv[])
{
GOptionContext *context;
+ GstBus *bus;
GError *error = NULL;
context = g_option_context_new ("- gstreamer webrtc sendrecv demo");
gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
gst_print ("Pipeline stopped\n");
+ bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+ gst_bus_remove_watch (bus);
+ gst_object_unref (bus);
+
gst_object_unref (pipeline);
g_free (server_url);
g_free (local_id);
g_assert (receiver_entry != NULL);
if (receiver_entry->pipeline != NULL) {
+ GstBus *bus;
+
gst_element_set_state (GST_ELEMENT (receiver_entry->pipeline),
GST_STATE_NULL);
+ bus = gst_pipeline_get_bus (GST_PIPELINE (receiver_entry->pipeline));
+ gst_bus_remove_watch (bus);
+ gst_object_unref (bus);
+
gst_object_unref (GST_OBJECT (receiver_entry->webrtcbin));
gst_object_unref (GST_OBJECT (receiver_entry->pipeline));
}
g_assert (receiver_entry != NULL);
if (receiver_entry->pipeline != NULL) {
+ GstBus *bus;
+
gst_element_set_state (GST_ELEMENT (receiver_entry->pipeline),
GST_STATE_NULL);
+ bus = gst_pipeline_get_bus (GST_PIPELINE (receiver_entry->pipeline));
+ gst_bus_remove_watch (bus);
+ gst_object_unref (bus);
+
gst_object_unref (GST_OBJECT (receiver_entry->webrtcbin));
gst_object_unref (GST_OBJECT (receiver_entry->pipeline));
}