From patchwork Sun Aug 14 21:33:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philip Langdale X-Patchwork-Id: 37276 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3d0d:b0:8d:a68e:8a0e with SMTP id y13csp964079pzi; Sun, 14 Aug 2022 14:33:45 -0700 (PDT) X-Google-Smtp-Source: AA6agR5etvXnBIujuYqXEH/7gwq3YaPQmFAoJ2LrSWGTZUZFF1pLLD84EE/iou7p8iJ/39ylMQrv X-Received: by 2002:a05:6402:5510:b0:43a:76ff:b044 with SMTP id fi16-20020a056402551000b0043a76ffb044mr12126996edb.197.1660512825768; Sun, 14 Aug 2022 14:33:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660512825; cv=none; d=google.com; s=arc-20160816; b=Xbr45QkaOOPJOAqHNJu6br15v7cse3DP+AUnwZU4E74GouzJVMMOp1rRpOQ8g0SSWa XC4CIneURE0gmh9eQX69qjKMA62MljzKGJlSLhWIVLFUGWnxl4eKhuEvKzJeMfFM+zFl lvCdo0j6vFCJx7Gm7a876bkG3uJLvNH4KsYat3vybdh5PG9st+4+JQ/wNMFoIjwwku8K 6f+iYHPqFzwLgUFpVI+SHnP5L6JXU516R/qdXgqeU37IdksJWJH9+HiAu6UzJcIzik+U zHp3CrfM++Tz1E0wQ6KP0ZoM2Ip5jLIv1GJjDPIrdU7ZCjadumthZGhyP/cUsglXQGrV HqgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=g4IwfEyybJmwfZdQQD7FZOVBjBlKSdCem9sK5PcGolU=; b=bU4uhkAFFMD2UzUaSsqbsgXl8tvpbV+uIJaZ5YerIwvZHZEBw3pKX2WD13V7tCI4Z7 eu73DibooAY4ckj/2bGPSYA2kvtgUA4FAA0YIhg+rV6pHPgZfqIgGCdSZcQCh/voDKR5 KIQ5EiS5Wtfn+ArxzS+w8nqaYy3W7XGE+PwFoUsekgwziofQoUCSZ5EhZMIAhQvKQMp2 UhODZGFa6he0/tbgcY3CpIWX5Qdyuon5I/ZwNWZUcHGigFsKHC/dLph2vbXJKmV+xmce ofppa+S7ixsuU49LaspNxHBRhUsRC01KsLzCHwUVy1FQHx10ynicbWF7cwEtLG0z7vmD sEPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@overt.org header.s=mail header.b="tNw6lc/j"; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=overt.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s27-20020a05640217db00b0043d800168absi5771918edy.346.2022.08.14.14.33.45; Sun, 14 Aug 2022 14:33:45 -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=@overt.org header.s=mail header.b="tNw6lc/j"; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=overt.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BA6AD68B5C5; Mon, 15 Aug 2022 00:33:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.overt.org (mail.overt.org [157.230.92.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 606C368B747 for ; Mon, 15 Aug 2022 00:33:25 +0300 (EEST) Received: from authenticated-user (mail.overt.org [157.230.92.47]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by mail.overt.org (Postfix) with ESMTPSA id B183C3F89F; Sun, 14 Aug 2022 16:33:23 -0500 (CDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=overt.org; s=mail; t=1660512804; bh=+F073gJOArtVS5Zz9K0y4bOlqYbOM3H72Hqvdr23m+I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tNw6lc/ja1z+YLvMY5zEij7P9sA48GqmeurgSnkUW4iU8K/iPaKqeNOY/3Bn4iNFO PFwY1ZcIt0ShVnkmzlS4tPEDO+Ny76opPPudBJp1M7SZv54AW0b8xBgnk7XUomirDO 9BM9AzdoRUXcgNgNYbQpOnpMh2KZLx4FplkpZeJlAdqQ+EmqZdvlCXZlN6YNBkx4D6 yhkLNB2NF2HR89cnuGAYjsLMGzD0xf7zmROvJCINYK5EtP22xn6i1ZRpp3b8cWaVON u7foNhR+KK7If8h5EWUNp67OUqHbPlSufpNJiT+Tjb5pnDvx4YTkXzEQU7Zdfojk14 X2GteLJL5c1JA== From: Philip Langdale To: ffmpeg-devel@ffmpeg.org Date: Sun, 14 Aug 2022 14:33:13 -0700 Message-Id: <20220814213313.37948-4-philipl@overt.org> In-Reply-To: <20220814213313.37948-1-philipl@overt.org> References: <20220814213313.37948-1-philipl@overt.org> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] lavu/hwcontext_[vaapi|vulkan]: support mapping VUYA and Y416 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: Philip Langdale Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BP7GNhaKcLoM These two of the Microsoft formats used by Intel VAAPI are sufficiently conventional that we can add simple mappings for them in the hwcontexts to enable back and forth mapping so that Vulkan filters can be used with vaapi decoding/encoding of these formats. Signed-off-by: Philip Langdale --- libavutil/hwcontext_vaapi.c | 4 ++++ libavutil/hwcontext_vulkan.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index c3e79907fd..d2d327567e 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -1021,6 +1021,10 @@ static const struct { #endif DRM_MAP(ARGB, 1, DRM_FORMAT_BGRA8888), DRM_MAP(XRGB, 1, DRM_FORMAT_BGRX8888), +#ifdef VA_FOURCC_Y416 + DRM_MAP(AYUV, 1, DRM_FORMAT_AYUV), + DRM_MAP(Y416, 1, DRM_FORMAT_Y416), +#endif }; #undef DRM_MAP diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 237caa4bc0..be08238ff3 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -210,6 +210,9 @@ static const struct { { AV_PIX_FMT_YUVA444P12, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, { AV_PIX_FMT_YUVA444P16, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } }, + { AV_PIX_FMT_VUYA, { VK_FORMAT_R8G8B8A8_UNORM } }, + { AV_PIX_FMT_Y416, { VK_FORMAT_R16G16B16A16_UNORM } }, + { AV_PIX_FMT_BGRA, { VK_FORMAT_B8G8R8A8_UNORM } }, { AV_PIX_FMT_RGBA, { VK_FORMAT_R8G8B8A8_UNORM } }, { AV_PIX_FMT_RGB24, { VK_FORMAT_R8G8B8_UNORM } }, @@ -2629,6 +2632,9 @@ static const struct { { DRM_FORMAT_XRGB8888, VK_FORMAT_B8G8R8A8_UNORM }, { DRM_FORMAT_ABGR8888, VK_FORMAT_R8G8B8A8_UNORM }, { DRM_FORMAT_XBGR8888, VK_FORMAT_R8G8B8A8_UNORM }, + + { DRM_FORMAT_AYUV, VK_FORMAT_R8G8B8A8_UNORM }, + { DRM_FORMAT_Y416, VK_FORMAT_R16G16B16A16_UNORM }, }; static inline VkFormat drm_to_vulkan_fmt(uint32_t drm_fourcc)