[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 12:48:44 UTC 2018


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

--- Comment #20 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
(In reply to Thibault Saunier from comment #18)

> There is 1 if and a special function call to handle that, not sure I would
> call that "so many special cases everywhere" :D

Not just the current code but what Matthew said. It makes extending the current
compositor more complicated.

Also it's a special case in behaviour that always has to be kept in mind: both
pads must be the same size or one of the pads is cropped to the other (I
assume?), the positioning only has effect for one of the pads and is ignored
for the other one (or is the positioning of one pad relative to the top-left
corner of the other pad, and the other pad relative to the background?).

And if you have e.g. 3 pads and crossfading is applied on the second and third,
will the output be "BACKGROUND OVER ((A ADD B) ADD C))" or "(BACKGROUND OVER (A
ADD B)) ADD C"?

It's non-trivial additional cognitive load for figuring out the overall
composition, and the interactions with other configuration on the compositor is
not obvious at all.


That is my main concern with all this really, it seems like an ad-hoc solution
for a current problem which might paint us into a corner later.

> > 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?
> 
> That could work, not 100% convinced it the best option. Why do you think the
> background should be a third input? The background is black.

I was not saying that it should be a third input, just that this would be how
you could get the current behaviour with the painter's algorithm :)

I still think a proper crossfading/transition element for this use-case would
be more useful and also more extendable in the future for other kinds of
transitions without then having to find a way how to implement those inside
compositor without making things more awkward.

-- 
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