[gst-devel] various questions about GStreamer elements

Ronald S. Bultje rbultje at ronald.bitfreak.net
Tue Jan 11 23:34:04 CET 2005


On Wed, 2005-01-12 at 07:44, Thirupathiah Annapureddy wrote:
> We are evaluating GStreamer to fit our audio hardware acceleration
> support efficiently into GStreamer framework by developing custom
> plug-ins. I have the following questions about GStreamer.

Cool, welcome!

> 1. Is it possible to create explicit threads in GStreamer framework?
> If so,do we need to use posix threads or GStreamer threads? This is
> required because, our hardware gives the asynchronous notifications to
> the plug-ins.we need a seperate thread to wait for these
> notifications.

You can, yes. Obviously, the element itself is responsible for having
data handled in the context of the thread created inside GStreamer, but
it can create any additional threads itself if it wants to. You can use
posix threads (or gthreads, from glib, they're the same but more
portable) for this, not a GstThread (which is a runtime-created thread
for data processing in a pipeline).

> 2. Is there any existing support for Acoustic Echo Cancellation(AEC)
> in Gstreamer? we have support for AEC at hardware level. If we have to
> exploit this feature in GStreamer, what are the possible options?
> As of now, i thought of two options. First one is to make it as a
> seperate AEC element, but the playback stream can be from some other
> framework like ALSA. Second one is to provide it as a object property
> on the capture element so that it can instruct the driver to add AEC
> at the hardware level since the driver knows about the playback
> streams from all the frameworks. how efficient is this solution?

I've never heard of this before, but a quick Google shows that this is
some efficient type of noise reduction for input, right? Since the
hardware does AEC during capture (so it is not an independent function),
I suppose an object property is easiest.

> 3. Is it possible to pass custom events from one element to other
> element if they both of them know what the event meant for?

Yes. Elements that don't know what it means will simply forward it
(gst_pad_event_default()), until it reaches an end point (sourcr or


Ronald S. Bultje <rbultje at ronald.bitfreak.net>

More information about the gstreamer-devel mailing list