<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div id="yiv8854801100"><div id="yui_3_16_0_1_1504184226553_9372"><div id="yui_3_16_0_1_1504184226553_9371" style="color:#000;background-color:#fff;font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px;"><div id="yiv8854801100"><div id="yiv8854801100yui_3_16_0_1_1504184226553_7470"><div id="yiv8854801100yui_3_16_0_1_1504184226553_7469" style="color:#000;background-color:#fff;font-family:標楷體, dfkai-sb;font-size:16px;"><div id="yiv8854801100yui_3_16_0_1_1504168002835_9749"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2">Hello @Arjen and @Yasushi,</font></div><div id="yiv8854801100yui_3_16_0_1_1504168002835_9786"><br clear="none"></div><div id="yiv8854801100yui_3_16_0_1_1504168002835_9787"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2">Thank you for your suggestions.</font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10858"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2">I successfully implemented the initial pipeline in C, and now I need to use pads to monitor the data stream.</font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_11480"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2"><b>Question: </b><br clear="none"></font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_11440"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2">Do I need tee and queue even if I want to be able to monitor when each frame as been read ?<br clear="none"></font></div><div id="yiv8854801100yui_3_16_0_1_1504168002835_10382"><br clear="none"></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10578"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10580" size="2">@Arjen wrote:<br clear="none"></font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10536"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10555" size="2">"<i id="yiv8854801100yui_3_16_0_1_1504168002835_10581">Alternatively, to get things running quick and dirty from the command line, have it write the decoded output to a file / named pipe by replacing the appsink element by a filesink element</i>"</font></div><div id="yiv8854801100yui_3_16_0_1_1504168002835_10535"><br clear="none"></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10603"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10602" size="2">I tried to execute the following pipe from command line:</font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10604"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10602" size="2"><br clear="none"></font></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_10182"><font id="yiv8854801100yui_3_16_0_1_1504168002835_9678" size="2"><b id="yiv8854801100yui_3_16_0_1_1504168002835_10428">gst-launch-1.0 -e v4l2src device=/dev/webcam ! videoconvert ! video/x-raw,width=544,height=288,framerate=10/1 ! v4l2h264enc ! tee name=t ! h264parse ! mp4mux ! filesink location=video.mp4  ! decodebin ! videoconvert ! video/x-raw,format=I420 ! filesink location="file.png"</b><br clear="none"></font></div><div id="yiv8854801100"><div id="yiv8854801100yui_3_16_0_1_1504168002835_9601"><div id="yiv8854801100yui_3_16_0_1_1504168002835_9600" style="color:#000;background-color:#fff;font-family:標楷體, dfkai-sb;font-size:16px;"><div id="yiv8854801100yui_3_16_0_1_1504168002835_10605"><br clear="none"></div><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504168002835_11110"><div id="yiv8854801100yui_3_16_0_1_1504184226553_7515"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10637" size="2">but gst-launch claims he cannot link filesink0 to decodebin0. It's seems to me that the tee element is not take into account, but I am noob with gst so I can't say a lot..</font></div><div id="yiv8854801100yui_3_16_0_1_1504184226553_7695"><br clear="none"></div><div id="yiv8854801100yui_3_16_0_1_1504184226553_7693"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10637" size="2">However I am trying to implement the option #3. Seems to best fit my needs.<br clear="none"></font></div><div id="yiv8854801100yui_3_16_0_1_1504184226553_7722"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10637" size="2"><br clear="none"></font></div><div id="yiv8854801100yui_3_16_0_1_1504184226553_7702"><font size="2">Thank you.</font></div><div id="yiv8854801100yui_3_16_0_1_1504184226553_7745"><font size="2">Regards,</font></div><div id="yui_3_16_0_1_1504184226553_9387"><font size="2">Simon</font><br clear="none"><font id="yiv8854801100yui_3_16_0_1_1504168002835_10637" size="2"></font></div></div><div id="yiv8854801100yui_3_16_0_1_1504168002835_4809"><span></span></div> <div class="yiv8854801100qtdSeparateBR" id="yiv8854801100yui_3_16_0_1_1504168002835_9677"><br clear="none"><br clear="none"></div><div class="yiv8854801100yqt4426027828" id="yiv8854801100yqt88885"></div></div></div></div><div class="yiv8854801100yqt4671377178" id="yiv8854801100yqt68236"><div class="yiv8854801100yqt1501624256" id="yiv8854801100yqt03861"><div id="yiv8854801100yui_3_16_0_1_1504184226553_7485"> <div id="yiv8854801100yui_3_16_0_1_1504184226553_7484" style="font-family:標楷體, dfkai-sb;font-size:16px;"> <div id="yiv8854801100yui_3_16_0_1_1504184226553_7483" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504184226553_7748"><font id="yiv8854801100yui_3_16_0_1_1504184226553_7750" face="Arial" size="2"> El Miércoles 30 de agosto de 2017 10:41, Arjen Veenhuizen <arjen@moonlightmedia.nl> escribió:<br clear="none"></font></div>  <br clear="none"><br clear="none"> <div class="yiv8854801100y_msg_container" id="yiv8854801100yui_3_16_0_1_1504184226553_7489"><div dir="ltr" id="yiv8854801100yui_3_16_0_1_1504184226553_7488">Yasushi SHOJI-2 wrote<br clear="none">> Hi,<br clear="none">> <br clear="none">> On Tue, Aug 29, 2017 at 11:07 PM, Arjen Veenhuizen<br clear="none">> &lt;<br clear="none"><br clear="none">> arjen@<br clear="none"><br clear="none">> &gt; wrote:<br clear="none">>> What one typically would do is write a little app and use a combination<br clear="none">>> of<br clear="none">>> tee and appsink:<br clear="none">>><br clear="none">>> gst-launch-1.0 -e v4l2src device=/dev/webcam ! videoconvert !<br clear="none">>> video/x-raw,width=544,height=288,framerate=10/1 ! v4l2h264enc ! h264parse<br clear="none">>> !<br clear="none">>> tee name=t ! mp4mux ! filesink location=video.mp4 t. ! decodebin !<br clear="none">>> videoconvert ! "video/x-raw,format=I420" ! appsink<br clear="none">> <br clear="none">> Wouldn't it be better to tee right before v4l2h264enc, so that you don't<br clear="none">> have to<br clear="none">> decode the frames you just encoded?<br clear="none">> <br clear="none">> Unfortunately, the current tee[1] implementation do memcpy(), so if you<br clear="none">> don't<br clear="none">> need every single frame, I'd suggest using the "handoff" signal from the<br clear="none">> identity element or pad probes[2] to get the frame you want, copy it<br clear="none">> when you need it.<br clear="none">> If you have plenty of CPU time and memory memory bandwidth, don't<br clear="none">> worry about the above.<br clear="none">> <br clear="none">> [1]:<br clear="none">> <a rel="nofollow" shape="rect" id="yiv8854801100yui_3_16_0_1_1504184226553_7492" target="_blank" href="http://gstreamer-devel.966125.n4.nabble.com/Multiple-sink-usage-in-im6x-td4683174.html">http://gstreamer-devel.966125.n4.nabble.com/Multiple-sink-usage-in-im6x-td4683174.html</a><br clear="none">> [2]: <a rel="nofollow" shape="rect" target="_blank" href="https://gstreamer.freedesktop.org/documentation/design/probes.html">https://gstreamer.freedesktop.org/documentation/design/probes.html</a><br clear="none">> -- <br clear="none">>                yashi<br clear="none"><br clear="none">Ah, yes, off course, put tee before the encoder. Your suggestion to use the<br clear="none">hand-off signal is also a very good one.<br clear="none"><br clear="none"><br clear="none"><br clear="none">--<br clear="none">Sent from: <a id="yui_3_16_0_1_1504184226553_9482" rel="nofollow" shape="rect" target="_blank" href="http://gstreamer-devel.966125.n4.nabble.com/">http://gstreamer-devel.966125.n4.nabble.com/</a><div class="yiv8854801100yqt4706031973" id="yiv8854801100yqtfd64102"><br clear="none">_______________________________________________<br clear="none">gstreamer-devel mailing list<br clear="none"><a id="yui_3_16_0_1_1504184226553_9474" rel="nofollow" shape="rect" ymailto="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br clear="none"><a id="yui_3_16_0_1_1504184226553_9476" rel="nofollow" shape="rect" target="_blank" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br clear="none"></div></div><br clear="none"><br clear="none"></div>  </div> </div>  </div></div></div></div></div></div></div></div></div></div></body></html>