Skip to content

compositor: Skip background when a pad obscures it completely

commit 2ebb133c:

compositor: Remove unused function argument

commit 7425766e:

compositor: Add some comments, remove outdated ones

commit e668e621:

compositor: Factor-out rectangle-obscuring check
We're going to use this for checking if one of the pads obscures the
background.

commit daf53032:

compositor: Don't log per-frame under GST_INFO

commit 77630efe:

compositor: Skip the background when not visible
We don't need to waste time drawing the background when one of the
pads completely covers the output and there's no alpha on the pad or
in the video format. Speedups:

I420 1080p ! compositor ! fakesink - 72% faster
I420 1080p ! compositor background=black ! fakesink - 45% faster

commit 550474a5:

compositor: Skip background if transparent and obscured
If the background is transparent and obscured by a pad that may or may
not have alpha, we can still skip drawing it entirely

AYUV 1080p ! compositor background=transparent ! fakesink - 75% faster

Note: we should also skip the background drawing when a combination of pads completely obscures the background, but that's significantly harder to do and can be done incrementally on top of this optimization. The next step after that is to also only draw the background in the pixels that are not obscured.

Edited by Tim-Philipp Müller

Merge request reports