<html><head></head><body><div class="">Hi Dröge<br>    I wanna make a dual video output on my own board with a monitor camera .<br>When the camera (Also use v4l2sink)is power on ,it must be shown on the branch1 screen.<br>That means media pipeline should remove it's v4l2sink in branch1 without stop playback .When the camera is power off,media pipeline should add the v4l2sink back into the pipeline.<br> <br>gst_pad_add_probe (queue1_srcpad , (GstPadProbeType)GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, pad_probe_cb, user_data, NULL);<br>In the pad_probe_cb:<br><br>gst_element_set_state (v4l2sink1, GST_STATE_NULL);<br>gst_bin_remove (GST_BIN (videoOutputBin), v4l2sink1);<br>gst_pad_remove_probe(queue1_srcpad ,...) <br><br>The queue1_srcpad is unblocked when remove the probe but the videostream is not  continue  in branch2 while the pipeline is playing.<br>I tried to link the v4l2sink1  adding a probe on queue1_srcpad  back to the pipeline  but the branch1 is no video image on screen just audio output.   Here is the code:<br><br>gst_pad_add_probe (queue1_srcpad , (GstPadProbeType)GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, block_pad_cb, user_data, NULL);<br>In the block_pad_cb<br>gst_bin_add (GST_BIN (videoOutputBin), v4l2sink1);<br>gst_element_link_many (queues1, v4l2sink1, NULL);<br>gst_element_sync_state_with_parent (v4l2sink1);<br>gst_element_set_state (v4l2sink1, GST_STATE_PLAYING);<br>  gst_pad_remove_probe (queue1_srcpad , GST_PAD_PROBE_INFO_ID (info));<br></div><div> </div><hr style="WIDTH: 210px; HEIGHT: 1px" color="#b5c4df" size="1" align="left"><div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>hongming0724@163.com</div></div></span></div><blockquote style="margin-Top: 0px; margin-Bottom: 0px; margin-Left: 0.5em"><div> </div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b> <a href="mailto:sebastian@centricular.com">SebastianDröge</a></div><div><b>Date:</b> 2015-09-17 18:07</div><div><b>To:</b> <a href="mailto:gstreamer-devel@lists.freedesktop.org">Discussion of the development of and with GStreamer</a></div><div><b>Subject:</b> Re: Re: Link/unlink tee branch from a pipeline</div></div></div><div><div class=""><style>div.FoxDIV_20150918154622627 { font-size: 10.5pt }
</style><div class="FoxDIV_20150918154622627"><div foxmail_class="mail_content_body" style="border-width:0px"><div>On Do, 2015-09-17 at 18:04 +0800, hongming0724@163.com wrote:</div>
<div>> Thanks for your reply.</div>
<div>> That you mean data is interactive among the elements.</div>
<div> </div>
<div>What do you mean with interactive? Tee is pushing buffers to all its</div>
<div>srcpads one after another from the same thread. If one of the</div>
<div>downstreams of one of the srcpads is blocking, it can't push to the</div>
<div>others until it is unblocked.</div>
<div> </div>
<div>> And  can this problem  be solved ?</div>
<div> </div>
<div>What is the bigger picture of what you want to do?</div>
<div> </div>
<div>-- </div>
<div>Sebastian Dröge, Centricular Ltd · <a href="http://www.centricular.com">http://www.centricular.com</a></div>
<div> </div>
</div></div></div></div></blockquote></body></html>