Accessing video RGB data

Mike Mitchell mike.mitchell at panometric.net
Fri Oct 7 12:37:30 PDT 2011


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.

So I would suggest you have a simple serial pipeline with no T.

In appsink it describes to ways to pace with  "emit-signals" to get blocking
and nonblocking variants.
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html



*Mike Mitchell*



On Fri, Oct 7, 2011 at 11:44 AM, Sami Pietilä <sami.pietila at gmail.com>wrote:

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


More information about the gstreamer-devel mailing list