GNOME Bugzilla – Bug 625452
[videomixer] Pipeline from the docs doesn't work anymore
Last modified: 2010-08-06 17:28:35 UTC
Running the posted sample pipeline: gst-launch-0.10 videotestsrc pattern=1 ! video/x-raw-yuv, framerate=\(fraction\)10/1, width=100, height=100 ! videobox border-alpha=0 alpha=0.5 top=-70 bottom=-70 right=-220 ! videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc ! video/x-raw-yuv, framerate=\(fraction\)5/1, width=320, height=240 ! alpha alpha=0.7 ! mix. The video output looks like it's working except it twitches green. I get similar twitching behavior with a simpler pipeline I made using videomixer and the alpha element, though the twitching is not always green (seems to depend on the mixed video source). (gst-launch-0.10 videotestsrc pattern=0 ! alpha alpha=0.5 ! queue ! videomixer name=mix ! ffmpegcolorspace ! videoscale ! ximagesink videotestsrc pattern=4 ! alpha alpha=0.5 ! queue ! mix.) I have tried the example with Ubuntu desktop effects both on and off as well as sinking to ximagesink as well as xvimagesink, all with similar results. Let me know what other debug information I can provide.
That seems to be fixed in 0.10.24. There were a lot of changes in videomixer and videobox since 0.10.21, not sure which one has fixed it.
I added https://launchpad.net/~gstreamer-developers/+archive/ppa to my synaptic repositories to get the 0.10.24 packages. I was able to get a simple pipeline working without the glitching: gst-launch-0.10 videotestsrc pattern=0 ! alpha alpha=0.5 ! queue ! videomixer name=mix ! ffmpegcolorspace ! videoscale ! ximagesink videotestsrc pattern=4 ! alpha alpha=0.5 ! queue ! mix. However, the pipeline example on the videomixer documentation now doesn't run at all: lsimons@bestever:~/Desktop$ gst-launch-0.10 -v videotestsrc pattern=1 ! video/x-raw-yuv, framerate=\(fraction\)10/1, width=100, height=100 ! videobox border-alpha=0 alpha=0.5 top=-70 bottom=-70 right=-220 ! videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc ! video/x-raw-yuv, framerate=\(fraction\)5/1, width=320, height=240 ! alpha alpha=0.7 ! mix. Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)100, height=(int)100, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)5/1 Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)100, height=(int)100, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)100, height=(int)100, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)5/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)5/1 /GstPipeline:pipeline0/GstVideoBox:videobox0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstVideoBox:videobox0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)100, height=(int)100, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_1: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)10/1 /GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)10/1, pixel-aspect-ratio=(fraction)1/1 ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1: Internal data flow error. Additional debug info: gstbasesrc.c(2550): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_1: caps = NULL /GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstVideoBox:videobox0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstVideoBox:videobox0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1.GstPad:src: caps = NULL Freeing pipeline ...
commit 19c8226c6dcf25d2d27485fc3acc2151b462ca6e Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Fri Aug 6 19:24:06 2010 +0200 videomixer: Fix pipeline in the documentation Make sure that we have the same color format on all streams, i.e. AYUV Fixes bug #625452.
The problem with the pipeline was, that it wasn't restrictive enough about the video format that should be used. During the last release many elements got support for many new video formats, which caused incompatible video formats to be selected here.