From b4a306418f70cd0f43f1b91a9bb96b1714c0fa25 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 10 Dec 2023 16:20:51 +0100 Subject: [PATCH] Add a premultiply filter to sources with an alpha channel (#2681). --- src/lib/ffmpeg_content.cc | 3 +++ src/lib/filter.cc | 1 + 2 files changed, 4 insertions(+) diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc index ceebb5572..20fe7776b 100644 --- a/src/lib/ffmpeg_content.cc +++ b/src/lib/ffmpeg_content.cc @@ -299,6 +299,9 @@ FFmpegContent::examine (shared_ptr film, shared_ptr job) _filters.push_back(*Filter::from_id("90anticlock")); } } + if (examiner->has_alpha()) { + _filters.push_back(*Filter::from_id("premultiply")); + } } if (!examiner->audio_streams().empty()) { diff --git a/src/lib/filter.cc b/src/lib/filter.cc index 5a94c0b43..9a14795ec 100644 --- a/src/lib/filter.cc +++ b/src/lib/filter.cc @@ -103,6 +103,7 @@ Filter::setup_filters () maybe_add (N_("hqdn3d"), _("High quality 3D denoiser"), _("Noise reduction"), N_("hqdn3d")); maybe_add (N_("telecine"), _("Telecine filter"), _("Misc"), N_("telecine")); maybe_add (N_("ow"), _("Overcomplete wavelet denoiser"), _("Noise reduction"), N_("mp=ow")); + maybe_add (N_("premultiply"), _("Premultiply alpha channel"), _("Misc"), N_("premultiply=inplace=1")); } -- 2.30.2