git: 7ef46d5789cc - main - multimedia/libvpl: New port: Intel Video Processing Library API, dispatcher, and examples
Hiroki Tagato <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.ports |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by tagattie: URL: https://cgit.FreeBSD.org/ports/commit/?id=7ef46d5789cc705b46264bf959e4375619a1011a commit 7ef46d5789cc705b46264bf959e4375619a1011a Author: Yuichiro NAITO <[email protected]> AuthorDate: 2026-08-17 01:38:32 +0000 Commit: Hiroki Tagato <[email protected]> CommitDate: 2026-08-17 01:57:40 +0000 multimedia/libvpl: New port: Intel Video Processing Library API, dispatcher, and examples Intel Video Processing Library (Intel VPL) provides access to hardware accelerated video decode, encode, and processing capabilities on Intel GPUs to support AI visual inference, media delivery, cloud gaming, and virtual desktop infrastructure use cases. This repository contains the following components: - Copies of the Intel VPL API header files. The version of the API is listed in the mfxdefs.h file. - Intel VPL Dispatcher - Examples demonstrating API usage *** IMPORTANT *** Intel VPL Tools are no longer in this repository. They have all been moved to libvpl-tools. WWW: https://www.intel.com/content/www/us/en/developer/tools/vpl/overview.html PR: 293561 Reported by: Yuichiro NAITO <[email protected]> (new maintainer) --- multimedia/Makefile | 1 + multimedia/libvpl/Makefile | 36 ++++++ multimedia/libvpl/distinfo | 3 + multimedia/libvpl/files/patch-api_vpl_mfxdefs.h | 20 ++++ .../libvpl/files/patch-libvpl_CMakeLists.txt | 11 ++ .../files/patch-libvpl_src_linux_device__ids.h | 73 ++++++++++++ .../files/patch-libvpl_src_mfx__dispatcher__vpl.h | 11 ++ ...tch-libvpl_src_mfx__dispatcher__vpl__loader.cpp | 27 +++++ ...libvpl_src_mfx__dispatcher__vpl__lowlatency.cpp | 30 +++++ ...patch-libvpl_src_mfx__dispatcher__vpl__msdk.cpp | 131 +++++++++++++++++++++ .../patch-libvpl_test_runtimes_stub_src_config.h | 11 ++ ...ibvpl_test_unit_src_dispatcher__enum__impls.cpp | 11 ++ multimedia/libvpl/pkg-descr | 16 +++ multimedia/libvpl/pkg-plist | 113 ++++++++++++++++++ 14 files changed, 494 insertions(+) diff --git a/multimedia/Makefile b/multimedia/Makefile index 0f1efed27ab9..1646fd0dda9f 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -193,6 +193,7 @@ SUBDIR += libvdpau SUBDIR += libvdpau-va-gl SUBDIR += libvlcpp + SUBDIR += libvpl SUBDIR += libvpx SUBDIR += libwebm SUBDIR += libx264 diff --git a/multimedia/libvpl/Makefile b/multimedia/libvpl/Makefile new file mode 100644 index 000000000000..aebdebeb2595 --- /dev/null +++ b/multimedia/libvpl/Makefile @@ -0,0 +1,36 @@ +PORTNAME= libvpl +DISTVERSIONPREFIX= v +DISTVERSION= 2.17.0 +CATEGORIES= multimedia + +MAINTAINER= [email protected] +COMMENT= Intel Video Processing Library API, dispatcher, and examples +WWW= https://www.intel.com/content/www/us/en/developer/tools/vpl/overview.html + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= only Intel GPUs on x86 are supported + +USES= cmake:testing compiler:c++14-lang localbase:ldflags pkgconfig pathfix +PATHFIX_CMAKELISTSTXT=CMakeLists.txt InstallDirs.cmake +USE_CXXSTD= c++14 +USE_GITHUB= yes +GH_ACCOUNT= intel +USE_LDCONFIG= yes + +CMAKE_TESTING_ON= BUILD_TESTS +CONFLICTS_INSTALL= onevpl +DATADIR= ${PREFIX}/share/vpl + +post-patch: + @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ + ${WRKSRC}/libvpl/src/mfx_dispatcher_vpl_loader.cpp + @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ + ${WRKSRC}/libvpl/src/mfx_dispatcher_vpl_lowlatency.cpp + +post-install: + @${FIND} ${STAGEDIR} -name \*.orig -delete + +.include <bsd.port.mk> diff --git a/multimedia/libvpl/distinfo b/multimedia/libvpl/distinfo new file mode 100644 index 000000000000..d6e867916a65 --- /dev/null +++ b/multimedia/libvpl/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1784249375 +SHA256 (intel-libvpl-v2.17.0_GH0.tar.gz) = 4de3e2faf1e8307fb282e4a43f443191810f6a6b0a484fffa7995ba1c814c6ec +SIZE (intel-libvpl-v2.17.0_GH0.tar.gz) = 12974961 diff --git a/multimedia/libvpl/files/patch-api_vpl_mfxdefs.h b/multimedia/libvpl/files/patch-api_vpl_mfxdefs.h new file mode 100644 index 000000000000..865635bd0dc3 --- /dev/null +++ b/multimedia/libvpl/files/patch-api_vpl_mfxdefs.h @@ -0,0 +1,20 @@ +--- api/vpl/mfxdefs.h.orig 2025-04-18 15:44:33 UTC ++++ api/vpl/mfxdefs.h +@@ -64,7 +64,7 @@ extern "C" + #define MFX_PACK_BEGIN_STRUCT_W_PTR() MFX_PACK_BEGIN_X(8) + #define MFX_PACK_BEGIN_STRUCT_W_L_TYPE() MFX_PACK_BEGIN_X(8) + /* 32-bit ILP32 data model Windows* (Intel(r) architecture) */ +-#elif defined(_WIN32) || defined(_M_IX86) && !defined(__linux__) ++#elif defined(_WIN32) || defined(_M_IX86) && !defined(__unix__) + #define MFX_PACK_BEGIN_STRUCT_W_PTR() MFX_PACK_BEGIN_X(4) + #define MFX_PACK_BEGIN_STRUCT_W_L_TYPE() MFX_PACK_BEGIN_X(8) + /* 32-bit ILP32 data model Linux* */ +@@ -99,7 +99,7 @@ extern "C" + #define MFX_DEPRECATED __declspec(deprecated) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg + #define MFX_DEPRECATED_ENUM_FIELD_OUTSIDE(arg) __pragma(deprecated(arg)) +- #elif defined(__linux__) ++ #elif defined(__unix__) + #define MFX_DEPRECATED __attribute__((deprecated)) + #if defined(__cplusplus) + #define MFX_DEPRECATED_ENUM_FIELD_INSIDE(arg) arg __attribute__((deprecated)) diff --git a/multimedia/libvpl/files/patch-libvpl_CMakeLists.txt b/multimedia/libvpl/files/patch-libvpl_CMakeLists.txt new file mode 100644 index 000000000000..58cce5533153 --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_CMakeLists.txt @@ -0,0 +1,11 @@ +--- libvpl/CMakeLists.txt.orig 2025-12-17 23:04:39 UTC ++++ libvpl/CMakeLists.txt +@@ -190,7 +190,7 @@ if(INSTALL_DEV) + # WIN32 in general + set(MINGW_LIBS "-lole32 -lgdi32 -luuid") + endif() +- set(VPL_PKGCONFIG_DEPENDENT_LIBS ++ set(VPL_PKGCONFIG_PRIVATE_LIBS + "${DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${MINGW_LIBS} ${CXX_LIB}") + configure_file("pkgconfig/vpl.pc.in" "pkgconfig/vpl.pc" @ONLY) + install( diff --git a/multimedia/libvpl/files/patch-libvpl_src_linux_device__ids.h b/multimedia/libvpl/files/patch-libvpl_src_linux_device__ids.h new file mode 100644 index 000000000000..f1e76440dcd2 --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_src_linux_device__ids.h @@ -0,0 +1,73 @@ +--- libvpl/src/linux/device_ids.h.orig 2025-04-18 15:44:33 UTC ++++ libvpl/src/linux/device_ids.h +@@ -380,7 +380,62 @@ static inline eMFXHWType get_platform(unsigned int dev + return MFX_HW_UNKNOWN; + } + ++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) ++#if defined(__FreeBSD__) && __FreeBSD__ < 13 ++#include <sys/sysctl.h> ++#else ++#include <sys/ioctl.h> ++#include <fcntl.h> ++#include <unistd.h> ++#endif // defined(__FreeBSD__) && __FreeBSD__ < 13 ++ ++struct drm_pciinfo { ++ uint16_t domain; ++ uint8_t bus; ++ uint8_t dev; ++ uint8_t func; ++ uint16_t vendor_id; ++ uint16_t device_id; ++ uint16_t subvendor_id; ++ uint16_t subdevice_id; ++ uint8_t revision_id; ++}; ++ ++#define DRM_IOCTL_BASE 'd' ++#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type) ++#define DRM_IOCTL_GET_PCIINFO DRM_IOR(0x15, struct drm_pciinfo) ++#endif ++ + static mfxStatus get_devices(std::vector<Device> &allDevices) { ++#ifdef DRM_IOCTL_GET_PCIINFO ++ std::vector <Device> result; ++ for (int i = 0; i < 64; ++i) { ++#if defined(__FreeBSD__) && __FreeBSD__ < 13 ++ std::string mib = "dev.drm." + std::to_string(128 + i) + ".PCI_ID"; ++ char pci_id[20]; ++ size_t len = sizeof(pci_id); ++ if (sysctlbyname(mib.c_str(), pci_id, &len, NULL, 0)) continue; ++ Device device; ++ sscanf(pci_id, "%x:%x", &device.vendor_id, &device.device_id); ++#else ++ std::string path = "/dev/dri/renderD" + std::to_string(128 + i); ++ int fd = open(path.c_str(), O_RDONLY); ++ if (fd == -1) continue; ++ struct drm_pciinfo pinfo; ++ if (ioctl(fd, DRM_IOCTL_GET_PCIINFO, &pinfo)) { ++ close(fd); ++ continue; ++ } ++ Device device = { .vendor_id = pinfo.vendor_id, .device_id = pinfo.device_id }; ++ close(fd); ++#endif // defined(__FreeBSD__) && __FreeBSD__ < 13 ++ if (device.vendor_id != 0x8086) { // Filter out non-Intel devices ++ continue; ++ } ++ device.platform = get_platform(device.device_id); ++ allDevices.emplace_back(device); ++ } ++#else + const char *dir = "/sys/class/drm"; + const char *device_id_file = "/device/device"; + const char *vendor_id_file = "/device/vendor"; +@@ -433,6 +488,7 @@ static mfxStatus get_devices(std::vector<Device> &allD + + allDevices.emplace_back(device); + } ++#endif + + // sort by platform, unknown will appear at beginning + std::sort(allDevices.begin(), allDevices.end(), [](const Device &a, const Device &b) { diff --git a/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl.h b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl.h new file mode 100644 index 000000000000..698008e0d31c --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl.h @@ -0,0 +1,11 @@ +--- libvpl/src/mfx_dispatcher_vpl.h.orig 2025-04-18 15:44:33 UTC ++++ libvpl/src/mfx_dispatcher_vpl.h +@@ -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(__unix__) + // Linux x64 + #define MSDK_LIB_NAME "libmfxhw64." + #define ONEVPL_PRIORITY_PATH_VAR "ONEVPL_PRIORITY_PATH" diff --git a/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__loader.cpp b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__loader.cpp new file mode 100644 index 000000000000..f7812d5a04bc --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__loader.cpp @@ -0,0 +1,27 @@ +--- libvpl/src/mfx_dispatcher_vpl_loader.cpp.orig 2025-12-17 23:04:39 UTC ++++ libvpl/src/mfx_dispatcher_vpl_loader.cpp +@@ -432,13 +432,14 @@ mfxU32 LoaderCtxVPL::GetSearchPathsSystemDefault(std:: + mfxU32 LoaderCtxVPL::GetSearchPathsSystemDefault(std::list<STRING_TYPE> &searchDirs) { + searchDirs.clear(); + +-#ifdef __linux__ ++#ifdef __unix__ + // Add the standard path for libmfx1 install in Ubuntu + searchDirs.push_back("/usr/lib/x86_64-linux-gnu"); + + // Add other default paths + searchDirs.push_back("/lib"); + searchDirs.push_back("/usr/lib"); ++ searchDirs.push_back("%%PREFIX%%/lib"); + searchDirs.push_back("/lib64"); + searchDirs.push_back("/usr/lib64"); + #endif +@@ -450,7 +451,7 @@ mfxU32 LoaderCtxVPL::GetSearchPathsInstallDir(std::lis + mfxU32 LoaderCtxVPL::GetSearchPathsInstallDir(std::list<STRING_TYPE> &searchDirs) { + searchDirs.clear(); + +- #ifdef __linux__ ++ #ifdef __unix__ + STRING_TYPE install_dir = INSTALL_LIBDIR_SEARCH; + searchDirs.push_back(install_dir); + #endif diff --git a/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__lowlatency.cpp b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__lowlatency.cpp new file mode 100644 index 000000000000..a6bcbf2a6bb0 --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__lowlatency.cpp @@ -0,0 +1,30 @@ +--- libvpl/src/mfx_dispatcher_vpl_lowlatency.cpp.orig 2025-12-17 23:04:39 UTC ++++ libvpl/src/mfx_dispatcher_vpl_lowlatency.cpp +@@ -18,7 +18,7 @@ + #define LIB_ONEVPL L"libmfx64-gen.dll" + #define LIB_MSDK L"libmfxhw64.dll" + #endif +-#elif defined(__linux__) ++#elif defined(__unix__) + // Linux x64 + #define LIB_ONEVPL "libmfx-gen.so.1.2" + #define LIB_MSDK "libmfxhw64.so.1" +@@ -191,14 +191,17 @@ mfxStatus LoaderCtxVPL::LoadLibsFromMultipleDirs(LibTy + } + + mfxStatus LoaderCtxVPL::LoadLibsFromMultipleDirs(LibType libType) { +-#ifdef __linux__ ++#ifdef __unix__ + // clang-format off + + // standard paths for RT installation on Linux + std::vector<std::string> llSearchDir = { ++#ifdef __linux__ + "/usr/lib/x86_64-linux-gnu", ++#endif + "/lib", + "/usr/lib", ++ "%%PREFIX%%/lib", + "/lib64", + "/usr/lib64", + }; diff --git a/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__msdk.cpp b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__msdk.cpp new file mode 100644 index 000000000000..7034cdeedfef --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_src_mfx__dispatcher__vpl__msdk.cpp @@ -0,0 +1,131 @@ +--- libvpl/src/mfx_dispatcher_vpl_msdk.cpp.orig 2025-12-17 23:04:39 UTC ++++ libvpl/src/mfx_dispatcher_vpl_msdk.cpp +@@ -11,7 +11,7 @@ + #include "src/mfx_dispatcher_vpl_win.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include <pthread.h> + #define strncpy_s(dst, size, src, cnt) strncpy((dst), (src), (cnt)) // NOLINT + #endif +@@ -97,7 +97,7 @@ static const mfxImplementedFunctions msdkImplFuncs = { + (mfxChar**)msdkImplFuncsNames + }; + +-#ifdef __linux__ ++#ifdef __unix__ + // 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(mfxSession *sessi + mfxInitializationParam vplParam = {}; + vplParam.AccelerationMode = accelMode; + +-#ifdef __linux__ ++#ifdef __unix__ + vplParam.ExtParam = (mfxExtBuffer **)&extParams; + vplParam.NumExtParam = 1; + #else +@@ -183,7 +183,7 @@ mfxStatus LoaderCtxMSDK::GetDefaultAccelType(mfxU32 ad + } + + mfxStatus LoaderCtxMSDK::GetDefaultAccelType(mfxU32 adapterID, mfxIMPL *implDefault, mfxU64 *luid) { +-#ifdef __linux__ ++#ifdef __unix__ + // VAAPI only + *implDefault = MFX_IMPL_VIA_VAAPI; + *luid = 0; +@@ -235,7 +235,7 @@ mfxStatus LoaderCtxMSDK::QueryAPIVersion(STRING_TYPE l + vplParam.AccelerationMode = + (mfxAccelerationMode)CvtAccelType(MFX_IMPL_HARDWARE, implDefault & 0xFF00); + +-#ifdef __linux__ ++#ifdef __unix__ + vplParam.ExtParam = (mfxExtBuffer **)&extParams; + vplParam.NumExtParam = 1; + #else +@@ -279,7 +279,7 @@ mfxStatus LoaderCtxMSDK::QueryMSDKCaps(STRING_TYPE lib + m_libNameFull = libNameFull; + m_deviceID = 0; + +-#ifdef __linux__ ++#ifdef __unix__ + // require pthreads to be linked in for MSDK RT to load + pthread_key_t pkey; + if (pthread_key_create(&pkey, NULL) == 0) { +@@ -504,13 +504,64 @@ mfxU32 read_device_file(std::string &path) { + return result; + } + ++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) ++#if defined(__FreeBSD__) && __FreeBSD__ < 13 ++#include <sys/sysctl.h> ++#else ++#include <sys/ioctl.h> ++#include <fcntl.h> ++#include <unistd.h> ++#endif // defined(__FreeBSD__) && __FreeBSD__ < 13 ++ ++struct drm_pciinfo { ++ uint16_t domain; ++ uint8_t bus; ++ uint8_t dev; ++ uint8_t func; ++ uint16_t vendor_id; ++ uint16_t device_id; ++ uint16_t subvendor_id; ++ uint16_t subdevice_id; ++ uint8_t revision_id; ++}; ++ ++#define DRM_IOCTL_BASE 'd' ++#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type) ++#define DRM_IOCTL_GET_PCIINFO DRM_IOR(0x15, struct drm_pciinfo) ++#endif ++ + mfxStatus LoaderCtxMSDK::GetRenderNodeDescription(mfxU32 adapterID, + mfxU32 &vendorID, + mfxU16 &deviceID) { + vendorID = 0; + deviceID = 0; + +-#if defined(__linux__) ++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) ++#if defined(__FreeBSD__) && __FreeBSD__ < 13 ++ std::string mib = "dev.drm." + std::to_string(128 + adapterID) + ".PCI_ID"; ++ char pci_id[20]; ++ size_t len = sizeof(pci_id); ++ if (sysctlbyname(mib.c_str(), pci_id, &len, NULL, 0)) ++ return MFX_ERR_UNSUPPORTED; ++ sscanf(pci_id, "%x:%x", &vendorID, &deviceID); ++#else ++ std::string path = "/dev/dri/renderD" + std::to_string(128 + adapterID); ++ int fd = open(path.c_str(), O_RDONLY); ++ if (fd == -1) ++ return MFX_ERR_UNSUPPORTED; ++ struct drm_pciinfo pinfo; ++ if (ioctl(fd, DRM_IOCTL_GET_PCIINFO, &pinfo)) { ++ close(fd); ++ return MFX_ERR_UNSUPPORTED; ++ } ++ vendorID = pinfo.vendor_id; ++ deviceID = pinfo.device_id; ++ close(fd); ++#endif // defined(__FreeBSD__) && __FreeBSD__ < 13 ++ if (vendorID != 0x8086 || deviceID == 0) ++ return MFX_ERR_UNSUPPORTED; ++ return MFX_ERR_NONE; ++#elif defined(__linux__) + mfxU32 DRMRenderNodeNum = 128 + adapterID; + std::string nodeStr = std::to_string(DRMRenderNodeNum); + +@@ -583,7 +634,7 @@ mfxStatus LoaderCtxMSDK::QueryExtDeviceID(mfxExtendedD + luidArr >>= 8; + } + } +-#elif defined(__linux__) ++#elif defined(__unix__) + extDeviceID->DRMPrimaryNodeNum = adapterID; + extDeviceID->DRMRenderNodeNum = 128 + adapterID; + #endif diff --git a/multimedia/libvpl/files/patch-libvpl_test_runtimes_stub_src_config.h b/multimedia/libvpl/files/patch-libvpl_test_runtimes_stub_src_config.h new file mode 100644 index 000000000000..730ba7f18783 --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_test_runtimes_stub_src_config.h @@ -0,0 +1,11 @@ +--- libvpl/test/runtimes/stub/src/config.h.orig 2025-12-17 23:04:39 UTC ++++ libvpl/test/runtimes/stub/src/config.h +@@ -13,7 +13,7 @@ + + #include "vpl/mfx.h" + +-#if defined(__linux__) ++#if defined(__unix__) + #define vsprintf_s(s, l, m, a) vsprintf(s, m, a) + #endif + diff --git a/multimedia/libvpl/files/patch-libvpl_test_unit_src_dispatcher__enum__impls.cpp b/multimedia/libvpl/files/patch-libvpl_test_unit_src_dispatcher__enum__impls.cpp new file mode 100644 index 000000000000..4afa28283f95 --- /dev/null +++ b/multimedia/libvpl/files/patch-libvpl_test_unit_src_dispatcher__enum__impls.cpp @@ -0,0 +1,11 @@ +--- libvpl/test/unit/src/dispatcher_enum_impls.cpp.orig 2025-04-18 15:44:33 UTC ++++ libvpl/test/unit/src/dispatcher_enum_impls.cpp +@@ -30,7 +30,7 @@ typedef enum { + #define STUB_RT "libvplstubrt64.dll" + #endif + #endif +-#elif defined(__linux__) ++#elif defined(__unix__) + #define STUB_RT "libvplstubrt1x64.so" + #endif + diff --git a/multimedia/libvpl/pkg-descr b/multimedia/libvpl/pkg-descr new file mode 100644 index 000000000000..5ce7351e0bb9 --- /dev/null +++ b/multimedia/libvpl/pkg-descr @@ -0,0 +1,16 @@ +Intel Video Processing Library (Intel VPL) provides access to hardware +accelerated video decode, encode, and processing capabilities on Intel GPUs +to support AI visual inference, media delivery, cloud gaming, and virtual +desktop infrastructure use cases. + +This repository contains the following components: + +- Copies of the Intel VPL API header files. + The version of the API is listed in the mfxdefs.h file. +- Intel VPL Dispatcher +- Examples demonstrating API usage + +*** IMPORTANT *** + +Intel VPL Tools are no longer in this repository. They have all been +moved to libvpl-tools. diff --git a/multimedia/libvpl/pkg-plist b/multimedia/libvpl/pkg-plist new file mode 100644 index 000000000000..ffc924269e6b --- /dev/null +++ b/multimedia/libvpl/pkg-plist @@ -0,0 +1,113 @@ +etc/vpl/vars.sh +include/vpl/mfx.h +include/vpl/mfxadapter.h +include/vpl/mfxbrc.h +include/vpl/mfxcamera.h +include/vpl/mfxcommon.h +include/vpl/mfxdefs.h +include/vpl/mfxdispatcher.h +include/vpl/mfxdispatcherprefixedfunctions.h +include/vpl/mfxencodestats.h +include/vpl/mfximplcaps.h +include/vpl/mfxjpeg.h +include/vpl/mfxmemory.h +include/vpl/mfxmvc.h +include/vpl/mfxpcp.h +include/vpl/mfxsession.h +include/vpl/mfxstructures.h +include/vpl/mfxsurfacepool.h +include/vpl/mfxvideo++.h +include/vpl/mfxvideo.h +include/vpl/mfxvp8.h +include/vpl/preview/README.txt +include/vpl/preview/legacy/README.txt +include/vpl/preview/legacy/mfxvideo++.h +lib/cmake/vpl/VPLConfig.cmake +lib/cmake/vpl/VPLConfigVersion.cmake +lib/libvpl.so +lib/libvpl.so.2 +lib/libvpl.so.2.17 +libdata/pkgconfig/vpl.pc +%%DATADIR%%/examples/api1x_core/legacy-decode/CMakeLists.txt +%%DATADIR%%/examples/api1x_core/legacy-decode/License.txt +%%DATADIR%%/examples/api1x_core/legacy-decode/README.md +%%DATADIR%%/examples/api1x_core/legacy-decode/src/legacy-decode.cpp +%%DATADIR%%/examples/api1x_core/legacy-decode/src/util.hpp +%%DATADIR%%/examples/api1x_core/legacy-encode/CMakeLists.txt +%%DATADIR%%/examples/api1x_core/legacy-encode/License.txt +%%DATADIR%%/examples/api1x_core/legacy-encode/PreLoad.cmake +%%DATADIR%%/examples/api1x_core/legacy-encode/README.md +%%DATADIR%%/examples/api1x_core/legacy-encode/src/legacy-encode.cpp +%%DATADIR%%/examples/api1x_core/legacy-encode/src/util.hpp +%%DATADIR%%/examples/api1x_core/legacy-vpp/CMakeLists.txt +%%DATADIR%%/examples/api1x_core/legacy-vpp/License.txt +%%DATADIR%%/examples/api1x_core/legacy-vpp/README.md +%%DATADIR%%/examples/api1x_core/legacy-vpp/src/legacy-vpp.cpp +%%DATADIR%%/examples/api1x_core/legacy-vpp/src/util.hpp +%%DATADIR%%/examples/api2x/hello-decode/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-decode/License.txt +%%DATADIR%%/examples/api2x/hello-decode/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-decode/README.md +%%DATADIR%%/examples/api2x/hello-decode/src/hello-decode.cpp +%%DATADIR%%/examples/api2x/hello-decode/src/util.hpp +%%DATADIR%%/examples/api2x/hello-decvpp/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-decvpp/License.txt +%%DATADIR%%/examples/api2x/hello-decvpp/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-decvpp/README.md +%%DATADIR%%/examples/api2x/hello-decvpp/src/hello-decvpp.cpp +%%DATADIR%%/examples/api2x/hello-decvpp/src/util.hpp +%%DATADIR%%/examples/api2x/hello-encode-jpeg/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-encode-jpeg/License.txt +%%DATADIR%%/examples/api2x/hello-encode-jpeg/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-encode-jpeg/README.md +%%DATADIR%%/examples/api2x/hello-encode-jpeg/src/hello-encode-jpeg.cpp +%%DATADIR%%/examples/api2x/hello-encode-jpeg/src/util.hpp +%%DATADIR%%/examples/api2x/hello-encode/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-encode/License.txt +%%DATADIR%%/examples/api2x/hello-encode/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-encode/README.md +%%DATADIR%%/examples/api2x/hello-encode/src/hello-encode.cpp +%%DATADIR%%/examples/api2x/hello-encode/src/util.hpp +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/License.txt +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/README.md +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/include/device-vaapi.h +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/include/util.hpp +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/include/vasurface_wrapper.h +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/src/device-vaapi.cpp +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/src/hello-sharing-vaapi-export.cpp +%%DATADIR%%/examples/api2x/hello-sharing-vaapi/src/hello-sharing-vaapi-import.cpp +%%DATADIR%%/examples/api2x/hello-transcode/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-transcode/License.txt +%%DATADIR%%/examples/api2x/hello-transcode/README.md +%%DATADIR%%/examples/api2x/hello-transcode/src/hello-transcode.cpp +%%DATADIR%%/examples/api2x/hello-transcode/src/util.hpp +%%DATADIR%%/examples/api2x/hello-vpp/CMakeLists.txt +%%DATADIR%%/examples/api2x/hello-vpp/License.txt +%%DATADIR%%/examples/api2x/hello-vpp/PreLoad.cmake +%%DATADIR%%/examples/api2x/hello-vpp/README.md +%%DATADIR%%/examples/api2x/hello-vpp/src/hello-vpp.cpp +%%DATADIR%%/examples/api2x/hello-vpp/src/util.hpp +%%DATADIR%%/examples/content/cars_320x240.bgra +%%DATADIR%%/examples/content/cars_320x240.h264 +%%DATADIR%%/examples/content/cars_320x240.h265 +%%DATADIR%%/examples/content/cars_320x240.i420 +%%DATADIR%%/examples/content/cars_320x240.mjpeg +%%DATADIR%%/examples/content/cars_320x240.nv12 +%%DATADIR%%/examples/content/cars_320x240.y8 +%%DATADIR%%/examples/interop/vpl-infer/CMakeLists.txt +%%DATADIR%%/examples/interop/vpl-infer/CPPLINT.cfg +%%DATADIR%%/examples/interop/vpl-infer/License.txt +%%DATADIR%%/examples/interop/vpl-infer/PreLoad.cmake +%%DATADIR%%/examples/interop/vpl-infer/README.md +%%DATADIR%%/examples/interop/vpl-infer/src/util.hpp +%%DATADIR%%/examples/interop/vpl-infer/src/vpl-infer.cpp +%%DATADIR%%/examples/tutorials/01_transition/License.txt +%%DATADIR%%/examples/tutorials/01_transition/MediaSDK/CMakeLists.txt +%%DATADIR%%/examples/tutorials/01_transition/MediaSDK/cmake/FindMFX.cmake +%%DATADIR%%/examples/tutorials/01_transition/README.md +%%DATADIR%%/examples/tutorials/01_transition/VPL/CMakeLists.txt +%%DATADIR%%/examples/tutorials/01_transition/src/transition.cpp +%%DATADIR%%/licensing/license.txt +%%DATADIR%%/licensing/third-party-programs.txt