<div dir="ltr">On 30 May 2015 at 06:14, Dustin Spicuzza <span dir="ltr"><<a href="mailto:dustin@virtualroadside.com" target="_blank">dustin@virtualroadside.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hey,<br>
<br>
I'm using GStreamer 1.4.5 on Fedora 21 via gst-python.<br>
<br>
I'm embedding playbin elements inside of another pipeline, with the goal<br>
to use multiple playbins to play multiple files simultaneously and feed<br>
them to the same output via an adder -- that part actually works, and I<br>
can play two audio streams at once. So far so good.<br>
<br>
However, after I start the pipeline, I've found that I'm having problems<br>
stopping it, and it deadlocks.<br>
<br>
PLAYING -> NULL: I did find that if I set the playbin state to NULL<br>
before setting its parent's state to NULL, then it doesn't deadlock.<br>
However, this leads me to believe I'm missing something here, as I<br>
should only need to set the pipe to NULL and not the playbin too, right?<br>
<br>
PAUSED -> NULL: I don't know how to break this deadlock, I'm sure it's<br>
something simple I'm missing. It looks like the thread is blocked on a<br>
pad lock (gstpad.c:966 - gst_pad_activate_mode) on the GhostPad I<br>
created to connect the playbin to the adder. Using GDB, the owner of the<br>
lock is the PulseSink thread, who is waiting for something to happen at<br>
gst_base_sink_wait_preroll() -- gstbasesink.c:2151.<br>
<br>
I've posted a very short python implementation that demonstrates the<br>
problem with a single playbin at github:<br>
<a href="https://gist.github.com/virtuald/7592a16d6dee07404438" target="_blank">https://gist.github.com/virtuald/7592a16d6dee07404438</a><br>
<br>
Thanks for any assistance!<br>
<br>
Dustin<br></blockquote><div><br></div><div>Hello Dustin,<br><br></div><div>I run your Python code and it works with current GStreamer from git. I can't reproduce your deadlock.<br><br></div><div>Could you provide a debug log? [0]<br><br></div><div>Also, in your case I think it would be better if you used filesrc and decodebin, instead of playbin.<br><br></div><div>I am not very clear on what is the purpose of the Bin you create. What is it for?<br><br></div><div>Thanks,<br></div><div>Luis<br><br>[0] <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gst-running.html">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gst-running.html</a><br></div></div></div></div>