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.
<br><br>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.
<br><br>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.
<br><br>Is there a proper way to pause and play the pipeline, from inside an element of the pipeline?<br><br>Keith Preston<br><br>