GNOME Bugzilla – Bug 701109
videomixer: z-ordering breaks if pads are added without setting zorder on it
Last modified: 2013-05-28 03:23:15 UTC
The z-ordering is not correct if pad are added after having configured the z-ordering. To reproduce: 1) Request pad1 and set zorder to 2 2) Request pad2 (don't change z-order) One can use this pipeline: gst-launch-1.0 videotestsrc ! mix. videotestsrc ! mix. videomixer name=mix sink_1::xpos=100 sink_0::ypos=100 sink_0::zorder=2 ! video/x-raw,width=420,height=340 ! videoconvert ! xvimagesink As default z-order is the pad number, it is expected that botton left (sink_0) is on top, as it has zorder=2 and sink_1 has zorder=1.
Ok, that one was easy to fix: commit cd30a81ee3f2b4626dc019a1026eace776c4cd1e Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> Date: Mon May 27 22:43:25 2013 -0400 videomixer: Maintain z-order when new pad are added https://bugzilla.gnome.org/show_bug.cgi?id=701109 This makes me notice that the sinkpads list is not thread safe, which mean changing zorder, creating new pad, or removing pads at runtime may lead to crash if done while streaming thread is iterating the list. Will file another bug.