[gst-devel] Problem with capsfilter
Andrea della Porta
andrea at iptronix.com
Fri Jan 5 10:19:10 CET 2007
Hi all,
I've modified as a test ffmpegcolorspace plugin in order to add a new
capability that has zorder parameter (I need to do some overlaying of
different sources) as you can see by the following 'gst-inspect
ffmpegcolorspace':
......
video/x-raw-rgb-zorder
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
bpp: 16
depth: 16
red_mask: 63488
green_mask: 2016
blue_mask: 31
zorder: [ 0, 1024 ]
endianness: 1234
......
This apply both for SINK and SRC of ffmpegcolorspace. Then I add the
same capability to sdlvideosink as 'gst-inspect sdlvideosink' shows up
(note that my version of sdvidesink has no yuv cap since I've to write
directly on rgb surface):
......
GObject
+----GstObject
+----GstElement
+----GstBaseSink
+----GstVideoSink
+----GstSDLVideoSink
Implemented Interfaces:
GstNavigation
GstXOverlay
GstImplementsInterface
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
video/x-raw-rgb
bpp: 16
depth: 16
endianness: 1234
red_mask: 63488
green_mask: 2016
blue_mask: 31
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 100/1 ]
video/x-raw-rgb-zorder
bpp: 16
depth: 16
endianness: 1234
red_mask: 63488
green_mask: 2016
blue_mask: 31
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
zorder: [ 0, 1024 ]
framerate: [ 0/1, 100/1 ]
......
If I try to create the pipeline like this:
GST_REGISTRY_FORK=no ./gst-launch videotestsrc pattern=1 !
ffmpegcolorspace zorder=56 ! video/x-raw-rgb-zorder,
framerate=\(fraction\)30/1, width=100,height=100 ! sdlvideosink
I get:
"WARNING: erroneous pipeline: could not link ffmpegcsp0 to
sdlvideosink0"
I've look deeper into the code and realize that ffmpegcsp0:src has not
'zorder' capability anymore, whilst ffmpegcsp0:sink does. Of course,
subsequent caps_intersect with capsfilter0 and sdlvidesink0 will result
in an EMPTY set since 'zorder' capability is not on the way. The strange
thing is if I try:
GST_REGISTRY_FORK=no ./gst-launch ffmpegcolorspace zorder=56 !
video/x-raw-rgb-zorder, framerate=\(fraction\)30/1, width=100,height=100
! sdlvideosink
'zorder' caps reappear on ffmpegcsp0:src and the pipeline gets created
(though not PLAYING since there's no real source to push buffers)
Any clue on this? If it can help, I can attach the caps list for both
cases (not in this mail since it's quite long!).
Many thanks in advance,
Andrea della Porta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070105/bafa91ea/attachment.htm>
More information about the gstreamer-devel
mailing list