[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