[gst-devel] Any ways to add/remove branches to/from a running pipeline
shiping.li at gmail.com
Tue Oct 13 20:23:01 CEST 2009
Thanks Aurelien for your suggestion, and many thanks to all the answers
posted here. I really appreciated. This makes me feel I am not alone,
there are still many experts out there willing to provide help. :-)
I tried the method, and here are the results:
First let me put my pipeline here:
video source -> tee -> record bin
-> preview bin
-> stream bin
I tried to add preview bin when recode bin was running, first I blocked the
tee->src to preview bin, BUT it stopped the whole pipeline, including record
bin. I tried several times, but could not figure out why, and no error
messages printed out when I set debug level to 3.
Then I tried adding preview bin directly to running pipeline, it worked
unexpectedly. I do not know why it worked, it should not according the
documents you pointed. Removing preview bin from running pipeline was also
Then when I tried to add stream bin, it became more difficult. I tried many
methods - blocking, unblocking, directly adding to running pipeline, etc.
None of them worked, and the most problems were like this:
<udpsink0> warning: Internal data flow problem.
WARN basesink gstbasesink.c:3279:gst_base_sink_chain_unlocked:<udpsink0>
warning: Received buffer without a new-segment. Assuming timestamps start
gstelement.c:1763:gst_element_message_full:<udpsink0> posting message:
Internal data flow problem.
gstelement.c:1786:gst_element_message_full:<udpsink0> posted warning
message: Internal data flow problem.
So I am technically stuck here for a couple of days now.
Could you guys please shad a light on me?
Aurelien Grimaud (elzz) wrote:
> Le 07/10/2009 23:14, Shiping a écrit :
>> Hi, there:
>> I am trying to record live video, so a pipeline is setup to record video
>> And during this process, I would like to preview the video from source.
>> I add a tee to the recording pipeline and branch out for previewing.
>> preview stopped, the branch was removed from the pipeline.
>> I tried hard not to pause recording pipeline, but got all kinds of errors
>> and unstable recording. Currently all I can do is pause recording,
>> inset/remove branch, and restart the whole pipeline.
>> Of cause, I lost some frames in above process.
>> My question is: Is there a way to do it without pausing the recording?
>> Any suggestions?
> You should read
> Dynamically changing a PLAYING pipeline should be done with pad block to
> prevent any error.
> Block your tee sink pad, link/unlink your preview branch, unblock.
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
View this message in context: http://www.nabble.com/Any-ways-to-add-remove-branches-to-from-a-running-pipeline-tp25794577p25878111.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel