From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 5EEFF4D0B4 for ; Fri, 30 May 2025 13:58:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 3B07468DCB7; Fri, 30 May 2025 16:58:38 +0300 (EEST) Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 57B0668D4A9 for ; Fri, 30 May 2025 16:58:30 +0300 (EEST) Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-ad8a6c202ffso393789666b.3 for ; Fri, 30 May 2025 06:58:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748613509; x=1749218309; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vtqwj04YeQoBqbbVbVIfypvbIuzTtseHtWRa617IPW4=; b=Ou32iOaLbGQFWrvkLInYM1YTk9ahTqdVfu6Ola04QgrcG8Rdp5mu1l/BgtrpYFeCKs feRoPZR86lVt1G0W/wUaAUmSnETxvoXUh9GrUaxGlsW66B+2aw8B/sGtWjx3bFV9C/Yx y7L4V4Ba7D7uQvgWUGa1J3uHxvOdG9cCEOevfuGSRjbt/00iAWZmKDMWCzjPei6k0fO3 HtXQfF81b5zmN1ByyPk3RDNV6IemsexTnGfiWjl7/MfqIwzekGiMAhTnKzLs4+t8MrvF B0Jr5YPZuduQeBbeHMtenTBCo4TfchXreQumhJrJHPHhJwkB1g/hO+462Jr2Ibs4J3C4 vCzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748613509; x=1749218309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vtqwj04YeQoBqbbVbVIfypvbIuzTtseHtWRa617IPW4=; b=DMJYyTlyqGpwJlSZTfjRIhP162GSdwFxM22q+dNmBYZUq6wup1+1eSEEqjIdrZslut uZ6NNG3QaThSv3CLVu0OvO6Moniwm+bySRwHnV7RtEv3SK61BUmGvO99qQPDoSBQavBQ tRV5ktllQiXBuMqP0VUlRTty8g1WdxOeaOIyudtoe7kAzuhH0CWb37xDHAFL6J3clWa6 nM/yZC3NF7y6wst5kJRlLbs3TliFa72ImysqPsOgVcqmMUbZIved3kqDiRlh+Mt+zmEg qDx/oeWaV2MwhabQvUAuVZb5I18Vkhj8TGDwWw9hUS0zE+eYs58r5OyKXKk1Y8yqaQk2 cZ1w== X-Gm-Message-State: AOJu0YzImPi20T28BXrMLHD4CMEDl0sW/nbHm0zlntHrrtjwoYp8wl1u uy+RyprgkQgJZeWxfNFKib0A1yYULYS2Mh5yQECJd5iNdt5qZKRWt3Ww30PjfdBZ+kk= X-Gm-Gg: ASbGnctBneqdN2F2YYi9Ai5FBVUhcgO8qmDNVYKAzZgMyrZl6f5ZlwjaOTq1R0KSg1G rtgHnAghsb8G1b3J0WAZgF5YM3ZAqlZ73WE9XzSX5p72D4U9pbUpmw/yz/njg/BhOALaBSvRmRt o2clZ0/nqEnRWDBKsi38/ZVuSghmMnwuYxN7aDS9Jy8FfjI2kvAOI+lKCSd3ULYVMbworMZxnq+ f9wEcdBuBMxgx/2lBZsiS8q5VJSgpZmyTUbnaFTp/HD63XWoXLa5V7+KMoYlt2G/Zn2avi6i9CT I2X04s3iQlEh+pKf6tBEqb1kX3Jvd4LQASkvrDrf912BKmD35358i9fBwDGv9lJYZ39YIbA7TiN jcMC/Q/RT9PSQ X-Google-Smtp-Source: AGHT+IE78iIS3uoyRQSQXMxyinCQH9daySHQ0uRgCdarVhcFAyJQ/pS8lB8VPTTS8d8beCgSKXiF8Q== X-Received: by 2002:a17:906:3c52:b0:adb:3272:7df5 with SMTP id a640c23a62f3a-adb3272817cmr285693766b.16.1748613509136; Fri, 30 May 2025 06:58:29 -0700 (PDT) Received: from localhost.localdomain ([87.116.182.236]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d7ff08bsm332972066b.17.2025.05.30.06.58.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 May 2025 06:58:28 -0700 (PDT) From: Dmitrii Ovchinnikov To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 May 2025 15:58:13 +0200 Message-ID: <20250530135814.656-2-ovchinnikov.dmitrii@gmail.com> X-Mailer: git-send-email 2.47.1.windows.1 In-Reply-To: <20250530135814.656-1-ovchinnikov.dmitrii@gmail.com> References: <20250530135814.656-1-ovchinnikov.dmitrii@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avutil/hwcontext_amf: add support for d3d12va initialisation 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: Dmitrii Ovchinnikov Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- libavutil/hwcontext_amf.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/libavutil/hwcontext_amf.c b/libavutil/hwcontext_amf.c index 24731c20ec..7903109445 100644 --- a/libavutil/hwcontext_amf.c +++ b/libavutil/hwcontext_amf.c @@ -28,6 +28,9 @@ #if CONFIG_D3D11VA #include "libavutil/hwcontext_d3d11va.h" #endif +#if CONFIG_D3D12VA +#include "libavutil/hwcontext_d3d12va.h" +#endif #if CONFIG_DXVA2 #define COBJMACROS #include "libavutil/hwcontext_dxva2.h" @@ -146,6 +149,9 @@ static const enum AVPixelFormat supported_formats[] = { #if CONFIG_D3D11VA AV_PIX_FMT_D3D11, #endif +#if CONFIG_D3D12VA + AV_PIX_FMT_D3D12, +#endif #if CONFIG_DXVA2 AV_PIX_FMT_DXVA2_VLD, #endif @@ -555,10 +561,33 @@ static int amf_init_from_d3d11_device(AVAMFDeviceContext* amf_ctx, AVD3D11VADevi av_log(hwctx, AV_LOG_ERROR, "AMF failed to initialise on the given D3D11 device: %d.\n", res); return AVERROR(ENODEV); } + av_log(hwctx, AV_LOG_ERROR, "AMF via D3D11"); return 0; } #endif +#if CONFIG_D3D12VA +static int amf_init_from_d3d12_device(AVAMFDeviceContext* amf_ctx, AVD3D12VADeviceContext *hwctx) +{ + AMF_RESULT res; + AMFContext2 *context2 = NULL; + AMFGuid guid = IID_AMFContext2(); + res = amf_ctx->context->pVtbl->QueryInterface(amf_ctx->context, &guid, (void**)&context2); + AMF_RETURN_IF_FALSE(hwctx, res == AMF_OK, AVERROR_UNKNOWN, "CreateContext2() failed with error %d\n", res); + res = context2->pVtbl->InitDX12(context2, hwctx->device, AMF_DX12); + context2->pVtbl->Release(context2); + if (res != AMF_OK && res != AMF_ALREADY_INITIALIZED) { + if (res == AMF_NOT_SUPPORTED) + av_log(hwctx, AV_LOG_ERROR, "AMF via D3D12 is not supported on the given device.\n"); + else + av_log(hwctx, AV_LOG_ERROR, "AMF failed to initialise on the given D3D12 device: %d.\n", res); + return AVERROR(ENODEV); + } + return 0; +} +#endif + + static int amf_device_derive(AVHWDeviceContext *device_ctx, AVHWDeviceContext *child_device_ctx, AVDictionary *opts, int flags) @@ -588,6 +617,13 @@ static int amf_device_derive(AVHWDeviceContext *device_ctx, return amf_init_from_d3d11_device(amf_ctx, child_device_hwctx); } break; +#endif +#if CONFIG_D3D12VA + case AV_HWDEVICE_TYPE_D3D12VA: { + AVD3D12VADeviceContext *child_device_hwctx = child_device_ctx->hwctx; + return amf_init_from_d3d12_device(amf_ctx, child_device_hwctx); + } + break; #endif default: { av_log(child_device_ctx, AV_LOG_ERROR, "AMF initialisation from a %s device is not supported.\n", -- 2.47.1.windows.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".