Commit 76bc578b authored by Thibault Saunier's avatar Thibault Saunier 🌵 Committed by GStreamer Merge Bot

player/transcoder: Use bus signal watch

Instead of implementing exactly the same thing ourself but making
`GstBus` not know that it is the case.

Since we are *sure* that the bus can't have been access at the point
where we add the watch we are guaranteed that the current thread
maincontext is going to be used.

Part-of: <!1870>
parent 3ce1086b
Pipeline #243498 waiting for manual action with stages
in 45 seconds
......@@ -2877,7 +2877,6 @@ gst_player_main (gpointer data)
GstPlayer *self = GST_PLAYER (data);
GstBus *bus;
GSource *source;
GSource *bus_source;
GstElement *scaletempo;
const gchar *env;
......@@ -2927,10 +2926,7 @@ gst_player_main (gpointer data)
}
self->bus = bus = gst_element_get_bus (self->playbin);
bus_source = gst_bus_create_watch (bus);
g_source_set_callback (bus_source, (GSourceFunc) gst_bus_async_signal_func,
NULL, NULL);
g_source_attach (bus_source, self->context);
gst_bus_add_signal_watch (bus);
g_signal_connect (G_OBJECT (bus), "message::error", G_CALLBACK (error_cb),
self);
......@@ -2993,8 +2989,7 @@ gst_player_main (gpointer data)
g_main_loop_run (self->loop);
GST_TRACE_OBJECT (self, "Stopped main loop");
g_source_destroy (bus_source);
g_source_unref (bus_source);
gst_bus_remove_signal_watch (bus);
gst_object_unref (bus);
remove_tick_source (self);
......
......@@ -920,7 +920,6 @@ gst_transcoder_main (gpointer data)
GstTranscoder *self = GST_TRANSCODER (data);
GstBus *bus;
GSource *source;
GSource *bus_source;
GST_TRACE_OBJECT (self, "Starting main thread");
......@@ -933,10 +932,7 @@ gst_transcoder_main (gpointer data)
g_source_unref (source);
self->bus = bus = gst_element_get_bus (self->transcodebin);
bus_source = gst_bus_create_watch (bus);
g_source_set_callback (bus_source, (GSourceFunc) gst_bus_async_signal_func,
NULL, NULL);
g_source_attach (bus_source, self->context);
gst_bus_add_signal_watch (bus);
g_signal_connect (G_OBJECT (bus), "message::error", G_CALLBACK (error_cb),
self);
......@@ -965,8 +961,7 @@ gst_transcoder_main (gpointer data)
g_main_loop_run (self->loop);
GST_TRACE_OBJECT (self, "Stopped main loop");
g_source_destroy (bus_source);
g_source_unref (bus_source);
gst_bus_remove_signal_watch (bus);
gst_object_unref (bus);
remove_tick_source (self);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment