GNOME Bugzilla – Bug 690146
Cannot transit to PLAY state with a new sink bin that composed of two sink elements
Last modified: 2012-12-14 10:12:16 UTC
Created attachment 231451 [details] Create a sink bin I create a new sink bin that composes of an autoaudiosink element and an appsink elemnet. The appsink is used for capturing raw PCM data. The newly create sink bin is attached to the playbin's "audio-sink" path. It works fine on gstreamer-0.10. However, when I port it to gstreamer-1.0, it just hang without transit to PLAY state. When only one of the sink element (that is, only use one of the "tee" output) is used, it works and can enter PLAY state:- for appsink, it can get new sample; for autoaudiosink, it can output sound. I don't know what is going wrong, can you give me a hand? Attached is the code that I used to create the sink bin. Regards, Colman
Have you tried putting a queue in front of each sink? Only using one queue makes assumptions about the order in which tee pushes buffers, which you can't really do (not in 0.10 either).
Thank you. After adding the queue, it works now. But I don't know why it can work in 0.10. Colman
Pure luck really. In 0.10 it probably first pushed on the pad where you connected the queue, whereas in 1.0 it first pushes on the pad without queue for some reason. The 0.10 behaviour might have changed at any point as well. Anyway, great to hear it works now.