From patchwork Mon Jul 25 04:11:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 34774 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp1814303pzb; Sun, 24 Jul 2022 21:12:15 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u2jAFzENWLfr0NrON+KB2dNGWdL/988MF7tNs2hJ1Kyzsu+dRTQYe3VX6KeFtID9chUDzQ X-Received: by 2002:a17:906:9c82:b0:6df:c5f0:d456 with SMTP id fj2-20020a1709069c8200b006dfc5f0d456mr8718861ejc.287.1658722335612; Sun, 24 Jul 2022 21:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658722335; cv=none; d=google.com; s=arc-20160816; b=iF/7gzIU+TZPcuElsaX/GBLhyzlwvAEoAC39GhmuOAuUFW0ZlQoKQ2kpsovrNDOEFf eFH/AZqtMXnfkTncgN70cqCEGzuOJK/NMoIvk5iaYSEi8JucFhSAKyjp0bDLO06p0DXK Z28uKSU0+6NF6wnuqQ5t2PBrnq5r5wz/7/eyo0sypwvE8cQJH+Ul0PYxPRvTigHpTjFB 4od8S5W3TZmzonV+0hS/4CKIlMslN7g9B9qvj2Teue76Mao132TmvheGqCn2jB1OkS2P BP0nMhhLjW0XHdWDvMdh+ughgeVCQ0WnZZ1Fl/B6SGbiWo5u7bVVdveUU+V6SqkVikfM nm/A== 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:message-id:date:to:from:dkim-signature :delivered-to; bh=NiBDIk4Q30t8Dj1fo84WGsog/1F1ngtpY9MyfFjr62U=; b=tmYgba9Z6wtjx2KkIEFzVydbQynPy/D6mt+FAIZ6Z1kCHO3Tiud1dwInjNIVW9t0fK u+olk+6DAzG9U3gCB7/54z7W3LrjLj5F4tRgv+OsT6RWBpTvzSGLDlMF65jxzbdiRbPy Qu91ZiLY0rX8Nagt3iAE+r3H/slbn16OXh8BwelzUinHMGqusFHV7SWN/5/dlCHzC1iE C/xEUnERVGF3NdoKC1C1im/aVZRtDOCpRpMSKsT9perAFjr+GcHQRiwnVB8obX7YG8Y2 RdgVg7UAYozZT8+1F+bbzKd97Tj4qWgeGY6AYa0fTBjRR3DmESS7msEAOvksbal1Wq9y O3AQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=l+hFLVXL; 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 z3-20020a05640240c300b0043bb9059bcfsi13445706edb.488.2022.07.24.21.12.14; Sun, 24 Jul 2022 21:12:15 -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=l+hFLVXL; 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 7216668B760; Mon, 25 Jul 2022 07:12:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D77468B2BC for ; Mon, 25 Jul 2022 07:12:03 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658722328; x=1690258328; h=from:to:cc:subject:date:message-id; bh=HPMpB7l3Pv17a7nZ0hERhD3efwllNCcTYlpI0Kr1UGQ=; b=l+hFLVXLLl5T8zk/Ii3NuEi8Qjlo+m32fg8p56cOZ6208NLD01HvXAMf JKDoy2s/37SQsBwwEnvPJwDCuFZgPKdZPwzXFhRU2tAXk392lGE02/AaO dgc/8+dZGRqYa8EY8G00YxXAPKyKLQ8eSYZhZ3Nk5b9AOUczbOxgz6Fjo ldIbjm6Lb3E0Wplf8mLLQ+gA+xalgxHiOxR8kDwGGsPGJA82xiV79br3h dkJz/1YUPuwfCqPjpv41YfaqfBn17gj7Kx9ehl86quW6iVGf4W0YD9Rfq ebuGa6HofquH/s9i2q9AoJ5x0LMNqXi3BylPRP1r4LFr8b71pG9Odk2A5 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10418"; a="274468195" X-IronPort-AV: E=Sophos;i="5.93,191,1654585200"; d="scan'208";a="274468195" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jul 2022 21:12:00 -0700 X-IronPort-AV: E=Sophos;i="5.93,191,1654585200"; d="scan'208";a="596543974" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jul 2022 21:11:59 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Jul 2022 12:11:38 +0800 Message-Id: <20220725041151.7710-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH v12 00/13] make QSV works with the Intel's oneVPL 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: i+UXmEoap61+ From: Haihao Xiang The oneAPI Video Processing Library (oneVPL) is a single interface for encode, decode and video processing[1][2]. oneVPL is a successor to Intel(R) Media SDK, but removed obsolete features. Intel(R) Media SDK lifetime comes to an end now, new features for new Intel Gen platforms will be supported in oneVPL only[3]. It is recommended to use oneVPL for new work, even for currently available hardwares[4]. Hence, this patchset added a new option --enable-onevpl to bring the support for oneVPL in QSV, new features for oneVPL will be implemented in other patchset, for example, we are implementing av1_qsv encoder (https://github.com/intel-media-ci/ffmpeg/pull/515). option --enble-libmfx still works with Intel(R) Media SDK. Note user can't enable onevpl and libmfx together. oneVPL dispatcher: https://github.com/oneapi-src/oneVPL oneVPL GPU runtime for new Intel Gen platforms: https://github.com/oneapi-src/oneVPL-intel-gpu v12: - Update some commit logs - Update qsv_va_update_config() for configuration filter on Linux Haihao Xiang (13): configure: ensure --enable-libmfx uses libmfx 1.x configure: fix the check for MFX_CODEC_VP9 qsv: remove mfx/ prefix from mfx headers qsv: restrict user plugin to MFX_VERSION < 2.0 qsv: restrict audio related code to MFX_VERSION < 2.0 qsvenc: restrict multi-frame encode to MFX_VERSION < 2.0 qsvenc: restrict MFX_RATECONTROL_LA_EXT to MFX_VERSION < 2.0 qsv: restrict OPAQUE memory to MFX_VERSION < 2.0 lavu/hwcontext_qsv: add loader field to AVQSVDeviceContext lavu/hwcontext_qsv: make qsv hwdevice works with oneVPL lavc/qsv: create mfx session using oneVPL for decoding/encoding lavfi/qsv: create mfx session using oneVPL for qsv filters configure: add --enable-libvpl option configure | 32 +- doc/APIchanges | 3 + libavcodec/qsv.c | 249 +++++++++++-- libavcodec/qsv.h | 4 +- libavcodec/qsv_internal.h | 6 +- libavcodec/qsvdec.c | 22 +- libavcodec/qsvenc.c | 25 +- libavcodec/qsvenc.h | 9 +- libavcodec/qsvenc_h264.c | 3 +- libavcodec/qsvenc_hevc.c | 3 +- libavcodec/qsvenc_jpeg.c | 3 +- libavcodec/qsvenc_mpeg2.c | 3 +- libavcodec/qsvenc_vp9.c | 3 +- libavfilter/qsvvpp.c | 141 +++++++- libavfilter/qsvvpp.h | 12 +- libavfilter/vf_deinterlace_qsv.c | 72 ++-- libavfilter/vf_scale_qsv.c | 87 ++--- libavutil/hwcontext_opencl.c | 2 +- libavutil/hwcontext_qsv.c | 590 ++++++++++++++++++++++++++++--- libavutil/hwcontext_qsv.h | 13 +- libavutil/version.h | 2 +- 21 files changed, 1099 insertions(+), 185 deletions(-)