[FFmpeg-devel] [PATCH] fftools/ffplay: use swapchain_colorspace_hint to get better HDR support
Zhao Zhili
quinkblack at foxmail.com
Mon Oct 21 16:25:52 EEST 2024
> On Sep 25, 2024, at 22:45, Zhao Zhili <quinkblack at foxmail.com> wrote:
>
> From: Zhao Zhili <zhilizhao at tencent.com>
>
> For example, the default surface configuration on macOS is:
> VK_FORMAT_A2B10G10R10_UNORM_PACK32 + VK_COLOR_SPACE_PASS_THROUGH_EXT
>
> With HDR10 content and swapchain_colorspace_hint, the surface
> configuration updated to:
> VK_FORMAT_A2B10G10R10_UNORM_PACK32 + VK_COLOR_SPACE_HDR10_ST2084_EXT
> ---
> fftools/ffplay_renderer.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/fftools/ffplay_renderer.c b/fftools/ffplay_renderer.c
> index f272cb46f1..618149e7b2 100644
> --- a/fftools/ffplay_renderer.c
> +++ b/fftools/ffplay_renderer.c
> @@ -697,6 +697,7 @@ static int display(VkRenderer *renderer, AVFrame *frame)
> struct pl_frame target = {0};
> RendererContext *ctx = (RendererContext *) renderer;
> int ret = 0;
> + struct pl_color_space hint = {0};
>
> ret = convert_frame(renderer, frame);
> if (ret < 0)
> @@ -709,6 +710,8 @@ static int display(VkRenderer *renderer, AVFrame *frame)
> return AVERROR_EXTERNAL;
> }
>
> + pl_color_space_from_avframe(&hint, frame);
> + pl_swapchain_colorspace_hint(ctx->swapchain, &hint);
> if (!pl_swapchain_start_frame(ctx->swapchain, &swap_frame)) {
> av_log(NULL, AV_LOG_ERROR, "start frame failed\n");
> ret = AVERROR_EXTERNAL;
> --
> 2.46.0
Will apply this week.
More information about the ffmpeg-devel
mailing list