[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:55:33 UTC 2018


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

--- Comment #21 from Thibault Saunier <tsaunier at gnome.org> ---
(In reply to Sebastian Dröge (slomo) from comment #20)
> (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?).

Everything is relative to the background, no restriction on the sizes no... so
no special casing in that regard.

> 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 is `BACKGROUND OVER ((A ADD B) ADD C)` in the current implementation iirc.

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

I agree on that, adding more blending type will be more complex/not obvious/
because of that feature.

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

I guess we can go that route. Just move current code to another element and
remove from compositor?

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