[gst-devel] dynamic scaling at videomixer
wolfvr
wolfgang.van_raemdonck at alcatel-lucent.com
Fri Apr 2 17:23:07 CEST 2010
Dear developers,
I am using the videomixer element to show a mosaic of multiple video
channels.
Now I want adapt the mosaic in case new channels appear. I tried to set new
caps at the capsfilter I have in front of each videomixer input pad.
I am using python to create and control the gstreamer pipeline. See code
snippets below.
The pipeline is running fine, but nothing happens when I trigger the code to
shrink the size of the video channels.
What am I doing wrong? Is there a better way to achieve this (= resizing
dynamicaly the video input on a gstreamer video mixer)
Thanks in advance.
Regards,
Wolfgang.
# the caps
VIDEO_I420_CAPS='video/x-raw-yuv, format=(fourcc)I420, width=(int)640,
height=(int)480, framerate=(fraction)24/1, interlaced=(boolean)false,
pixel-aspect-ratio=(fraction)1/1'
VIDEO_I420_SMALL_CAPS='video/x-raw-yuv, format=(fourcc)I420, width=(int)320,
height=(int)240, framerate=(fraction)24/1, interlaced=(boolean)false,
pixel-aspect-ratio=(fraction)1/1'
# the videomixer + first channel as background
self.mixer = gst.element_factory_make('videomixer')
#background channel
bg = self.pipeline.add_element('videotestsrc')
caps = self.pipeline.add_element('capsfilter')
caps.set_property('caps', gst.Caps(VIDEO_I420_CAPS))
c3 = self.pipeline.add_element('ffmpegcolorspace')
pipeline.add_many(mixer, bg, caps,c3)
gst.element_link_many(bg, c3, caps, self.mixer)
...
# adding a channel
# elements per channel
q = gst.element_factory_make('queue')
cs = gst.element_factory_make('ffmpegcolorspace')
caps = gst.element_factory_make('capsfilter')
caps.set_property('caps', gst.Caps(VIDEO_I420_CAPS))
rate = gst.element_factory_make('videorate')
scale = gst.element_factory_make('videoscale')
pipeline.add_many(q, cs, caps, rate, scale)
#video = video source
gst.element_link_many(video, q, cs, scale, rate, caps, self.mixer)
self.controllers.append(caps)
...
# afterwards. changing the size of channel 1
caps = self.controllers[1]
caps.set_property('caps', gst.Caps( VIDEO_I420_SMALL_CAPS ))
--
View this message in context: http://n4.nabble.com/dynamic-scaling-at-videomixer-tp1749273p1749273.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list