[gst-devel] Specifying a different context for gst_bus_add_watch()

Wim Taymans wim.taymans at gmail.com
Thu Nov 13 19:33:18 CET 2008


On Thu, 2008-11-13 at 10:16 -0800, Karthik V wrote:
> Hello All,
> 
> 
> I would like to run my g_main_loop in a separate context, so did
> something like this
> 
> 
> GMainContext *c = g_main_context_new();
> GMainLoop *l = g_main_loop_new(c, false);
> g_main_loop_run(l);
> 
> 
> My bus watch code goes like this:
> GstBus *bus = gst_pipeline_get_bus(pipe);
> gst_bus_add_watch(bus, BusHandler, NULL);
> 
> 
> If I run my main loop in the default context (by passing NULL), I
> receive call backs when there is an event on the bus. But after I
> moved it to a new context, I don't get the events anymore. Looking
> into the documentation, it looks like gst_bus_add_watch() adds watch
> only to the default context. 
> 
> 
> Could someone tell me how to add watch to my own context, please?

You want something like this:

  GSource *source;

  source = gst_bus_create_watch (bus);

  g_source_set_callback (source, (GSourceFunc) func, user_data, notify);

  /* now attach to the custom context c */
  id = g_source_attach (source, c);
  g_source_unref (source);
  ...

Wim




> 
> 
> Thanks
> Karthik
> 
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________ gstreamer-devel mailing list gstreamer-devel at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





More information about the gstreamer-devel mailing list