[FFmpeg-devel] [PATCH 08/12] avfilter/vf_premultiply: tag correct alpha mode on result
Niklas Haas
ffmpeg at haasn.xyz
Wed Feb 19 22:45:44 EET 2025
From: Niklas Haas <git at haasn.dev>
---
libavfilter/vf_premultiply.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index 322fc39094..1c08cf524a 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -512,6 +512,7 @@ static int filter_frame(AVFilterContext *ctx,
{
PreMultiplyContext *s = ctx->priv;
AVFilterLink *outlink = ctx->outputs[0];
+ const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(outlink->format);
if (ctx->is_disabled) {
*out = av_frame_clone(base);
@@ -529,6 +530,13 @@ static int filter_frame(AVFilterContext *ctx,
full = base->color_range == AVCOL_RANGE_JPEG;
limited = base->color_range == AVCOL_RANGE_MPEG;
+ if (desc->flags & AV_PIX_FMT_FLAG_ALPHA) {
+ (*out)->alpha_mode = s->inverse ? AVALPHA_MODE_STRAIGHT
+ : AVALPHA_MODE_PREMULTIPLIED;
+ } else {
+ (*out)->alpha_mode = AVALPHA_MODE_UNSPECIFIED;
+ }
+
if (s->inverse) {
switch (outlink->format) {
case AV_PIX_FMT_YUV444P:
--
2.47.0
More information about the ffmpeg-devel
mailing list