Changing videosize with a videoscale and capsfilter element

Nicolai Hess nicolaihess at web.de
Wed Apr 11 04:00:22 PDT 2012


Hi,

I try to rescale a video in a playing pipeline with changing the capsfilter
caps property. But the
buffers still have the old width/height.
The pipeline
filesource -> decodebin2 -> videoscale -> capsfilter -> fakesink

The caps property on the capsfilter element is initially set to
"*video*/*x*-*raw*-*yuv*, width=300, height=300, bpp=24, depth=24"
I am listening on the handoff signal from the fakesink and get the
right sized buffer (width=300/height=300).

Now, if I change the caps property to
"*video*/*x*-*raw*-*yuv*, width=350, height=300, bpp=24, depth=24"
Nothing changes, the buffers from the fakesink handoff signal
still have the old width/height.

Isn't this one purpose of the videoscale and capsfilter element, to scale
the video when the capsfilter property changes?
I am using an old gstreamer version 0.28 (in Ubuntu 10.04)

(The behaviour is different in a more recent version 0.10.32(or 5?) on
Ubuntu 11.10,
there the pipeline just stops (demuxer cannot negotiate, I did not
investigate
this further, as I am forced to use the older gstreamer0.10 version))

Is there a more solid way to change videosize dynamically. (I am afraid I
have
to implement my one fakesink, so I can change the videosize by
implementing my own buffer_alloc function.)


nicolai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20120411/7bf29835/attachment.htm>


More information about the gstreamer-devel mailing list