<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:'times new roman', 'new york', times, serif;font-size:12pt"><div>It will be great to have this function when it comes in a future release, but at current time I'm still beeing stuck with my blocking problem... Is it something I'm doing wrong or that I didn't catch/understand?</div><div>Regards,</div><div>Al</div><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><br><div style="font-family:arial, helvetica, sans-serif;font-size:13px"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">De :</span></b> Wim Taymans &lt;wim.taymans@gmail.com&gt;<br><b><span style="font-weight: bold;">À :</span></b> Discussion of the development of GStreamer &lt;gstreamer-devel@lists.sourceforge.net&gt;<br><b><span style="font-weight: bold;">Envoyé le :</span></b> Vendredi, 19 Juin 2009, 20h27mn 19s<br><b><span
 style="font-weight: bold;">Objet&nbsp;:</span></b> Re: [gst-devel] How to perform frame-by-frame video playing<br></font><br>On Fri, 2009-06-19 at 14:05 -0400, Nick Haddad wrote:<br>&gt; Wohoo!<br>&gt; <br>&gt; <br>&gt; I've been waiting for the framestepping API!&nbsp; Will this require some<br>&gt; implementation by all the decoders to be reliable?&nbsp; <br><br>It's mostly done in the sinks (which have been updated). For reverse<br>stepping you'll still need the demuxers and decoders output data in<br>reverse, though. <br><br>Wim<br><br>&gt; <br>&gt; <br>&gt; Thanks,<br>&gt; -Nick<br>&gt; <br>&gt; <br>&gt; <br>&gt; On Jun 19, 2009, at 12:47 PM, Andoni Morales wrote:<br>&gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; 2009/6/19 Wim Taymans &lt;<a ymailto="mailto:wim.taymans@gmail.com" href="mailto:wim.taymans@gmail.com">wim.taymans@gmail.com</a>&gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  On Fri, 2009-06-19 at 16:02 +0000, Albert Costa wrote:<br>&gt;
 &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  Your approach will probably work.<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  Current GIT /and the eventual 0.10.24) has framestepping<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  through the<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  STEP events, which should solve things in a more general way<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  (when you<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  need to keep audio synchronized too).<br>&gt; &gt;&nbsp; <br>&gt; &gt; Does that means that the framestep draft [1]&nbsp; will be finally<br>&gt; &gt; implemented in 0.10.24? Good news, though. <br>&gt; &gt; <br>&gt; &gt; Cheers<br>&gt; &gt; <br>&gt; &gt; [1]<br>&gt; &gt; <a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/draft-framestep.txt"
 target="_blank">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/draft-framestep.txt</a><br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  Wim<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Hi,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; I'm trying to do the following:<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; I have an application that constructs and controls a<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  pipeline. Merely,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; my pipe would be "filesink ! decodebin ! identity<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  sync=true !<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; myfilter ! ffmpegcolorspace ! directdrawsink sync=false".<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; The element myfilter is currently
 just a pass-through<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  element (it does<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; not process anything). My goal is, from the application,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  to play the<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; file only by moving a frame ahead when the user hits a key<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  (in fact<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; later that would be a signal sent by another process). My<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  idea was to<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; block the chain() function inside myfilter each time it is<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  called,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; untill a release notification is sent. What I did so far<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  is :<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; in the chain() :<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; {<br>&gt;
 &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; ...<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp; &nbsp;  g_mutex_lock(myfilter-&gt;lock);<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp;  do<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp;  {<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp; &nbsp;  g_cond_wait(myfilter-&gt;process_next, myfilter-&gt;lock);<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp;  }<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;&nbsp;  g_mutex_unlock(myfilter -&gt;lock);<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; ...<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; }<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; In my application, I have a specific function that gets<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  the sink pad<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; of my filter element, and send a specific event on it.<br>&gt;
 &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; In myfilter's sink_event function, I have a case of event<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  type where I<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; call g_cond_signal(myfilter-&gt;process_next) (which I<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  thought would<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; release the lock in the chain).<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; My problem is that when I launch the pipeline, the<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  cond_wait does lock<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; the chain function; but then in my application specific<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  function,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; calling gst_pad_send_event never returns, and my event is<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  thus not<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; received by my element. Eveything hangs...<br>&gt; &gt;&nbsp; &nbsp;
 &nbsp; &nbsp;  &gt; Is there any way to have it working somehow? (another<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  option was to<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; set the pipe in pause mode and send seek events to go to<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  next frame,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; but i'm using mpeg2 ts files that do not support seek<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  anyway, and I<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; have other constraints for which I need an element that<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  can be<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; controled).<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Any help would be appreciated,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Regards,<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Al<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp; 
 &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt;<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  ------------------------------------------------------------------------------<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Crystal Reports - New Free Runtime and 30 Day Trial<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; Check out the new simplified licensing option that enables<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  unlimited<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; royalty-free distribution of the report engine for<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  externally facing<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; server and web deployment.<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; <a href="http://p.sf.net/sfu/businessobjects"
 target="_blank">http://p.sf.net/sfu/businessobjects</a><br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  &gt; _______________________________________________<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  gstreamer-devel mailing list<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <a ymailto="mailto:gstreamer-devel@lists.sourceforge.net" href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  ------------------------------------------------------------------------------<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  Crystal Reports - New Free Runtime and 30 Day Trial<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  Check out the new
 simplified licensing option that enables<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  unlimited<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  royalty-free distribution of the report engine for<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  externally facing<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  server and web deployment.<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <a href="http://p.sf.net/sfu/businessobjects" target="_blank">http://p.sf.net/sfu/businessobjects</a><br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  _______________________________________________<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  gstreamer-devel mailing list<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <a ymailto="mailto:gstreamer-devel@lists.sourceforge.net" href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;  <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel"
 target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; -- <br>&gt; &gt; Andoni Morales Alastruey<br>&gt; &gt; <br>&gt; &gt; LongoMatch:The Digital Coach<br>&gt; &gt; <a href="http://www.longomatch.ylatuya.es" target="_blank">http://www.longomatch.ylatuya.es</a><br>&gt; &gt; &lt;ATT00001.txt&gt;&lt;ATT00002.txt&gt;<br>&gt; <br>&gt; <br>&gt; ------------------------------------------------------------------------------<br>&gt; Are you an open source citizen? Join us for the Open Source Bridge conference!<br>&gt; Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.<br>&gt; Need another reason to go? 24-hour hacker lounge. Register today!<br>&gt; <a href="http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org" target="_blank">http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org</a><br>&gt;
 _______________________________________________ gstreamer-devel mailing list <a ymailto="mailto:gstreamer-devel@lists.sourceforge.net" href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a> <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br><br><br>------------------------------------------------------------------------------<br>Are you an open source citizen? Join us for the Open Source Bridge conference!<br>Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.<br>Need another reason to go? 24-hour hacker lounge. Register today!<br><a href="http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org" target="_blank">http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org</a><br>_______________________________________________<br>gstreamer-devel
 mailing list<br><a ymailto="mailto:gstreamer-devel@lists.sourceforge.net" href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br><a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br></div></div><div style="position:fixed"></div></div><br>



      </body></html>