Trouble removing a sink from a playing pipeline

Tal Liron tal.liron at gmail.com
Sat Oct 1 17:15:34 PDT 2011


(Resending this because the mailing list seems to hate HTML)


I'm still very stuck with this problem!


I have an audio pipeline with a tee (and each branch has its own queue). 
I am trying to remove one branch (a bin) while keeping the pipeline playing.


In order to entirely remove the branch, I have to set its state to NULL. 
But, when the sink specifically changes to NULL, the pipeline stops 
playing! It is still in PLAYING state, but it just stops at the timeline.


I'm in a weird chicken-and-egg problem. On the one hand, I want to 
remove the sink, but on the other hand, until I remove it, it's still 
part of the pipeline.


Things that I've tried and haven't helped:


1) Using a valve before the sink.

2) Blocking the pad before the sink.

3) Calling unparent() on the sink. (Causes all kinds of failures.)


I have two questions that might help direct an answer:


1) Is it possible to remove an element without setting its state to NULL?

2) Is it possible to change the default behavior of Bin so that it 
doesn't respond to state changes of its children?



More information about the gstreamer-devel mailing list