GNOME Bugzilla – Bug 741115
videomixer segfault when output height is smaller than input height and ypos is negative
Last modified: 2015-01-19 12:40:58 UTC
The following crashes on all tested gsteamer versions, including 1.4.4; to reproduce: gst-launch-1.0 videotestsrc ! "video/x-raw, width=(int)1280, height=(int)730, format=(string)I420, pixel-aspect-ratio=(fraction)1/1" ! videomixer sink_0::ypos=-25 ! "video/x-raw, width=(int)1280, height=(int)720" ! fakesink -v Sample output: fthiery@nanotop:~$ gst-launch-1.0 videotestsrc ! "video/x-raw, width=(int)1280, height=(int)730, format=(string)I420, pixel-aspect-ratio=(fraction)1/1" ! videomixer sink_0::ypos=-25 ! "video/x-raw, width=(int)1280, height=(int)720" ! fakesink -v Setting pipeline to PAUSED ... Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)730, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)730, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstVideoMixer2:videomixer2-0.GstVideoMixer2Pad:sink_0: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)730, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)730, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstVideoMixer2:videomixer2-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)30/1 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Caught SIGSEGV Spinning. Please run 'gdb gst-launch-1.0 24273' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
Conditions are unclear for now (a small negative value works...)
Same issue with compositor: (gdb) t a a bt
+ Trace 234394
Thread 3 (Thread 0x7f7feffff700 (LWP 8545))
Confirmed also with GIT master, and also with compositor. glvideomixer breaks with lots of assertions.
Fixed, with the same commit also pushed to compositor in -bad. Should blend functions not be in libgstvideo in -base ? commit 84c44fceac88d1caa3f0dc29daa4c4c263f8c2d0 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Mon Jan 19 12:34:25 2015 +0000 videomixer: fix illegal memory access in blend function with negative ypos https://bugzilla.gnome.org/show_bug.cgi?id=741115