mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-10 06:28:06 +00:00
fftools/ffplay: use swapchain_colorspace_hint to get better HDR support
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 Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
fe21944656
commit
0552238570
@ -697,6 +697,7 @@ static int display(VkRenderer *renderer, AVFrame *frame)
|
|||||||
struct pl_frame target = {0};
|
struct pl_frame target = {0};
|
||||||
RendererContext *ctx = (RendererContext *) renderer;
|
RendererContext *ctx = (RendererContext *) renderer;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
struct pl_color_space hint = {0};
|
||||||
|
|
||||||
ret = convert_frame(renderer, frame);
|
ret = convert_frame(renderer, frame);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -709,6 +710,8 @@ static int display(VkRenderer *renderer, AVFrame *frame)
|
|||||||
return AVERROR_EXTERNAL;
|
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)) {
|
if (!pl_swapchain_start_frame(ctx->swapchain, &swap_frame)) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "start frame failed\n");
|
av_log(NULL, AV_LOG_ERROR, "start frame failed\n");
|
||||||
ret = AVERROR_EXTERNAL;
|
ret = AVERROR_EXTERNAL;
|
||||||
|
Loading…
Reference in New Issue
Block a user