[gstreamer-bugs] [Bug 501239] Add support for "realtime thread pools"

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Fri Apr 24 11:49:44 PDT 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=501239

  GStreamer | gstreamer (core) | Ver: git




------- Comment #9 from Wim Taymans  2009-04-24 18:49 UTC -------
For changing the priorities of running tasks, you could keep a ref to all the
stream-status messages and work from there. It would theoretically allow you to
put a caps notify on those pads referenced in the message (for tasks started by
pads) and then conditionally raise priorities based on the media type as the
pads become negotiated. A bit clumsy but doable. Or the other way around, look
for deep-notify::caps and then do something with the related tasks from the pad
that fired it. 

I was also considering a getter for the task of a pad. The only problem is that
you don't really know when a pad has a task unless you look at the messages.
And if you need to keep the messages for that, you already have the task.

Even for the Tasks that don't have pads, the element could intercept the
priority events on certain pads and raise related internal threads, if needed.

What could be interesting is some sort of probe event that would be insterted
in the dataflow and would trigger something on each pad it traveled through,
not sure what the use case here is or how to link that to the tasks.

Or another idea: have a query function you can do on a pad that returns the
task that does the streaming on this pad, it'll go upstream until the task is
found. You probably need this if you want to use the deep-notify on pads
without tasks.

In practice it's not really a problem, you can add pad probes, pad block or
notifies on pads and since they are all done from the streaming threads, you
have a handle to the thread right away. We probably need a method to get the
task of the current thread for that.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=501239.




More information about the Gstreamer-bugs mailing list