From 3172a6722e945bd31c3a71d510471103680a3459 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Mon, 18 Mar 2024 16:12:44 +0800 Subject: [PATCH] lavfi/tonemap_vaapi: By default use bt709 for output frame By default don't use the color properties from input frame as output frame properties when performing HDR to SDR conversion Signed-off-by: Haihao Xiang --- doc/filters.texi | 4 ++-- libavfilter/vf_tonemap_vaapi.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 665246b038..09c7349313 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -27853,7 +27853,7 @@ Default is nv12. @item primaries, p Set the output color primaries. -Default is same as input. +Default is bt709. @item transfer, t Set the output transfer characteristics. @@ -27863,7 +27863,7 @@ Default is bt709. @item matrix, m Set the output colorspace matrix. -Default is same as input. +Default is bt709. @end table diff --git a/libavfilter/vf_tonemap_vaapi.c b/libavfilter/vf_tonemap_vaapi.c index 0b767202d2..a21f565e3a 100644 --- a/libavfilter/vf_tonemap_vaapi.c +++ b/libavfilter/vf_tonemap_vaapi.c @@ -278,13 +278,16 @@ static int tonemap_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame if (err < 0) goto fail; + /* Use BT709 by default for HDR to SDR output frame */ + output_frame->color_primaries = AVCOL_PRI_BT709; + output_frame->color_trc = AVCOL_TRC_BT709; + output_frame->colorspace = AVCOL_SPC_BT709; + if (ctx->color_primaries != AVCOL_PRI_UNSPECIFIED) output_frame->color_primaries = ctx->color_primaries; if (ctx->color_transfer != AVCOL_TRC_UNSPECIFIED) output_frame->color_trc = ctx->color_transfer; - else - output_frame->color_trc = AVCOL_TRC_BT709; if (ctx->color_matrix != AVCOL_SPC_UNSPECIFIED) output_frame->colorspace = ctx->color_matrix;