[gst-devel] Any ways to add/remove branches to/from a running pipeline
Shiping
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
working.
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
from 0.
INFO GST_ERROR_SYSTEM
gstelement.c:1763:gst_element_message_full:<udpsink0> posting message:
Internal data flow problem.
INFO GST_ERROR_SYSTEM
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?
Many thanks
Shiping
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
>> continuously.
>>
>> And during this process, I would like to preview the video from source.
>> So
>> I add a tee to the recording pipeline and branch out for previewing.
>> When
>> 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?
>>
>> Thanks
>>
>> Shiping
>>
> Hi,
>
> You should read
> http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-block.txt
> 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.
>
> Aurelien
>
> ------------------------------------------------------------------------------
> 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!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
--
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
mailing list