From patchwork Sat Sep 18 02:29:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 30325 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2752286iov; Fri, 17 Sep 2021 19:30:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5XS9FXzVgFBGzMDD6Tk/tYfTbdAcAa0XrPG/Z6trHntaOjSJYt3epHGFdkay/EC4D59to X-Received: by 2002:a17:906:f43:: with SMTP id h3mr15312494ejj.267.1631932237949; Fri, 17 Sep 2021 19:30:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631932237; cv=none; d=google.com; s=arc-20160816; b=0P4mVJsjDPd8G+lyGIQHblknAQKgfdMbREolSzhUucnXG44aqGyXBWwusoZtkEwj15 OWGbS7oJ1TchqNIoIWQZLOTo3eV1EAM3+g6JrUr7nAB6ZmQRucqjFQnItSCxTLfNCUfc uSOYzX7GXqWW6lYfLanw00YNL86maJljfpsjIf5eMEve0oJx2tXfGyp8ucla/zJmf51u LyMzR8hRl9ogUTNeP9PAl4JeArWLF6xEoTVBNeC8+rEZbYBoqgJRptxhStM/ZMmlU78E T1CjqLX3bPrFHLsG2/O0WwtQ3WkT7tVPc4Zcz+M+5OEqFWoVPrKujCP39rD2FPEAGfxU nJOQ== 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=h70PINHo87qGtrkfvy6AJedwN8wOLQYkdNE6vDO6HEw=; b=L9wbvg4YAoq2xcFB1Ja5dcG6IjlYJZdnHHe2v9JU/B2t/05vlm5Iwvn1xPiR6FcCgl DhVTrKFRg3PGwSfuI5SLIUwKOG5Ibj+oUXRR1S6ZnnmPYKJ+Zna0v+eDYO4ZHFPKcl7x AGNm9a2iW7OqNSns5yuF/ylzJvFzMaZqsrztDj66FsAgRKEq+Usk20OOHNuj0IatL2m6 Vf62mwBPWhQPdh7lTBZfXd/NeMkLfRXw3pFnUelztosJk22TJnMVYaW1q2JhPFiPhpY4 MmucUy5LzygP6FkQG0JDEg8Bvw8zir1V29xTi0W/YGBrFtKYhZtdfOpfh4r2dYooSfQC r21w== 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 a1si8912703ejx.553.2021.09.17.19.30.37; Fri, 17 Sep 2021 19:30:37 -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 3480368AAD8; Sat, 18 Sep 2021 05:30:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 86BDC68AEB3 for ; Sat, 18 Sep 2021 05:30:25 +0300 (EEST) X-IronPort-AV: E=McAfee;i="6200,9189,10110"; a="222563133" X-IronPort-AV: E=Sophos;i="5.85,303,1624345200"; d="scan'208";a="222563133" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Sep 2021 19:30:23 -0700 X-IronPort-AV: E=Sophos;i="5.85,303,1624345200"; d="scan'208";a="473303678" 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; 17 Sep 2021 19:30:22 -0700 From: Haihao Xiang To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Sep 2021 10:29:55 +0800 Message-Id: <20210918023005.30128-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH v3 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: /rojGiQv3e26 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]. 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 v3: - Rebased this patchset against the latest master - Added support for d3d11va [1] https://spec.oneapi.io/versions/latest/elements/oneVPL/source/index.html [2] https://github.com/Intel-Media-SDK/MediaSDK/#media-sdk-support-matrix 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 | 214 +++++++++++++++-- libavcodec/qsv.h | 4 +- libavcodec/qsv_internal.h | 6 +- libavcodec/qsvdec.c | 15 +- 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 | 139 ++++++++++- libavfilter/qsvvpp.h | 12 +- libavfilter/vf_deinterlace_qsv.c | 72 +++--- libavfilter/vf_scale_qsv.c | 88 +++---- libavutil/hwcontext_opencl.c | 2 +- libavutil/hwcontext_qsv.c | 380 ++++++++++++++++++++++++++----- libavutil/hwcontext_qsv.h | 18 +- 19 files changed, 839 insertions(+), 188 deletions(-)