Are Bus Messages Queued?

Nastooh Avessta nastooh.avesta at gmail.com
Fri Nov 4 00:42:34 UTC 2016


Hi

Got an application that would take an action, upon receiving messages from
multiple plugins , through a watch on the app bus: (Note that these messages
are asynchronous and may arrive at the ~ same time.)

.

   loop = g_main_loop_new (NULL, FALSE);

   bus = gst_element_get_bus (pipeline);

   bus_watch_id = gst_bus_add_watch (bus, bus_call, (gpointer *) &data);

.

Where, bus_call:

static gboolean bus_call (GstBus     *bus, GstMessage *msg, gpointer
gdata){

.

   switch (GST_MESSAGE_TYPE (msg)) {

.

    case GST_MESSAGE_ELEMENT:

    g_print("Got message from %s\n",gst_object_get_name
(GST_MESSAGE_SRC(msg)));

.

   break;

.

}

 

What I am seeing is that on different runs not all messages make it to
"case GST_MESSAGE_ELEMENT", and am wondering if I need to queue messages
myself, start a new processing thread per message, etc.?

Cheers,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161103/e1f0d694/attachment.html>


More information about the gstreamer-devel mailing list