I would like to propose new package libvpl.
This is Intel GPU accelerator driver dispatcher, which has
the same function with mfx_dispatch package.
mfx_dispatch is used by ffmpeg package, however, recent
ffmpeg complains that libmfx is deprecated and use libvpl
instead.
--
Takashi Yano
NAME="libvpl"
VERSION=2.10.2
RELEASE=1
LICENSE="MIT"
CATEGORY="Libs"
SUMMARY="Intel® Video Processing Library (Intel® VPL) dispatcher"
DESCRIPTION="This package provides the headers and the library which loads
Intel MediaSDK dlls dynamically. The codec itself is implemented in the dlls
and the Intel GPU."
HOMEPAGE="https://github.com/intel/libvpl/";
SRC_URI="https://github.com/intel/libvpl/archive/refs/tags/v${VERSION}.tar.gz";
inherit cmake
CYGCMAKE_ARGS="
-DBUILD_TOOLS=OFF
-DINSTALL_EXAMPLE_CODE=OFF
"
PKG_NAMES="libvpl libvpl-devel"
libvpl_CONTENTS="usr/bin usr/share"
libvpl_devel_CONTENTS="usr/include/ usr/lib/"
PKG_IGNORE="usr/etc/vpl/vars.sh"
src_install () {
cd ${B}
ninja_install
dosym ../bin/cygvpl-2.dll /usr/lib/libvpl.dll
}
--- origsrc/libvpl-2.10.2/cmake/CompileOptions.cmake2024-02-21
06:41:06.0 +0900
+++ src/libvpl-2.10.2/cmake/CompileOptions.cmake2024-02-21
16:11:27.826793000 +0900
@@ -51,16 +51,10 @@ else()
add_compile_options("-Werror=format-security")
if(NOT MINGW)
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
-if(NOT CMAKE_BUILD_TYPE MATCHES debug)
- add_definitions("-D_FORTIFY_SOURCE=2")
-endif()
endif()
if(NOT MINGW)
add_compile_options("-fstack-protector-strong")
endif()
- if(NOT MINGW)
-add_link_options("-Wl,-z,relro,-z,now,-z,noexecstack")
- endif()
add_compile_options("-Wall")
if(ENABLE_WARNING_AS_ERROR)
add_compile_options("-Werror")
--- origsrc/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl.h 2024-02-21
06:41:06.0 +0900
+++ src/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl.h 2024-02-21
15:44:48.647479800 +0900
@@ -48,7 +48,7 @@ typedef char CHAR_TYPE;
#define MSDK_LIB_NAME L"libmfxhw64."
#endif
#define ONEVPL_PRIORITY_PATH_VAR L"ONEVPL_PRIORITY_PATH"
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__CYGWIN__)
// Linux x64
#define MSDK_LIB_NAME"libmfxhw64."
#define ONEVPL_PRIORITY_PATH_VAR "ONEVPL_PRIORITY_PATH"
--- origsrc/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_loader.cpp
2024-02-21 06:41:06.0 +0900
+++ src/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_loader.cpp 2024-02-21
15:43:05.531476800 +0900
@@ -409,7 +409,7 @@ mfxU32 LoaderCtxVPL::GetSearchPathsLegac
mfxU32 LoaderCtxVPL::GetSearchPathsSystemDefault(std::list
&searchDirs) {
searchDirs.clear();
-#ifdef __linux__
+#if defined(__linux__) || defined(__CYGWIN__)
// Add the standard path for libmfx1 install in Ubuntu
searchDirs.push_back("/usr/lib/x86_64-linux-gnu");
--- origsrc/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_lowlatency.cpp
2024-02-21 06:41:06.0 +0900
+++ src/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_lowlatency.cpp
2024-02-21 15:46:45.692207300 +0900
@@ -18,6 +18,9 @@
#define LIB_ONEVPL L"libmfx64-gen.dll"
#define LIB_MSDK L"libmfxhw64.dll"
#endif
+#elif defined(__CYGWIN__)
+#define LIB_ONEVPL "libmfx64-gen.dll"
+#define LIB_MSDK "libmfxhw64.dll"
#elif defined(__linux__)
// Linux x64
#define LIB_ONEVPL "libmfx-gen.so.1.2"
@@ -191,7 +194,7 @@ mfxStatus LoaderCtxVPL::LoadLibsFromSyst
}
mfxStatus LoaderCtxVPL::LoadLibsFromMultipleDirs(LibType libType) {
-#ifdef __linux__
+#if defined(__linux__) || defined(__CYGWIN__)
// clang-format off
// standard paths for RT installation on Linux
--- origsrc/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_msdk.cpp
2024-02-21 06:41:06.0 +0900
+++ src/libvpl-2.10.2/libvpl/src/mfx_dispatcher_vpl_msdk.cpp2024-02-21
15:47:17.135104700 +0900
@@ -11,7 +11,7 @@
#include "src/mfx_dispatcher_vpl_win.h"
#endif
-#ifdef __linux__
+#if defined(__linux__) || defined(__CYGWIN__)
#include
#define strncpy_s(dst, size, src, cnt) strncpy((dst), (src), (cnt)) //
NOLINT
#endif
@@ -97,7 +97,7 @@ static const mfxImplementedFunctions msd
(mfxChar**)msdkImplFuncsNames
};
-#ifdef __linux__
+#if defined(__linux__) || defined(__CYGWIN__)
// optional extBuf to limit threads created in MSDK session creation
// to enable, set vplParam.NumExtParam and vplParam.ExtParam before calling
MFXInitEx2()
static const mfxExtThreadsParam extThreadParam = {
@@ -142,7 +142,7 @@ mfxStatus LoaderCtxMSDK::OpenSession(mfx
mfxInitializationParam vplParam = {};
vplParam.AccelerationMode = accelMode;
-#ifdef __linux__
+#if defined(__linux__) || defined(__CYGWIN__)
vplParam.ExtParam= (mfxExtBuffer **)&extParams;
vplParam.NumExtParam = 1;
#else
@@ -183,7 +183,7 @@ mfxAccelerationMode LoaderCtxMSDK::CvtAc
}
mfxStatus LoaderCtxMSDK::GetDefaultAccelT