From patchwork Thu Oct 6 07:35:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 38578 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4d9:b0:9c:f4b:4e41 with SMTP id 25csp68040pzd; Thu, 6 Oct 2022 00:38:34 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4X7FDX72enc+Zo1yug6XB1ks2GNmujukbsR/Sm9MOTpO5tEzBS1Y8jVJewBEUd4YQq36Rs X-Received: by 2002:a50:ed86:0:b0:458:e1da:af2 with SMTP id h6-20020a50ed86000000b00458e1da0af2mr3274935edr.364.1665041913852; Thu, 06 Oct 2022 00:38:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665041913; cv=none; d=google.com; s=arc-20160816; b=CDrs63m+Y6G8L5SH6KmDjPUDSMBkzdS1Ml2MzO834F1gGx8FA5EjqzkLw7Poucyjgo m3NMR4mf1uT6wGL0yWAlGp47jwhGP47wDTyyq/3JjAtsHT1qdSvAfL4yDrWeMHpC3iO4 NEb7py5JT42fJQXGLHzAVFH+fiV5ACBbpH6QnIbM31+N8Fc1+f6ILVms7+ovCynqb8FQ 6d/TlCC1xUvxTESyrdbaYkTQpFQkiqs9br3uiYd/A6/jlbjyglzNw3jjbRPgBrEeG8AL s3uCCKZaxY7zEhSk4znZR9bQ1NaUJJ0KWW3woQu6GCoHlMBPYZJ4osqQqjq2lw9/nkGA Vk8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=Z7UvK/2HVkRs0wPoqqfwF88/ZcExnWVEQvTsLqIkOs4=; b=MePhQ70NoAku6nuNOrSifHaWQASwjxX07/hedSEkPmdFu7kvS3M4odkoKUOb/ynDdb BETtmBXMDJSYBFTYEe6XejPJ6hEJbkpGOhFtxqXA/bz0Qhff2b0MFig8HDd+d/c514v0 2JzaExmKA32zeX6KFgyWUbaicq+Tk/bqZ+8OWLkZPR+/dXkJ4ePgWCls31ZqeCEXj+0o A4O0ouuJ9K78YXOpu/HuC3BoFGk+7z5N37phh7uwroMdGdDe2F9c+p3OixMu85cOsd70 muFh7gpHEYUbMlF8sHdE1f6cWDR5DA8FF+/GYpfvzw00zWayFzrMD6VQFvNiMpKafWqp cQCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=TmszPwPh; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r12-20020a05640251cc00b00459ee0ee1a3si740821edd.362.2022.10.06.00.38.33; Thu, 06 Oct 2022 00:38:33 -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=@intel.com header.s=Intel header.b=TmszPwPh; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1AE6A68BC02; Thu, 6 Oct 2022 10:38:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4A76D68BBA8 for ; Thu, 6 Oct 2022 10:38:06 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665041891; x=1696577891; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=BYfm1ostf8sNZutm0iRVc+NbqiyOvo0XblQ+SB98SBI=; b=TmszPwPhJzGLIGzyge77OpRrDvsFBkZVYaWpJLnWxMubyQyLYFnwg9N9 p1x16RaKemGdDBw8EX44ZNL0RPFqUyTvAfJCICFsIrWo4ndeW5BVHfluF +nlWcFlE/Zsn2JQT9Sh96KLbpx5mPIuyyHMvqzn6sTzehMmBLnnYYzNO5 cCI0X3Z5jI9Vd7sgvF92bGulJqZWrDSQZMVeNNxrXGFIASOWkAmXRcc55 i616LCfTvfpw+SuACn/ahQqLBmJb002WFcwH8Y93FOHGqM1VOmFjB1ATt 4L2FUwMncFAv5SKyv3rzPh4eeTDtTBpuuLp4vAjjfWh14rotYy3/JlIBB g==; X-IronPort-AV: E=McAfee;i="6500,9779,10491"; a="300974391" X-IronPort-AV: E=Sophos;i="5.95,163,1661842800"; d="scan'208";a="300974391" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2022 00:38:02 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10491"; a="687318991" X-IronPort-AV: E=Sophos;i="5.95,163,1661842800"; d="scan'208";a="687318991" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2022 00:38:01 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Thu, 6 Oct 2022 15:35:35 +0800 Message-Id: <20221006073538.27710-3-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221006073538.27710-1-haihao.xiang@intel.com> References: <20221006073538.27710-1-haihao.xiang@intel.com> Subject: [FFmpeg-devel] [PATCH 3/6] lavu/hwcontext_qsv: add support for 10bit 4:4:4 content on Linux 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: Haihao Xiang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: wh/PQdkp/Loj From: Haihao Xiang XV30 is used for 10bit 4:4:4 content in FFmpeg VAAPI, so XV30 should be used for 10bit 4:4:4 content in FFmpeg QSV too because QSV is based on VAAPI on Linux. However the SDK only declares support for Y410 but does nothing with the alpha in Y410, so this commit fudged a mapping between AV_PIX_FMT_XV30 and MFX_FOURCC_Y410. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index 2272df52f2..93ecd2f1a3 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -124,6 +124,10 @@ static const struct { // the SDK only delares support for AYUV { AV_PIX_FMT_VUYX, MFX_FOURCC_AYUV, 0 }, + // XV30 is used for VAAPI child device, + // the SDK only delares support for Y410 + { AV_PIX_FMT_XV30, + MFX_FOURCC_Y410, 0 }, #endif }; @@ -1525,6 +1529,9 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface) // use the value from the frame. surface->Data.A = frame->data[0] + 3; break; + case AV_PIX_FMT_XV30: + surface->Data.U = frame->data[0]; + break; #endif default: return MFX_ERR_UNSUPPORTED;