From patchwork Fri Apr 14 14:39:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sil Vilerino X-Patchwork-Id: 41178 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp553602pzb; Fri, 14 Apr 2023 07:39:46 -0700 (PDT) X-Google-Smtp-Source: AKy350ZI1M3DyVAjq8RUtie57jHdzS3F3Mv1m3mCGBf8XT7uRqvHUeWC4mW9dqa23xWLJ4jiVg4T X-Received: by 2002:a17:906:614:b0:92b:e1ff:be30 with SMTP id s20-20020a170906061400b0092be1ffbe30mr5932079ejb.4.1681483185775; Fri, 14 Apr 2023 07:39:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681483185; cv=none; d=google.com; s=arc-20160816; b=ye6bwYfAkk7S4IiY2a+JEImPO0a/Zc/h+tl7UAtoXS06iWOFsdQX8ECwSnQ84MoC4Z GQQzqJnEFQtId94MFSuAK/e9aGy9p7mo13zXqmxZ+iYPpKFfLqiw7JeSiX3v0aNUtBV0 1pjJlliFRXqAMrzJl9F0h4qf9rRQuVkIA+D2xSd/6jT0OHvIRAhtYJICbUeObhXaNLHT rl2wMbYnRinpuZpuFiA4TZkiLG2lOdqZfXko6UqNWJ3/ho735OT8iqRTXRUxYEY3QOtH R/Ykd8LDa22nzd126h2++OkJgwRqM14jBfwrMciM2z3i7zStBrNE5WQX7NNJRg3zbj/c Y/TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:dkim-filter:delivered-to; bh=M3aZFHOgwD/i4Rr2GkFJYAOH/Dtdwl/LdPTlIesBnQo=; b=DyYzwt/tUYkkoU7hEN+zhUGoX4yA0dOKcKeKM0TFhF2CiQCEK4dy1B9We8vz0wMgNm 8eamJxqyMsF6OqWnaNdLNapTkpnuVzb2YS7qwP3yh90HyIGG6ZUn05J2u46bm3YHM+UG N5gzgkDr2fbk53o+QlW+KTGOYrrXhuuyVExpW+fScw+QXIrVDU9OpVwL0iLVsJnLUptw T3SeO4ZoRMiyP5QlypFXvqQX2juvF3EpN8+SlT468zAS8rHZbYkol5LLoBgUS/qJqHvP ECMY0Gd8pHMkNlxNllSpSoCXmhCsHJCYA8vZRCjKgcHZCFqNEYBWnF2gKoVQnlZeyxTy bt1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linux.microsoft.com header.s=default header.b=ja4XkVhm; 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=linux.microsoft.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id az7-20020a170907904700b0094ec085f9b1si3311785ejc.996.2023.04.14.07.39.44; Fri, 14 Apr 2023 07:39: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; dkim=neutral (body hash did not verify) header.i=@linux.microsoft.com header.s=default header.b=ja4XkVhm; 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=linux.microsoft.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A57FF68BEB2; Fri, 14 Apr 2023 17:39:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 96C9A68BE88 for ; Fri, 14 Apr 2023 17:39:15 +0300 (EEST) Received: from gem-name-lb-02.localdomain (pool-108-28-73-40.washdc.fios.verizon.net [108.28.73.40]) by linux.microsoft.com (Postfix) with ESMTPSA id 87D49217A943 for ; Fri, 14 Apr 2023 07:39:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 87D49217A943 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1681483154; bh=0zar9uJcIfYDZZsBOkVxFBo4193VjjFsoMsyCUNnVVU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ja4XkVhmio3ss63UaT2/isyF97DzuKDoPJkaSX91skEPTVuWwsclzss1jkTbhoycF pmRNUYpNRmYvIAjNuoScWfxX3czWAVSm1wz114XwTxrFw0qZKBa/nR2g7dn9AmMgWZ 9MkM4L+OVP/ZLsKlkYU9lrHY1Gp3gHdFaUstqhU8= From: Sil Vilerino To: ffmpeg-devel@ffmpeg.org Date: Fri, 14 Apr 2023 10:39:06 -0400 Message-Id: <20230414143906.1582-3-sivileri@linux.microsoft.com> X-Mailer: git-send-email 2.39.2.vfs.0.0 In-Reply-To: <20230414143906.1582-1-sivileri@linux.microsoft.com> References: <20230414143906.1582-1-sivileri@linux.microsoft.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 3/3] lavu/hwcontext_qsv: Update after adding support for VAAPI on Windows 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hZAoj4aiKvrU From: Sil Vilerino - qsv_internal.h: Remove unnecessary include va_drm.h - qsv_internal.h: Enable AVCODEC_QSV_LINUX_SESSION_HANDLE on Linux/VA only - hwcontext_qsv.c: Do not allow child_device_type VAAPI for Windows until support is added, keep D3D11/DXVA2 as more prioritary defaults. Initial review at https://github.com/intel-media-ci/ffmpeg/pull/619/ Signed-off-by: Sil Vilerino Reviewed-by: Dmitry Rogozhkin Reviewed-by: Wu, Tong1 --- libavcodec/qsv_internal.h | 5 ++--- libavutil/hwcontext_qsv.c | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/libavcodec/qsv_internal.h b/libavcodec/qsv_internal.h index 5119ef4dff..c2d301b4a2 100644 --- a/libavcodec/qsv_internal.h +++ b/libavcodec/qsv_internal.h @@ -23,9 +23,9 @@ #include "config.h" -#if CONFIG_VAAPI +#if CONFIG_VAAPI && !defined(_WIN32) // Do not enable for libva-win32 on Windows #define AVCODEC_QSV_LINUX_SESSION_HANDLE -#endif //CONFIG_VAAPI +#endif //CONFIG_VAAPI && !defined(_WIN32) #ifdef AVCODEC_QSV_LINUX_SESSION_HANDLE #include @@ -35,7 +35,6 @@ #endif #include #include -#include #include "libavutil/hwcontext_vaapi.h" #endif diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index 6780428875..4ed4242ddf 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -2126,8 +2126,6 @@ static int qsv_device_create(AVHWDeviceContext *ctx, const char *device, "\"%s\".\n", e->value); return AVERROR(EINVAL); } - } else if (CONFIG_VAAPI) { - child_device_type = AV_HWDEVICE_TYPE_VAAPI; #if QSV_ONEVPL } else if (CONFIG_D3D11VA) { // Use D3D11 by default if d3d11va is enabled av_log(ctx, AV_LOG_VERBOSE, @@ -2147,11 +2145,23 @@ static int qsv_device_create(AVHWDeviceContext *ctx, const char *device, } else if (CONFIG_D3D11VA) { child_device_type = AV_HWDEVICE_TYPE_D3D11VA; #endif + } else if (CONFIG_VAAPI) { + child_device_type = AV_HWDEVICE_TYPE_VAAPI; } else { av_log(ctx, AV_LOG_ERROR, "No supported child device type is enabled\n"); return AVERROR(ENOSYS); } +#if CONFIG_VAAPI && defined(_WIN32) + /* AV_HWDEVICE_TYPE_VAAPI on Windows/Libva-win32 not supported */ + /* Reject user specified child_device_type or CONFIG_VAAPI on Windows */ + if (child_device_type == AV_HWDEVICE_TYPE_VAAPI) { + av_log(ctx, AV_LOG_ERROR, "VAAPI child device type not supported for oneVPL on Windows" + "\"%s\".\n", e->value); + return AVERROR(EINVAL); + } +#endif + child_device_opts = NULL; switch (child_device_type) { #if CONFIG_VAAPI