[vlc-commits] [Git][videolan/vlc][master] 2 commits: mfx: switch from retired mfx to vpl

Steve Lhomme (@robUx4) gitlab at videolan.org
Sun Dec 1 08:55:17 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
779170a4 by Nicolas Chauvet at 2024-12-01T07:10:43+00:00
mfx: switch from retired mfx to vpl

Media Framework SDK is retired in favor of Video Processing Library for intel hardware encoding.

Changing the included header and pkgconfig is enough.

Signed-off-by: Nicolas Chauvet <kwizart at gmail.com>

- - - - -
3d80d93f by Nicolas Chauvet at 2024-12-01T07:10:43+00:00
contrib: rename retired mfx to vpl

- - - - -


12 changed files:

- configure.ac
- − contrib/src/mfx/0001-Add-missing-mfx_dispatcher_uwp.h-.cpp.patch
- − contrib/src/mfx/0001-fix-UWP-build-in-ming-w64.patch
- − contrib/src/mfx/0002-fix-UWP-build-in-ming-w64.patch
- − contrib/src/mfx/SHA512SUMS
- − contrib/src/mfx/rules.mak
- + contrib/src/vpl/SHA512SUMS
- + contrib/src/vpl/rules.mak
- meson_options.txt
- modules/codec/Makefile.am
- modules/codec/meson.build
- modules/codec/qsv.c


Changes:

=====================================
configure.ac
=====================================
@@ -3124,9 +3124,9 @@ fi
 
 
 dnl
-dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
+dnl Intel Video Processing Library
 dnl
-PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
+PKG_ENABLE_MODULES_VLC([VPL], [qsv], [vpl], [Intel Video Processing Library encoder], [auto])
 
 
 dnl


=====================================
contrib/src/mfx/0001-Add-missing-mfx_dispatcher_uwp.h-.cpp.patch deleted
=====================================
@@ -1,279 +0,0 @@
-From f5a03b546070a4743603b3fe0e2474866d76622a Mon Sep 17 00:00:00 2001
-From: Steve Lhomme <robux4 at ycbcr.xyz>
-Date: Tue, 30 May 2023 12:19:15 +0200
-Subject: [PATCH] Add missing mfx_dispatcher_uwp.h/.cpp
-
-Originaly found in api/mfx_dispatch/windows/include/mfx_dispatcher_uwp.h
-And api/mfx_dispatch/windows/src/mfx_dispatcher_uwp.cpp
----
- Makefile.am                |   1 +
- src/mfx_dispatcher_uwp.cpp | 201 +++++++++++++++++++++++++++++++++++++
- src/mfx_dispatcher_uwp.h   |  36 +++++++
- 3 files changed, 238 insertions(+)
- create mode 100644 src/mfx_dispatcher_uwp.cpp
- create mode 100644 src/mfx_dispatcher_uwp.h
-
-diff --git a/Makefile.am b/Makefile.am
-index 40be4b1..680f125 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -42,6 +42,7 @@ libmfx_la_LIBADD = $(DLLIB) $(LIBVA_DRM_LIBS) $(LIBVA_X11_LIBS)
- libmfx_la_CPPFLAGS = $(LIBVA_DRM_CFLAGS) $(LIBVA_X11_CFLAGS) $(AM_CPPFLAGS)
- 
- if WINDOWS_STORE
-+libmfx_la_SOURCES += src/mfx_dispatcher_uwp.cpp
- libintel_gfx_api-x86.a: src/intel_gfx_api-x86.def
- 	$(DLLTOOL) --as=as --output-lib $@ --input-def $< --as-flags=--32 -m i386 
- libintel_gfx_api-x64.a: src/intel_gfx_api-x64.def
-diff --git a/src/mfx_dispatcher_uwp.cpp b/src/mfx_dispatcher_uwp.cpp
-new file mode 100644
-index 0000000..62c9f75
---- /dev/null
-+++ b/src/mfx_dispatcher_uwp.cpp
-@@ -0,0 +1,201 @@
-+// Copyright (c) 2020 Intel Corporation
-+//
-+// Permission is hereby granted, free of charge, to any person obtaining a copy
-+// of this software and associated documentation files (the "Software"), to deal
-+// in the Software without restriction, including without limitation the rights
-+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+// copies of the Software, and to permit persons to whom the Software is
-+// furnished to do so, subject to the following conditions:
-+//
-+// The above copyright notice and this permission notice shall be included in all
-+// copies or substantial portions of the Software.
-+//
-+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+// SOFTWARE.
-+
-+#include "mfx_dispatcher.h"
-+#include "mfx_dispatcher_uwp.h"
-+#include "mfx_driver_store_loader.h"
-+#include "mfx_dxva2_device.h"
-+#include "mfx_load_dll.h"
-+
-+mfxStatus GfxApiInit(mfxInitParam par, mfxU32 deviceID, mfxSession *session, mfxModuleHandle& hModule)
-+{
-+    HRESULT hr = S_OK;
-+    wchar_t IntelGFXAPIdllName[MFX_MAX_DLL_PATH] = { 0 };
-+    MFX::DriverStoreLoader dsLoader;
-+
-+    if (!dsLoader.GetDriverStorePath(IntelGFXAPIdllName, sizeof(IntelGFXAPIdllName), deviceID))
-+    {
-+        return MFX_ERR_UNSUPPORTED;
-+    }
-+
-+    size_t pathLen = wcslen(IntelGFXAPIdllName);
-+    MFX::mfx_get_default_intel_gfx_api_dll_name(IntelGFXAPIdllName + pathLen, sizeof(IntelGFXAPIdllName) / sizeof(IntelGFXAPIdllName[0]) - pathLen);
-+    DISPATCHER_LOG_INFO((("loading %S\n"), IntelGFXAPIdllName));
-+
-+    hModule = MFX::mfx_dll_load(IntelGFXAPIdllName);
-+    if (!hModule)
-+    {
-+        DISPATCHER_LOG_ERROR("Can't load intel_gfx_api\n");
-+        return MFX_ERR_UNSUPPORTED;
-+    }
-+
-+    mfxFunctionPointer pFunc = (mfxFunctionPointer)MFX::mfx_dll_get_addr(hModule, "InitialiseMediaSession");
-+    if (!pFunc)
-+    {
-+        DISPATCHER_LOG_ERROR("Can't find required API function: InitialiseMediaSession\n");
-+        MFX::mfx_dll_free(hModule);
-+        return MFX_ERR_UNSUPPORTED;
-+    }
-+
-+    typedef HRESULT(APIENTRY *InitialiseMediaSessionPtr) (HANDLE*, LPVOID, LPVOID);
-+    InitialiseMediaSessionPtr init = (InitialiseMediaSessionPtr)pFunc;
-+    hr = init((HANDLE*)session, &par, NULL);
-+
-+    return (hr == S_OK) ? MFX_ERR_NONE : MFX_ERR_UNKNOWN;
-+}
-+
-+mfxStatus GfxApiClose(mfxSession& session, mfxModuleHandle& hModule)
-+{
-+    HRESULT hr = S_OK;
-+
-+    if (!hModule)
-+    {
-+        return MFX_ERR_INVALID_HANDLE;
-+    }
-+
-+    mfxFunctionPointer pFunc = (mfxFunctionPointer)MFX::mfx_dll_get_addr(hModule, "DisposeMediaSession");
-+    if (!pFunc)
-+    {
-+        DISPATCHER_LOG_ERROR("Can't find required API function: DisposeMediaSession\n");
-+        return MFX_ERR_INVALID_HANDLE;
-+    }
-+
-+    typedef HRESULT(APIENTRY *DisposeMediaSessionPtr) (HANDLE);
-+    DisposeMediaSessionPtr dispose = (DisposeMediaSessionPtr)pFunc;
-+    hr = dispose((HANDLE)session);
-+    session = NULL;
-+
-+    MFX::mfx_dll_free(hModule);
-+    hModule = NULL;
-+
-+    return (hr == S_OK) ? MFX_ERR_NONE : MFX_ERR_UNKNOWN;
-+}
-+
-+mfxStatus GfxApiInitByAdapterNum(mfxInitParam par, mfxU32 adapterNum, mfxSession *session, mfxModuleHandle& hModule)
-+{
-+    MFX::DXVA2Device dxvaDevice;
-+
-+    if (!dxvaDevice.InitDXGI1(adapterNum))
-+    {
-+        DISPATCHER_LOG_ERROR((("dxvaDevice.InitDXGI1(%d) Failed\n"), adapterNum));
-+        return MFX_ERR_UNSUPPORTED;
-+    }
-+
-+    if (dxvaDevice.GetVendorID() != INTEL_VENDOR_ID)
-+    {
-+        DISPATCHER_LOG_ERROR("Specified adapter is not Intel\n");
-+        return MFX_ERR_UNSUPPORTED;
-+    }
-+
-+    return GfxApiInit(par, dxvaDevice.GetDeviceID(), session, hModule);
-+}
-+
-+struct GfxApiHandle
-+{
-+    mfxModuleHandle hModule;
-+    mfxSession session;
-+    mfxU16 mediaAdapterType;
-+};
-+
-+static int GfxApiHandleSort(const void * plhs, const void * prhs)
-+{
-+    const GfxApiHandle * lhs = *(const GfxApiHandle **)plhs;
-+    const GfxApiHandle * rhs = *(const GfxApiHandle **)prhs;
-+
-+    // prefer integrated GPU
-+    if (lhs->mediaAdapterType != MFX_MEDIA_INTEGRATED && rhs->mediaAdapterType == MFX_MEDIA_INTEGRATED)
-+    {
-+        return 1;
-+    }
-+    if (lhs->mediaAdapterType == MFX_MEDIA_INTEGRATED && rhs->mediaAdapterType != MFX_MEDIA_INTEGRATED)
-+    {
-+        return -1;
-+    }
-+
-+    return 0;
-+}
-+
-+mfxStatus GfxApiInitPriorityIntegrated(mfxInitParam par, mfxSession *session, mfxModuleHandle& hModule)
-+{
-+    mfxStatus sts = MFX_ERR_UNSUPPORTED;
-+    MFX::MFXVector<GfxApiHandle> gfxApiHandles;
-+
-+    for (int adapterNum = 0; adapterNum < 4; ++adapterNum)
-+    {
-+        MFX::DXVA2Device dxvaDevice;
-+
-+        if (!dxvaDevice.InitDXGI1(adapterNum) || dxvaDevice.GetVendorID() != INTEL_VENDOR_ID)
-+        {
-+            continue;
-+        }
-+
-+        par.Implementation &= ~(0xf);
-+        switch (adapterNum)
-+        {
-+        case 0:
-+            par.Implementation |= MFX_IMPL_HARDWARE;
-+            break;
-+        case 1:
-+            par.Implementation |= MFX_IMPL_HARDWARE2;
-+            break;
-+        case 2:
-+            par.Implementation |= MFX_IMPL_HARDWARE3;
-+            break;
-+        case 3:
-+            par.Implementation |= MFX_IMPL_HARDWARE4;
-+            break;
-+        }
-+
-+        mfxModuleHandle hModuleCur = NULL;
-+        mfxSession sessionCur = NULL;
-+
-+        sts = GfxApiInit(par, dxvaDevice.GetDeviceID(), &sessionCur, hModuleCur);
-+        if (sts != MFX_ERR_NONE)
-+            continue;
-+
-+        mfxPlatform platform = { MFX_PLATFORM_UNKNOWN, 0, MFX_MEDIA_UNKNOWN };
-+        sts = MFXVideoCORE_QueryPlatform(sessionCur, &platform);
-+        if (sts != MFX_ERR_NONE)
-+        {
-+            sts = GfxApiClose(sessionCur, hModuleCur);
-+            if (sts != MFX_ERR_NONE)
-+                return sts;
-+            continue;
-+        }
-+
-+        GfxApiHandle handle = { hModuleCur, sessionCur, platform.MediaAdapterType };
-+        gfxApiHandles.push_back(handle);
-+    }
-+
-+    qsort(&(*gfxApiHandles.begin()), gfxApiHandles.size(), sizeof(GfxApiHandle), &GfxApiHandleSort);
-+
-+    hModule = gfxApiHandles.begin()->hModule;
-+    *session = gfxApiHandles.begin()->session;
-+
-+    MFX::MFXVector<GfxApiHandle>::iterator it = gfxApiHandles.begin()++;
-+    for (; it != gfxApiHandles.end(); ++it)
-+    {
-+        sts = GfxApiClose(it->session, it->hModule);
-+        if (sts != MFX_ERR_NONE)
-+            return sts;
-+    }
-+
-+    return sts;
-+}
-diff --git a/src/mfx_dispatcher_uwp.h b/src/mfx_dispatcher_uwp.h
-new file mode 100644
-index 0000000..c3cbad3
---- /dev/null
-+++ b/src/mfx_dispatcher_uwp.h
-@@ -0,0 +1,36 @@
-+// Copyright (c) 2020 Intel Corporation
-+//
-+// Permission is hereby granted, free of charge, to any person obtaining a copy
-+// of this software and associated documentation files (the "Software"), to deal
-+// in the Software without restriction, including without limitation the rights
-+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+// copies of the Software, and to permit persons to whom the Software is
-+// furnished to do so, subject to the following conditions:
-+//
-+// The above copyright notice and this permission notice shall be included in all
-+// copies or substantial portions of the Software.
-+//
-+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+// SOFTWARE.
-+
-+#if !defined(__MFX_DISPATCHER_UWP_H)
-+#define __MFX_DISPATCHER_UWP_H
-+
-+// Loads intel_gfx_api dll from DriverStore fro specified device and calls InitialiseMediaSession from it
-+mfxStatus GfxApiInit(mfxInitParam par, mfxU32 deviceID, mfxSession *session, mfxModuleHandle& hModule);
-+
-+// Calls DisposeMediaSession from the intel_gfx_api dll and unloads it
-+mfxStatus GfxApiClose(mfxSession& session, mfxModuleHandle& hModule);
-+
-+// Initializes intel_gfx_api for specified adapter number
-+mfxStatus GfxApiInitByAdapterNum(mfxInitParam par, mfxU32 adapterNum, mfxSession *session, mfxModuleHandle& hModule);
-+
-+// Initializes intel_gfx_api for any Intel adapter, chooses integrated adapter with higher priority
-+mfxStatus GfxApiInitPriorityIntegrated(mfxInitParam par, mfxSession *session, mfxModuleHandle& hModule);
-+
-+#endif // __MFX_DISPATCHER_UWP_H
--- 
-2.37.3.windows.1
-


=====================================
contrib/src/mfx/0001-fix-UWP-build-in-ming-w64.patch deleted
=====================================
@@ -1,32 +0,0 @@
-From ca523b11e2e4e6a33708353095585a44cbd3d818 Mon Sep 17 00:00:00 2001
-From: Steve Lhomme <robux4 at ycbcr.xyz>
-Date: Fri, 12 May 2023 11:45:47 +0200
-Subject: [PATCH] fix UWP build in ming-w64
-
-minwg-w64 doesn't define these types in UWP mode and would require
-a bit of code refactoring to do so.
----
- src/mfx_driver_store_loader.h | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/mfx_driver_store_loader.h b/src/mfx_driver_store_loader.h
-index 372794f..650e170 100644
---- a/src/mfx_driver_store_loader.h
-+++ b/src/mfx_driver_store_loader.h
-@@ -35,6 +35,13 @@
- #endif
- #endif
- 
-+#if defined(__MINGW64_VERSION_MAJOR) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-+// mingw-w64 doesn't set these types for WINAPI_PARTITION_APP
-+typedef DWORD      DEVINST;
-+typedef DEVINST    *PDEVINST;
-+typedef ULONG      REGDISPOSITION;
-+#endif
-+
- namespace MFX
- {
- 
--- 
-2.37.3.windows.1
-


=====================================
contrib/src/mfx/0002-fix-UWP-build-in-ming-w64.patch deleted
=====================================
@@ -1,45 +0,0 @@
-From 0070532c09865a95f63987ccec25d529ce198683 Mon Sep 17 00:00:00 2001
-From: Steve Lhomme <robux4 at ycbcr.xyz>
-Date: Tue, 30 May 2023 15:29:31 +0200
-Subject: [PATCH] fix UWP build in ming-w64
-
-minwg-w64 doesn't define these types in UWP mode and would require
-a bit of code refactoring to do so.
----
- src/mfx_driver_store_loader.h | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/src/mfx_driver_store_loader.h b/src/mfx_driver_store_loader.h
-index 650e170..3895854 100644
---- a/src/mfx_driver_store_loader.h
-+++ b/src/mfx_driver_store_loader.h
-@@ -35,11 +35,24 @@
- #endif
- #endif
- 
--#if defined(__MINGW64_VERSION_MAJOR) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
--// mingw-w64 doesn't set these types for WINAPI_PARTITION_APP
-+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-+// these are not defined for WINAPI_PARTITION_APP
- typedef DWORD      DEVINST;
- typedef DEVINST    *PDEVINST;
- typedef ULONG      REGDISPOSITION;
-+#include <initguid.h>
-+DEFINE_GUID( GUID_DEVCLASS_DISPLAY,             0x4d36e968L, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18 );
-+
-+#if defined(__MINGW64_VERSION_MAJOR)
-+#define CR_SUCCESS                     (0x00)
-+#define CR_BUFFER_SMALL                (0x1A)
-+#define CM_LOCATE_DEVNODE_NORMAL       (0x00000000)
-+#define CM_REGISTRY_SOFTWARE           (0x00000001)
-+#define CM_GETIDLIST_FILTER_PRESENT    (0x00000100)
-+#define CM_GETIDLIST_FILTER_CLASS      (0x00000200)
-+#define RegDisposition_OpenExisting    (0x00000001)
-+#endif
-+
- #endif
- 
- namespace MFX
--- 
-2.37.3.windows.1
-


=====================================
contrib/src/mfx/SHA512SUMS deleted
=====================================
@@ -1 +0,0 @@
-12517338342d3e653043a57e290eb9cffd190aede0c3a3948956f1c7f12f0ea859361cf3e534ab066b96b1c211f68409c67ef21fd6d76b68cc31daef541941b0  mfx_dispatch-1.35.1.tar.gz


=====================================
contrib/src/mfx/rules.mak deleted
=====================================
@@ -1,44 +0,0 @@
-# mfx (Media SDK)
-
-MFX_VERSION := 1.35.1
-MFX_URL := $(GITHUB)/lu-zero/mfx_dispatch/archive/refs/tags/$(MFX_VERSION).tar.gz
-
-ifeq ($(call need_pkg,"mfx"),)
-PKGS_FOUND += mfx
-endif
-ifdef HAVE_WIN32
-ifeq ($(filter arm aarch64, $(ARCH)),)
-PKGS += mfx
-endif
-endif
-
-DEPS_mfx =
-ifdef HAVE_WINSTORE
-DEPS_mfx += alloweduwp $(DEPS_alloweduwp)
-endif
-
-ifdef HAVE_WINSTORE
-MFX_CONF := CFLAGS="$(CFLAGS) -DMEDIASDK_UWP_DISPATCHER"
-MFX_CONF += CXXFLAGS="$(CXXFLAGS) -DMEDIASDK_UWP_DISPATCHER"
-endif
-
-$(TARBALLS)/mfx_dispatch-$(MFX_VERSION).tar.gz:
-	$(call download_pkg,$(MFX_URL),mfx)
-
-.sum-mfx: mfx_dispatch-$(MFX_VERSION).tar.gz
-
-mfx: mfx_dispatch-$(MFX_VERSION).tar.gz .sum-mfx
-	$(UNPACK)
-	# $(call update_autoconfig,.)
-	$(APPLY) $(SRC)/mfx/0001-fix-UWP-build-in-ming-w64.patch
-	$(APPLY) $(SRC)/mfx/0002-fix-UWP-build-in-ming-w64.patch
-	$(APPLY) $(SRC)/mfx/0001-Add-missing-mfx_dispatcher_uwp.h-.cpp.patch
-	$(MOVE)
-
-.mfx: mfx
-	$(RECONF)
-	$(MAKEBUILDDIR)
-	$(MAKECONFIGURE) $(MFX_CONF)
-	+$(MAKEBUILD)
-	+$(MAKEBUILD) install
-	touch $@


=====================================
contrib/src/vpl/SHA512SUMS
=====================================
@@ -0,0 +1 @@
+22b9f409a9b8ed551847e1b5a94d0c48502b5fbf68ec28021ba36d3f851ef83896205977e6b7f52c102f747a8fbc793424181ecd7edaf6058a39dc15b78d19cd libvpl-2.13.0.tar.gz


=====================================
contrib/src/vpl/rules.mak
=====================================
@@ -0,0 +1,46 @@
+# vpl (Intel Video Processing Library)
+
+VPL_VERSION := 2.13.0
+VPL_URL := $(GITHUB)/intel/libvpl/archive/v${VPL_VERSION}/libvpl-${VPL_VERSION}.tar.gz
+
+ifeq ($(call need_pkg,"vpl"),)
+PKGS_FOUND += vpl
+endif
+ifdef HAVE_WIN32
+ifndef HAVE_WINSTORE
+ifeq ($(filter arm aarch64, $(ARCH)),)
+PKGS += vpl
+endif
+endif
+endif
+
+DEPS_vpl :=
+
+ifdef HAVE_WINSTORE
+DEPS_vpl += alloweduwp $(DEPS_alloweduwp)
+endif
+
+ifdef HAVE_WINSTORE
+VPL_VARS := CFLAGS="$(CFLAGS) -DMEDIASDK_UWP_DISPATCHER"
+VPL_VARS += CXXFLAGS="$(CXXFLAGS) -DMEDIASDK_UWP_DISPATCHER"
+endif
+
+# Disable BUILD_EXPERIMENTAL
+# https://github.com/intel/libvpl/issues/168
+VPL_CONF := -DBUILD_EXPERIMENTAL=OFF
+
+$(TARBALLS)/libvpl-$(VPL_VERSION).tar.gz:
+	$(call download_pkg,$(VPL_URL),vpl)
+
+.sum-vpl: libvpl-$(VPL_VERSION).tar.gz
+
+vpl: libvpl-$(VPL_VERSION).tar.gz .sum-vpl
+	$(UNPACK)
+	$(MOVE)
+
+.vpl: vpl toolchain.cmake
+	$(CMAKECLEAN)
+	$(HOSTVARS_CMAKE) $(VPL_VARS) $(CMAKE) $(VPL_CONF)
+	+$(CMAKEBUILD)
+	$(CMAKEINSTALL)
+	touch $@


=====================================
meson_options.txt
=====================================
@@ -339,10 +339,10 @@ option('twolame',
     value : 'auto',
     description : 'Enable/disable twolame support')
 
-option('mfx',
+option('vpl',
     type : 'feature',
     value : 'auto',
-    description : 'Enable/disable libmfx support')
+    description : 'Enable/disable libvpl support')
 
 option('spatialaudio',
     type : 'feature',


=====================================
modules/codec/Makefile.am
=====================================
@@ -617,9 +617,9 @@ codec_LTLIBRARIES += $(LTLIBdav1d)
 ### Hardware encoders ###
 
 libqsv_plugin_la_SOURCES = codec/qsv.c demux/mpeg/timestamps.h
-libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(MFX_CFLAGS)
+libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(VPL_CFLAGS)
 libqsv_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
-libqsv_plugin_la_LIBADD = $(MFX_LIBS)
+libqsv_plugin_la_LIBADD = $(VPL_LIBS)
 EXTRA_LTLIBRARIES += libqsv_plugin.la
 codec_LTLIBRARIES += $(LTLIBqsv)
 


=====================================
modules/codec/meson.build
=====================================
@@ -886,7 +886,7 @@ vlc_modules += {
 ## Hardware encoders
 
 # QSV encoder
-qsv_dep = dependency('libmfx', required: get_option('mfx'))
+qsv_dep = dependency('vpl', required: get_option('vpl'))
 vlc_modules += {
     'name' : 'qsv',
     'sources' : files('qsv.c'),


=====================================
modules/codec/qsv.c
=====================================
@@ -36,7 +36,7 @@
 #include <vlc_list.h>
 
 
-#include <mfx/mfxvideo.h>
+#include <vpl/mfxvideo.h>
 #include "../demux/mpeg/timestamps.h"
 
 #define SOUT_CFG_PREFIX     "sout-qsv-"



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c9f967f5d6fc76ddcac032fe35aefe3128101c9f...3d80d93f0c49d34707d129e6b5f2e9a304e084ba

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c9f967f5d6fc76ddcac032fe35aefe3128101c9f...3d80d93f0c49d34707d129e6b5f2e9a304e084ba
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list