<div>FWIW, I could be way off base here, but it seems to me that you have conflicting requirements with this tee. Either you want to process the stream as fast as possible, which may be slower than real time, or you want to play it in real time, dropping frames as required.  </div>

<div><br></div><div>So I would suggest you have a simple serial pipeline with no T. </div><div><br></div><div>In appsink it describes to ways to pace with <span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; background-color: rgb(255, 255, 255); font-size: medium; "> &quot;emit-signals&quot; to get blocking and nonblocking variants.</span></div>

<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html</a><div>

<br></div><div><br></div><div><br clear="all"><b>Mike Mitchell</b><br><br>
<br><br><div class="gmail_quote">On Fri, Oct 7, 2011 at 11:44 AM, Sami Pietilä <span dir="ltr">&lt;<a href="mailto:sami.pietila@gmail.com">sami.pietila@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<br>
<br>
I have also a situation where frames can&#39;t be lost. I can&#39;t also say<br>
how long processing a frame takes so I need to ask next frame from<br>
gstreamer when processing previous frame is is done.<br>
<br>
2011/10/7 Erick Pérez &lt;<a href="mailto:erick.red@gmail.com">erick.red@gmail.com</a>&gt;:<br>
&gt;&gt;&gt; I don&#39;t need to modify movie frames, but I need to read them and do<br>
&gt;&gt;&gt; some calculations. Calculations might take some time, so I need a way<br>
&gt;&gt;&gt; to control how gstreamers feeds the frames. That is, I need a way to<br>
&gt;&gt;&gt; ask next frame from gstreamer instead of gstreamer feeding them at a<br>
&gt;&gt;&gt; constant rate.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; How can I get a new frame only when requested?<br>
&gt;&gt;<br>
&gt;&gt; In your pad_probe just do the calculation as you need. ximagesink will<br>
&gt;&gt; throw away late frames. A smarter way might be to do:<br>
&gt;&gt;<br>
&gt;&gt; ... ! colorspace ! tee name = t ! queue leaky=upstream ! appsink<br>
&gt;&gt;                                              t. ! queue ! ximagesink<br>
&gt;&gt;<br>
&gt;&gt; This way you can use get the frames from appsink (better that using<br>
&gt;&gt; pad-probes or fakesink with the handoff signal). Also the playback gets<br>
&gt;&gt; not disturbed and you process the frames on appsink as you manage. All<br>
&gt;&gt; other frames get dropped.<br>
&gt;<br>
&gt; Hey, I&#39;m in the same situation, I want to get the frames, and I know I<br>
&gt; can manage the frame rate by using something videorate element, but<br>
&gt; that will drop frames. I want to process some stuff for every frame on<br>
&gt; the picture, so I need to slow down the frame rate playback sometimes,<br>
&gt; but without losing frames. I&#39;ve seen a way to slow down the playback<br>
&gt; using gnonlin filesource element, but that doesn&#39;t convince me either.<br>
&gt; Is there other way ?<br>
&gt;<br>
&gt; --<br>
&gt; Acta est fabula<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br></div>