diff mbox series

[FFmpeg-devel,1/3] lavfi/tonemap_vaapi: By default use bt709 for output frame

Message ID 20240318081246.3649869-1-haihao.xiang@intel.com
State Accepted
Commit 3172a6722e945bd31c3a71d510471103680a3459
Headers show
Series [FFmpeg-devel,1/3] lavfi/tonemap_vaapi: By default use bt709 for output frame | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Xiang, Haihao March 18, 2024, 8:12 a.m. UTC
From: Haihao Xiang <haihao.xiang@intel.com>

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 <haihao.xiang@intel.com>
---
 doc/filters.texi               | 4 ++--
 libavfilter/vf_tonemap_vaapi.c | 7 +++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

Comments

Xiang, Haihao April 15, 2024, 1:50 a.m. UTC | #1
On Ma, 2024-03-18 at 16:12 +0800, Xiang, Haihao wrote:
> From: Haihao Xiang <haihao.xiang@intel.com>
> 
> 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 <haihao.xiang@intel.com>
> ---
>  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 913365671d..2cb84c1476 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -27839,7 +27839,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.
> @@ -27849,7 +27849,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;

Will apply, 

Thanks
Haihao
diff mbox series

Patch

diff --git a/doc/filters.texi b/doc/filters.texi
index 913365671d..2cb84c1476 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -27839,7 +27839,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.
@@ -27849,7 +27849,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;