From patchwork Thu Sep 23 06:28:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 30471 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6506:0:0:0:0:0 with SMTP id z6csp158254iob; Wed, 22 Sep 2021 23:28:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLkmGJT1VkrxI5xxyJ0pCjFyNCUg1944GRU4myLdxsI1C16CQ25m7YAF+P+NhUhKD3Q+0s X-Received: by 2002:a05:6402:17c8:: with SMTP id s8mr3665231edy.130.1632378530343; Wed, 22 Sep 2021 23:28:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632378530; cv=none; d=google.com; s=arc-20160816; b=stpKR3zBtWwgW3l5i5tYwQEDAX2zTpBmjHlfPt7vN9oTteD8jPAe95d7yBXp0lXLbG olA7BJpcsl5zsmmWc7xEDzIqJm+/UPq2R6FHYTwHoYkjtcd8VWAyfMGxcrI71SBlVr6d 7mT0N2vRL8E1RC0tX8EhMxJaG+x23T/1T3eDLfBHcrEgpQGV/HgnHl8l/UEHIlkAjV78 TYFJ7NRPQY0XjJ/7hLMGrswi5FY7Fcv1p28+7jt2yjOXW7dvAYJ/09nqbYNcjdY3lImG k37LXKOtOstNHf+ojvCIIcGpzp18tClpaMrUCsFa/q5HpmsZEYrjxbZi70YbMUJxEXTb tnDg== 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=PW/Dcnu0noZBMVd+TYfA804bgsb2v+sbPVV0o2SPGVY=; b=wBs7Fjxy9eLok3ptUuR9DztvFfpzuBFf5ZoJQd4kQ8LbocJj3czWVcQ7YFdibjejNx OyZ1zDBlWtOJ2vMRZnlgdY7D+tzSePVUwpkadIILce8LBI1jNy11PgnyWGmECFw+0ZT/ fRZ8WMr+5zKzK0Ee9STV3pk5902u0+1ks0RHH9dSeEhjpvCAECAkg7DQn9s5brblt1qR 1QmqF9+J9PkMLdkHsDWtISHnphTS8i0umGqT+lqq8wPPVvN/3GWEZuUIQT2abunQeyIq 449JrKGVQ0bf1KfV0wXtz5lOaZtdA1S4xoggIyrMP0IavX21RDxwMRMEESOrta94ViNX GGwg== 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 v2si5362971eji.679.2021.09.22.23.28.40; Wed, 22 Sep 2021 23:28:50 -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 F28DE68A92E; Thu, 23 Sep 2021 09:28:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C2CF568A7B8 for ; Thu, 23 Sep 2021 09:28:29 +0300 (EEST) X-IronPort-AV: E=McAfee;i="6200,9189,10115"; a="203930122" X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="203930122" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2021 23:28:27 -0700 X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="550689655" Received: from xhh-dg164.sh.intel.com ([10.239.159.167]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2021 23:28:26 -0700 From: Haihao Xiang To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Sep 2021 14:28:08 +0800 Message-Id: <20210923062818.18892-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH v4 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: zSWzju5ZIPhB 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 v4: rebased this patchset against the latest master and fixed bugs [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 | 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 | 73 +++--- libavfilter/vf_scale_qsv.c | 88 ++++---- libavutil/hwcontext_opencl.c | 2 +- libavutil/hwcontext_qsv.c | 377 ++++++++++++++++++++++++++----- libavutil/hwcontext_qsv.h | 18 +- 19 files changed, 837 insertions(+), 188 deletions(-)