[Bug 797169] compositor: Remove crossfade property and implement a more extensible interface like in glvideomixer

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Sep 24 11:29:23 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=797169

--- Comment #17 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Ah so you want something like "background OVER (in1 ADD in2)", and the
difficult part here are the parenthesis? I.e. "(background OVER in1) ADD in2"
would be possible but that has a different result. What you want would need a
second compositor in my proposal.

Cairo defines the DEST_OVER operator for such a thing, which is OVER but the
other way around. So what you want could be implemented as "(in1 ADD in2)
DEST_OVER background" but blending the background last is a bit weird.

I believe glvideomixer also can't do what you want currently, please correct me
Matthew :)

----

So to go one step back, what you want is that if the crossfade of the two pads
is not opaque, then the background should shine through. Not based on the alpha
of the first pad, but based on the combined alpha of both pads. Which kind of
violates the painter's algorithm as implemented by compositor and which is why
the crossfading code requires so many special cases everywhere.

Maybe a cleaner approach would then be a crossfade/transition element, and then
the output can be composited over a background? Or your background would be a
third input of the compositor and applied with DEST_OVER? What is your
background btw, just black or fully transparent?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list