[FFmpeg-devel] [PATCH v2 10/16] avfilter/vf_scale: strip metadata when changing colorspace

Leo Izen leo.izen at gmail.com
Fri Dec 6 17:17:48 EET 2024



On 12/6/24 9:32 AM, Niklas Haas wrote:
> From: Niklas Haas <git at haasn.dev>
> 
> This is no longer relevant after a change in color space.
> ---
>   libavfilter/vf_scale.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
> index e33617468a..a56d452c6c 100644
> --- a/libavfilter/vf_scale.c
> +++ b/libavfilter/vf_scale.c
> @@ -868,6 +868,18 @@ scale:
>       if (scale->out_transfer != AVCOL_TRC_UNSPECIFIED)
>           out->color_trc = scale->out_transfer;
>   
> +    if (in->color_primaries != out->color_primaries ||
> +        in->color_trc != out->color_trc)
> +    {
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_DYNAMIC_HDR_PLUS);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_DYNAMIC_HDR_VIVID);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_ICC_PROFILE);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_DOVI_METADATA);
> +        av_frame_remove_side_data(out, AV_FRAME_DATA_DOVI_RPU_BUFFER);
> +    }
> +
>       av_reduce(&out->sample_aspect_ratio.num, &out->sample_aspect_ratio.den,
>                 (int64_t)in->sample_aspect_ratio.num * outlink->h * link->w,
>                 (int64_t)in->sample_aspect_ratio.den * outlink->w * link->h,

I think Mastering Display Metadata may still be relevant after a change 
in TRC but not primaries (e.g. after linearization), since it only 
references the gamut of the mastering display.

- Leo Izen (Traneptora)



More information about the ffmpeg-devel mailing list