[gst-devel] Newbie question about Pipelines

Manuel.Serrano at sophia.inria.fr Manuel.Serrano at sophia.inria.fr
Thu Aug 21 15:12:12 CEST 2008


Tracking down possible dead-locks, I have realized that a small modification
to my program makes it work. The "replay" function used to be defined as:

-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----
(define (replay)
   (thread-terminate! thread)
   (gst-element-state-set! pipeline 'null)
   (play-streams))
-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----

Just getting rid of the "thread-terminate!" call fixes the problem.
As far as I understand, a first thread was calling gst_bus_poll. This
thread was abruptly killed by the "tread-terminate!" call while a
gst_bus_poll call was already initiated (and, as unveiled, by GDB, a
gstreamer lock acquired). When the second thread call gst_bus_poll 
then it got stuck while trying to get the already locked mutex.

So, if my understanding is correct, the problem was in my program
(I knew from the beginning that the error was mine :-) and not at all
in gstreamer.

Anyhow, thanks again for your mail. It has helped me spotting the problem
by showing me the good direction. 

Cheers,

-- 
Manuel




More information about the gstreamer-devel mailing list