From patchwork Wed Sep 25 14:45:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 51850 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9548:0:b0:48e:c0f8:d0de with SMTP id t8csp519958vqk; Wed, 25 Sep 2024 07:46:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUO+0d1xSTw++Km8klURv63Qjm2vjQj4V4+bSmBPQncPS+TrLpwP0+MKUr3JhZGNMcVXvm70oy6bzCXf8WQaJS7@gmail.com X-Google-Smtp-Source: AGHT+IEjFmcA2f1WVvkeAHmDeH4/V3V/s1VxjDKPW0HZD5beeJ66G2n+wxTg6pMcDdkJeUzT47dE X-Received: by 2002:a05:6512:2353:b0:536:a4da:8d86 with SMTP id 2adb3069b0e04-53870499c1cmr1814524e87.15.1727275572078; Wed, 25 Sep 2024 07:46:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727275572; cv=none; d=google.com; s=arc-20240605; b=GnrnlVlmmlXNxbI4pRdes5x3JNJ2XEK4+IoYCcrvaKbF+IkUWKnL6nya7HP0XMwkOE 53XcNsIxb1t4LCU/aYjFBDAzA0X42FRuU7vD5KmN1nOpZP55xeINqBBJOz/CzZxIn7P9 SBgv/UHWi9lOzbgtWdf53lXq4AWM8tdjLHs2A4xaYiLA0GfjGyF+oFebgfcTO+gl1Ym3 kHDXVrJMgMzLCfCcXoE3UW5WOWY3wu2fVLxbRF4HQt4EvdXXJ+AnIlgBaRQuMRSyQv/k jOU9em9Ppe20h8AzzUSJg24l+VQPw9TeZ7/TfIo6YaYf/vfAlNZEI2JLrG6qGekKAuE7 +Guw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=4BfBZ5V5UQ/MKRWYWB9wXghkUDGlhX46TWyyO2IOmSQ=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=gWBYvHvKezpPzgdh4oR0i7q//ULq5s3rtxWjvD5xyCdnNDy6mAK+JJQ227PGseKsoj bCxsmeOjtXQrjCygreaY51yP13Y+3Q2yNixq+/W9+HbHfMuSeUrwC8ewg70ma8HLuMXz 4rtw8SbA0E1pYdOZs6tf+7kHuU33vkdXWOnHQq/Fztq9qoTCiyDuwh0azUbgodM1h1wM zFIW+kVVsk6D8I2SKOLagJJGp+njEXSN4gBOeE3vwVBMfDRAtC3yFcilsAr47AUBXbsg fmYs3GavxiOtYSfhxJwOcXoCGjlnIMQMU1Z2cYYk1X5dXURHRomhbG9/+QWHshmCzNCt ShgQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Z7VuL0br; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a93931336a9si244427566b.766.2024.09.25.07.46.11; Wed, 25 Sep 2024 07:46:12 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Z7VuL0br; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4430068DA91; Wed, 25 Sep 2024 17:46:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-205.mail.qq.com (out203-205-221-205.mail.qq.com [203.205.221.205]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7541B68D90B for ; Wed, 25 Sep 2024 17:45:58 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1727275548; bh=FeFjej/O6HuCATgopon5FX8hp7RvwQ1E6YCJSlyTw74=; h=From:To:Cc:Subject:Date; b=Z7VuL0brLHRZVYCo888YjjzrPIazhjMPrHVdgDs/wMZURHNcec1lD04DEEbqFBuu8 2yAnh33qLhKaRQcdSmvdNDAoWDNvJUzRxsYpKKyR6PspLvpLmvkD7y4QACH/nFkk7S my5B+HWfji1tFQuzTHozxDQTQUGt08AwaeqAX7d8= Received: from ZHILIZHAO-MB1.tencent.com ([125.79.226.127]) by newxmesmtplogicsvrszc19-0.qq.com (NewEsmtp) with SMTP id B6C144DB; Wed, 25 Sep 2024 22:45:44 +0800 X-QQ-mid: xmsmtpt1727275544twxishsiy Message-ID: X-QQ-XMAILINFO: NVDTp/JAxTvNeV6iszfdSQOfJGmuUg7o+7P4pZ2808AK0zmfYyEfxfhE2eO0qM dxFTkj0m4Qwr8BK9Lo3S1dHZxzOk+M4uzsVgs5QXJkvvtDj/uFzr0734nnIByKvFVGA1DpcexnOP GDevVTZ9pARqeLeSiAv/xQ1HBOmrpaGJZtAJ2DLRhgYISnsUGsFzk8ExhlR298COofGBtL14jc1o GEcqUOu4oYYHP6RIdodxZGZAR7l9nkyT+h7elHzP0Pg3662RVsYqujp9KpDi6IEjWIxyAmgKnO78 259lb09NdkA8y+KE5nRvgwYGPjqPG7YYdUXbkUnKlAjqLN69EuT7HLBNElqRKHssCaD0AFuV7Jyf 9r3SsNIM8knP4pQGPS6L28soxbEVUGYZQQL2VLvRct0eHzzpudnJ/ylKzj0BAbu6sHAdJ1yFSp/X pdp2KLBmH5c+GE0OZV6cwG0hlMP+6inWZ5a3cqsgtOENG/CVAFoYLhsVkSeMCt9SKX0Hg4IlAq5j i7SINg9f6iKbsCxX87lT7Hr/9AfJHSqf8C3Gd//Nf/hil6AMFXtNt4b2DZmGJgrRgHf7GJMBEI0p 6mLzclWu07sC9HtNYk3R24BukGrAs5r+Wh/FforJv3FOIYZMftrJyDeJhvZLM+02xK6yC9iPyS3L BLHZBC/dn+dxd4nlA0ct4Z9OszxXGY9SSfGSAAxMZQunXQW1dZO7pDrEupGn9lOuOUEqJ5uzNeZd m9dgNblZUBUdAfy5+Pl81H751TB7PdIkMriS0iAHbpAgS1p8qyoUIecyFnjlKMNP8rNqfwjDUXp8 KBoUWpnMC2TzAoJhRHl0UsifeliwN2RR7nGK39qtQsx1QsA2FGb8RP5gXnVlHUGkzLf0CrJWkbeH bpczYBrPRmcbRVFHH22h3V8XwtEn0bizYICkPm2jalKVSai6UBngwuKf6wf8TTH4gOvUarlcDJmI a8zu4Q5EJs7LFieOWIWEJLKYKhyyFQ X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 25 Sep 2024 22:45:42 +0800 X-OQ-MSGID: <20240925144542.6064-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] fftools/ffplay: use swapchain_colorspace_hint to get better HDR support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: XTLo1/3Xjolk From: Zhao Zhili 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;