From patchwork Fri Oct 8 07:50:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 30989 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp609477ioa; Fri, 8 Oct 2021 00:51:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz+qQLTNZ/7xB9IRwnp4WP9+7Mdk5/wnjuJ6Asn+hHIeU8zc6eyQEvahnbw6mrj1HE/c5N7 X-Received: by 2002:a50:d90b:: with SMTP id t11mr12834047edj.215.1633679505696; Fri, 08 Oct 2021 00:51:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633679505; cv=none; d=google.com; s=arc-20160816; b=Uc9u94dLwfHCbge3C/IsLRZpDpfV4B2BZNZahH0WKQdBsFBH3fItQOQFwtAcfVJjnM bRygcHrTPJd17uXRLgUoxh5+Bh2r/s8bCGR/01u3VzV9ssUMlta09Nd8dIt/hPoRCkS9 KUT8Jk8Kuot290JlXydMzNiD+NhoeM6hYhw7MNhhJnUHCZwezqYaHk3oq+YqpnKOPrnt goO+66obxTTspVOS8Yy78+qzpvYgy9HwzFFOR9EpvuWrPELufhNyKA+adKU9V5yMpnH1 ZYVPdLD+Vt2KC6qYI6aD3eMwW92DkxXKxB3ZcDflen/Or6k3q8uB0vWKnBW0UG3jBKzT 6htw== 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:delivered-to; bh=/gfW2PAJX5h+77oNzGsdzAGo0EpBHSC1lgRGCB7sT4c=; b=oGQgsLd8fYU4FEXFF7rWirmWCL7C5FgaVUWpOHQnY90OSd4P05yhomIFluSY7Pfjlq zi9khr6EMwDNF8El7zGgc6RQoA3QpVevOGhEXyqT8lJIbTOHpZ/nEYCJg2UOJkC1bGNt Xo7r50SjAJiNQ92oKZYmRmewE6lLS/NeqWg/i9989Dw5WOgg8N4JTrbsJIrqwkFSVU5D 34PqhpgsPb2PS5aDdT++QSdda+NtrBPmEM20CqgblWsXvrNesIZ4uj9SQ88BIvejMSAQ US0wUgKXTCrOHWPAq+ycVMLZT5gkBuYKOxU5yvRYNHAUbXgqYqWmasPcj2262xUICqES eTkQ== ARC-Authentication-Results: i=1; mx.google.com; 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=intel.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m14si2351334eds.160.2021.10.08.00.51.22; Fri, 08 Oct 2021 00:51: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; 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=intel.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2A19F68A459; Fri, 8 Oct 2021 10:51:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35F82689259 for ; Fri, 8 Oct 2021 10:51:10 +0300 (EEST) X-IronPort-AV: E=McAfee;i="6200,9189,10130"; a="249816260" X-IronPort-AV: E=Sophos;i="5.85,357,1624345200"; d="scan'208";a="249816260" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2021 00:51:06 -0700 X-IronPort-AV: E=Sophos;i="5.85,357,1624345200"; d="scan'208";a="478885027" Received: from xhh-dg164.sh.intel.com ([10.239.159.167]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2021 00:51:05 -0700 From: Haihao Xiang To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 Oct 2021 15:50:46 +0800 Message-Id: <20211008075056.27151-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH v5 00/10] 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: 2/gHJ1oO6/S1 The oneAPI Video Processing Library (oneVPL) is a single interface for encode, decode and video processing[1]. 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[2]. It is recommended to use oneVPL for new work, even for currently available hardwares[3]. 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. --enble-libmfx option still works with Intel(R) Media SDK. Note user can't enable onevpl and libmfx together. oneVPL dispatcher source code: https://github.com/oneapi-src/oneVPL oneVPL GPU runtime for new Intel Gen platforms: https://github.com/oneapi-src/oneVPL-intel-gpu v5: - Rebased this patchset against the latest master - Do not define mfx related API in an export header [1] https://spec.oneapi.io/versions/latest/elements/oneVPL/source/index.html [2] https://github.com/Intel-Media-SDK/MediaSDK/#media-sdk-support-matrix [3] https://software.intel.com/content/www/us/en/develop/articles/upgrading-from-msdk-to-onevpl.html Haihao Xiang (10): configure: ensure --enable-libmfx uses libmfx 1.x configure: fix the check for MFX_CODEC_VP9 qsv: remove mfx/ prefix from mfx headers qsv: load user plugin for MFX_VERSION < 2.0 qsv: build audio related code when MFX_VERSION < 2.0 qsvenc: support multi-frame encode when MFX_VERSION < 2.0 qsvenc: support MFX_RATECONTROL_LA_EXT when MFX_VERSION < 2.0 qsv: support OPAQUE memory when MFX_VERSION < 2.0 qsv: use a new method to create mfx session when using oneVPL configure: add --enable-libvpl option configure | 28 ++- libavcodec/qsv.c | 220 ++++++++++++++++-- libavcodec/qsv.h | 4 +- libavcodec/qsv_internal.h | 6 +- libavcodec/qsvdec.c | 21 +- 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 | 145 +++++++++++- libavfilter/qsvvpp.h | 12 +- libavfilter/vf_deinterlace_qsv.c | 73 +++--- libavfilter/vf_scale_qsv.c | 88 +++---- libavutil/hwcontext_opencl.c | 2 +- libavutil/hwcontext_qsv.c | 383 ++++++++++++++++++++++++++----- libavutil/hwcontext_qsv.h | 3 +- 19 files changed, 846 insertions(+), 188 deletions(-)