[gst-devel] Image conversion through a pipeline

Olivier Aubert olivier.aubert at liris.cnrs.fr
Thu Apr 30 16:10:15 CEST 2009


Hello.

Two years ago, I posted some code
( http://article.gmane.org/gmane.comp.video.gstreamer.devel/17603 ) that
allowed me to convert a frame (from the playbin 'frame' property) into
PNG, through a fakesrc/fakesink-based pipeline. A condition variable is
used to "transform" the asynchronous gstreamer behaviour into a
synchronous "snapshot" call.

It has worked perfectly for 2 years, and stopped working in recent
gstreamer releases (at least 0.10.22). It appears that the "handoff"
signal from fakesink is generated only on its first occurrence (i.e. the
first time a snapshot is taken), but never after.
I have tried to use True or False as return values for the handoff
signal handler, to no avail.

I know that the preferred way is now to use appsrc/appsink, but the
fakesrc/sink version is still more generic for the moment (i.e. the
Debian packages have only recently began to ship appsrc/appsink), so I
would like to understand what changed in gstreamer to break my code.

Does anyone have a clue ?

Subsidiary question: how come I cannot do a "get_state" on the
conversion pipeline ? ( fakesrc name=src ! queue name=queue !
videoscale ! ffmpegcolorspace ! video/x-raw-rgb,width=160 ! pngenc !
fakesink name=sink signal-handoffs=true ). 

Thanks for any hint.

Olivier






More information about the gstreamer-devel mailing list