[gst-devel] How to perform frame-by-frame video playing

Nick Haddad nhaddad at mathworks.com
Fri Jun 19 20:05:10 CEST 2009


Wohoo!

I've been waiting for the framestepping API!  Will this require some  
implementation by all the decoders to be reliable?

Thanks,
-Nick


On Jun 19, 2009, at 12:47 PM, Andoni Morales wrote:

>
>
> 2009/6/19 Wim Taymans <wim.taymans at gmail.com>
> On Fri, 2009-06-19 at 16:02 +0000, Albert Costa wrote:
>
> Your approach will probably work.
>
> Current GIT /and the eventual 0.10.24) has framestepping through the
> STEP events, which should solve things in a more general way (when you
> need to keep audio synchronized too).
>
> Does that means that the framestep draft [1]  will be finally  
> implemented in 0.10.24? Good news, though.
>
> Cheers
>
> [1] http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/draft-framestep.txt
>
>
>
> Wim
>
> > Hi,
> > I'm trying to do the following:
> > I have an application that constructs and controls a pipeline.  
> Merely,
> > my pipe would be "filesink ! decodebin ! identity sync=true !
> > myfilter ! ffmpegcolorspace ! directdrawsink sync=false".
> > The element myfilter is currently just a pass-through element (it  
> does
> > not process anything). My goal is, from the application, to play the
> > file only by moving a frame ahead when the user hits a key (in fact
> > later that would be a signal sent by another process). My idea was  
> to
> > block the chain() function inside myfilter each time it is called,
> > untill a release notification is sent. What I did so far is :
> > in the chain() :
> > {
> > ...
> >     g_mutex_lock(myfilter->lock);
> >   do
> >   {
> >     g_cond_wait(myfilter->process_next, myfilter->lock);
> >   }
> >   g_mutex_unlock(myfilter ->lock);
> > ...
> > }
> >
> >
> > In my application, I have a specific function that gets the sink pad
> > of my filter element, and send a specific event on it.
> > In myfilter's sink_event function, I have a case of event type  
> where I
> > call g_cond_signal(myfilter->process_next) (which I thought would
> > release the lock in the chain).
> > My problem is that when I launch the pipeline, the cond_wait does  
> lock
> > the chain function; but then in my application specific function,
> > calling gst_pad_send_event never returns, and my event is thus not
> > received by my element. Eveything hangs...
> > Is there any way to have it working somehow? (another option was to
> > set the pipe in pause mode and send seek events to go to next frame,
> > but i'm using mpeg2 ts files that do not support seek anyway, and I
> > have other constraints for which I need an element that can be
> > controled).
> > Any help would be appreciated,
> > Regards,
> > Al
> >
> >
> >
> >
> >
> >
> >  
> ------------------------------------------------------------------------------
> > Crystal Reports - New Free Runtime and 30 Day Trial
> > Check out the new simplified licensing option that enables unlimited
> > royalty-free distribution of the report engine for externally facing
> > server and web deployment.
> > http://p.sf.net/sfu/businessobjects
> > _______________________________________________ gstreamer-devel  
> mailing list gstreamer-devel at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
> -- 
> Andoni Morales Alastruey
>
> LongoMatch:The Digital Coach
> http://www.longomatch.ylatuya.es
> <ATT00001.txt><ATT00002.txt>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090619/e444f526/attachment.htm>


More information about the gstreamer-devel mailing list