[gst-devel] Asynchronously Pausing and Playing From inside the pipeline.

keith preston keithpre at gmail.com
Tue Oct 9 00:11:07 CEST 2007


I have been looking into an audio class policy mechanism in which when I get
a phone call that my music is paused, and when the phone call is over the
music starts back up again.   I have most of this implemented in pulseaudio
and have the gst-pulse plugin modified to do this behavior, but it doesn't
implement correctly and I was wondering if I am just missing something
obvious.

Basically gst-pulse is implemented as a gst-audiosink -> gstbaseaudiosink ->
gst-basesink.    gst-baseaudisink contains a gst-ringbuffer.   The primary
funciton of the pulsesink is that gst-audiosink starts a separate thread
that continously pushes buffer off the ringbuffer to pulseaudio.

>From this thread I receive my asynchronous signals and I try to pause the
pipeline but this always results in a deadlock.    I tried using some start
stop methods from the base classes, but all of these result in deadlock.

Is there a proper way to pause and play the pipeline, from inside an element
of the pipeline?

Keith Preston
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20071008/e58c2c8e/attachment.htm>


More information about the gstreamer-devel mailing list