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

Xiang, Haihao haihao.xiang at intel.com
Mon Apr 15 04:50:22 EEST 2024


On Ma, 2024-03-18 at 16:12 +0800, Xiang, Haihao wrote:
> From: Haihao Xiang <haihao.xiang at 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 at 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




More information about the ffmpeg-devel mailing list