diff --git a/multimedia/Makefile b/multimedia/Makefile index 4dc1fa6afa69..470bf54880ed 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -1,460 +1,461 @@ COMMENT = Multimedia software SUBDIR += Bento4 SUBDIR += QtAV SUBDIR += ab25 SUBDIR += acidrip SUBDIR += aegisub SUBDIR += aom SUBDIR += aravis SUBDIR += arcan SUBDIR += assimp SUBDIR += atomicparsley SUBDIR += audacious SUBDIR += audacious-plugins SUBDIR += av1an SUBDIR += avidemux SUBDIR += avidemux-cli SUBDIR += avidemux-plugins SUBDIR += avidemux-qt5 SUBDIR += avinfo SUBDIR += baka-mplayer SUBDIR += bcmatroska2 SUBDIR += bino SUBDIR += bitstream SUBDIR += blind SUBDIR += bsdbktr_tvtune SUBDIR += butt SUBDIR += camserv SUBDIR += ccextractor SUBDIR += cclive SUBDIR += celluloid SUBDIR += cheese SUBDIR += chilitags SUBDIR += cineencoder SUBDIR += clive SUBDIR += clutter-gst SUBDIR += clutter-gst3 SUBDIR += cmrt SUBDIR += cmrtlib SUBDIR += cx88 SUBDIR += dav1d SUBDIR += deforaos-player SUBDIR += dirac SUBDIR += dragon SUBDIR += dtv-scan-tables SUBDIR += dumpmpeg SUBDIR += dv2sub SUBDIR += dvb-apps SUBDIR += dvbcut SUBDIR += dvbsnoop SUBDIR += dvd-slideshow SUBDIR += dvdauthor SUBDIR += dvdid SUBDIR += dvdread SUBDIR += dvdrip SUBDIR += dvdstyler SUBDIR += elementary-videos SUBDIR += emby-server SUBDIR += emovix SUBDIR += ffaudioconverter SUBDIR += ffdec SUBDIR += ffmpeg SUBDIR += ffmpeg2theora SUBDIR += ffmpegthumbnailer SUBDIR += ffms2 SUBDIR += filebot SUBDIR += flvmeta SUBDIR += flvstreamer SUBDIR += flvtool++ SUBDIR += fpc-dts SUBDIR += fpc-libvlc SUBDIR += fxtv SUBDIR += gaupol SUBDIR += gavl SUBDIR += gdialog SUBDIR += get_iplayer SUBDIR += gmerlin SUBDIR += gmmlib SUBDIR += gmp-api SUBDIR += gmtk SUBDIR += gnome-mplayer SUBDIR += gnome-twitch SUBDIR += gpac-libgpac SUBDIR += gpac-mp4box SUBDIR += gpodder SUBDIR += grake SUBDIR += gst123 SUBDIR += gstreamer1 SUBDIR += gstreamer1-editing-services SUBDIR += gstreamer1-libav SUBDIR += gstreamer1-plugins SUBDIR += gstreamer1-plugins-all SUBDIR += gstreamer1-plugins-aom SUBDIR += gstreamer1-plugins-assrender SUBDIR += gstreamer1-plugins-bad SUBDIR += gstreamer1-plugins-core SUBDIR += gstreamer1-plugins-dash SUBDIR += gstreamer1-plugins-dts SUBDIR += gstreamer1-plugins-dv SUBDIR += gstreamer1-plugins-dvdread SUBDIR += gstreamer1-plugins-gnonlin SUBDIR += gstreamer1-plugins-good SUBDIR += gstreamer1-plugins-hls SUBDIR += gstreamer1-plugins-kate SUBDIR += gstreamer1-plugins-libde265 SUBDIR += gstreamer1-plugins-mpeg2dec SUBDIR += gstreamer1-plugins-mpeg2enc SUBDIR += gstreamer1-plugins-mplex SUBDIR += gstreamer1-plugins-msdk SUBDIR += gstreamer1-plugins-openh264 SUBDIR += gstreamer1-plugins-resindvd SUBDIR += gstreamer1-plugins-rtmp SUBDIR += gstreamer1-plugins-rust SUBDIR += gstreamer1-plugins-smoothstreaming SUBDIR += gstreamer1-plugins-svt-av1 SUBDIR += gstreamer1-plugins-svt-hevc SUBDIR += gstreamer1-plugins-svt-vp9 SUBDIR += gstreamer1-plugins-theora SUBDIR += gstreamer1-plugins-ttml SUBDIR += gstreamer1-plugins-ugly SUBDIR += gstreamer1-plugins-v4l2 SUBDIR += gstreamer1-plugins-vpx SUBDIR += gstreamer1-plugins-x264 SUBDIR += gstreamer1-plugins-x265 SUBDIR += gstreamer1-qt SUBDIR += gstreamer1-rtsp-server SUBDIR += gstreamer1-transcoder SUBDIR += gstreamer1-vaapi SUBDIR += gstreamer1-validate SUBDIR += gstreamermm SUBDIR += gtk-youtube-viewer SUBDIR += handbrake SUBDIR += haruna SUBDIR += harvid SUBDIR += hypnotix SUBDIR += imagination SUBDIR += intel-media-sdk SUBDIR += iriverter SUBDIR += iso2mkv SUBDIR += jmref SUBDIR += kaffeine SUBDIR += kamoso SUBDIR += kdemultimedia SUBDIR += kdemultimedia-ffmpegthumbs SUBDIR += kdenlive SUBDIR += kf5-kmediaplayer SUBDIR += kmplayer SUBDIR += kodi SUBDIR += kodi-addon-inputstream.adaptive SUBDIR += kodi-addon-peripheral.joystick SUBDIR += kodi-addon-pvr.hts SUBDIR += kodi-addon-pvr.iptvsimple SUBDIR += kodi-addon-screensaver.biogenesis SUBDIR += kodi-addon-screensaver.matrixtrails SUBDIR += kodi-addon-screensaver.stars SUBDIR += kodi-addon-visualization.fishbmc SUBDIR += kodi-addon-visualization.shadertoy SUBDIR += kodi-addon-visualization.spectrum SUBDIR += kooha SUBDIR += kvazaar SUBDIR += l-smash SUBDIR += libaacs SUBDIR += libass SUBDIR += libbdplus SUBDIR += libbluray SUBDIR += libcec SUBDIR += libdc1394 SUBDIR += libdca SUBDIR += libdcadec SUBDIR += libde265 SUBDIR += libdv SUBDIR += libdvbcsa SUBDIR += libdvbpsi SUBDIR += libdvdcss SUBDIR += libdvdnav SUBDIR += libdvdread SUBDIR += libfame SUBDIR += libgav1 SUBDIR += libhdhomerun SUBDIR += libkate SUBDIR += libmatroska SUBDIR += libmediaart SUBDIR += libmediainfo SUBDIR += libmpeg2 SUBDIR += libmpeg3 SUBDIR += libmtp SUBDIR += libndi SUBDIR += libopenshot SUBDIR += libquicktime SUBDIR += libquicktime-lame SUBDIR += libquvi SUBDIR += libquvi-scripts SUBDIR += libquvi-scripts09 SUBDIR += libquvi09 SUBDIR += librav1e SUBDIR += librespot SUBDIR += librist SUBDIR += librtmp SUBDIR += libtheora SUBDIR += libtuner SUBDIR += libuvc SUBDIR += libv4l SUBDIR += libva SUBDIR += libva-glx SUBDIR += libva-intel-driver SUBDIR += libva-intel-hybrid-driver SUBDIR += libva-intel-media-driver SUBDIR += libva-utils SUBDIR += libva-vdpau-driver SUBDIR += libvdpau SUBDIR += libvdpau-va-gl SUBDIR += libvlcpp SUBDIR += libvpx SUBDIR += libx264 SUBDIR += libxine SUBDIR += libxspf SUBDIR += libzen SUBDIR += linux-c7-libtheora SUBDIR += linux-c7-libv4l SUBDIR += linux-tsmuxer SUBDIR += linux_dvbwrapper-kmod SUBDIR += livego SUBDIR += lives SUBDIR += livestreamer SUBDIR += lms SUBDIR += lsdvd SUBDIR += m2tstoavi SUBDIR += m2vrequantiser SUBDIR += makemkv SUBDIR += mediainfo SUBDIR += mencoder SUBDIR += minisatip SUBDIR += minitube SUBDIR += mjpegtools SUBDIR += mjpg-streamer SUBDIR += mkclean SUBDIR += mkvalidator SUBDIR += mkvtoolnix SUBDIR += mkxvcd SUBDIR += mlt6 SUBDIR += mlt6-qt5 SUBDIR += mlt7 SUBDIR += mlt7-qt5 SUBDIR += mmsclient SUBDIR += mmsrip SUBDIR += motion SUBDIR += mp3cd SUBDIR += mp4v2 SUBDIR += mpc-qt SUBDIR += mpeg2codec SUBDIR += mpeg2play SUBDIR += mpeg_encode SUBDIR += mpeg_play SUBDIR += mpeg_stat SUBDIR += mpgtx SUBDIR += mplayer SUBDIR += mplayer-skins SUBDIR += mplex SUBDIR += mps-youtube SUBDIR += mpv SUBDIR += mpv-mpris SUBDIR += mpvpaper SUBDIR += msdl SUBDIR += msopenh264 SUBDIR += mswebrtc SUBDIR += musikcube SUBDIR += musique SUBDIR += mxflib SUBDIR += mythtv SUBDIR += mythtv-frontend SUBDIR += naludump SUBDIR += navidrome SUBDIR += neolink SUBDIR += nordlicht SUBDIR += nostt SUBDIR += obs-audio-spectralizer SUBDIR += obs-ndi SUBDIR += obs-qtwebkit SUBDIR += obs-scrab SUBDIR += obs-streamfx SUBDIR += obs-studio SUBDIR += obs-transition-matrix SUBDIR += obs-v4l2sink SUBDIR += obs-websocket SUBDIR += oggvideotools SUBDIR += ogmrip SUBDIR += ogmtools SUBDIR += olive SUBDIR += omxplayer + SUBDIR += onevpl SUBDIR += openh264 SUBDIR += openshot SUBDIR += opentoonz SUBDIR += oscam SUBDIR += p5-Audio-M4P SUBDIR += p5-FFmpeg-Command SUBDIR += p5-FLV-Info SUBDIR += p5-File-Format-RIFF SUBDIR += p5-MP4-Info SUBDIR += p5-Net-UPnP SUBDIR += p5-Subtitles SUBDIR += p5-Umph-Prompt SUBDIR += pHash SUBDIR += peek SUBDIR += phonon SUBDIR += phonon-designerplugin SUBDIR += phonon-gstreamer SUBDIR += phonon-vlc SUBDIR += photofilmstrip SUBDIR += php-pHash SUBDIR += pipewire SUBDIR += pitivi SUBDIR += playerctl SUBDIR += plexmediaserver SUBDIR += plexmediaserver-plexpass SUBDIR += podcastdl SUBDIR += poe SUBDIR += ppm2fli SUBDIR += projectx SUBDIR += ptx-kmod SUBDIR += pwcbsd SUBDIR += pwcview SUBDIR += py-PySceneDetect SUBDIR += py-av SUBDIR += py-cec SUBDIR += py-enzyme SUBDIR += py-ffmpeg-python SUBDIR += py-gstreamer1 SUBDIR += py-guessit SUBDIR += py-librtmp SUBDIR += py-mat2 SUBDIR += py-metadata-cleaner SUBDIR += py-mido SUBDIR += py-mlt6 SUBDIR += py-moviepy SUBDIR += py-periscope SUBDIR += py-pretty_midi SUBDIR += py-pymediainfo SUBDIR += py-qt5-multimedia SUBDIR += py-qt5-multimediawidgets SUBDIR += py-soco SUBDIR += py-subliminal SUBDIR += py-tvnamer SUBDIR += qmmp-plugin-pack-qt5 SUBDIR += qmmp-qt5 SUBDIR += qt-faststart SUBDIR += qt5-multimedia SUBDIR += quodlibet SUBDIR += quvi SUBDIR += quvi09 SUBDIR += qwinff SUBDIR += rage SUBDIR += rav1e SUBDIR += recmpeg SUBDIR += recordmydesktop SUBDIR += replex SUBDIR += rtmpdump SUBDIR += rubygem-av SUBDIR += rubygem-clutter-gstreamer SUBDIR += rubygem-flvtool2 SUBDIR += rubygem-gstreamer SUBDIR += rubygem-paperclip-av-transcoder SUBDIR += rubygem-paperclip-av-transcoder-rails50 SUBDIR += rubygem-streamio-ffmpeg SUBDIR += sabbu SUBDIR += schroedinger SUBDIR += scte35dump SUBDIR += shotcut SUBDIR += simplescreenrecorder SUBDIR += smpeg SUBDIR += smpeg2 SUBDIR += smplayer SUBDIR += smplayer-skins SUBDIR += smplayer-themes SUBDIR += smtube SUBDIR += snapcast SUBDIR += snappy SUBDIR += spigot SUBDIR += spook SUBDIR += streamlink SUBDIR += subsync SUBDIR += subtitlecomposer SUBDIR += subtitleoffsetmodifier SUBDIR += subtitleripper SUBDIR += subtools SUBDIR += svt-av1 SUBDIR += svt-hevc SUBDIR += svt-vp9 SUBDIR += syncplay SUBDIR += szap-s2 SUBDIR += tautulli SUBDIR += tcmplex-panteltje SUBDIR += termplay SUBDIR += tinyobjloader SUBDIR += tivodecode SUBDIR += totem SUBDIR += totem-pl-parser SUBDIR += transcode SUBDIR += tstools SUBDIR += tvheadend SUBDIR += umph SUBDIR += ustreamer SUBDIR += v4l-utils SUBDIR += v4l_compat SUBDIR += vamps SUBDIR += vapoursynth SUBDIR += vapoursynth-l-smash-works SUBDIR += vapoursynth-vmaf SUBDIR += vcdgear SUBDIR += vcdimager SUBDIR += vdpauinfo SUBDIR += vdr SUBDIR += vdr-plugin-control SUBDIR += vdr-plugin-eepg SUBDIR += vdr-plugin-epgsearch SUBDIR += vdr-plugin-extrecmenu SUBDIR += vdr-plugin-femon SUBDIR += vdr-plugin-infosatepg SUBDIR += vdr-plugin-iptv SUBDIR += vdr-plugin-markad SUBDIR += vdr-plugin-osdpip SUBDIR += vdr-plugin-osdteletext SUBDIR += vdr-plugin-reelchannelscan SUBDIR += vdr-plugin-remote SUBDIR += vdr-plugin-skinenigmang SUBDIR += vdr-plugin-sleeptimer SUBDIR += vdr-plugin-streamdev SUBDIR += vdr-plugin-ttxtsubs SUBDIR += vdr-plugin-vdrmanager SUBDIR += vdr-plugin-vnsiserver SUBDIR += vdr-plugin-wirbelscan SUBDIR += vdr-plugin-xineliboutput SUBDIR += vdr-plugin-xvdr SUBDIR += vdr-plugins SUBDIR += vid.stab SUBDIR += vlc SUBDIR += vmaf SUBDIR += vtkmpeg2encode SUBDIR += vvdec SUBDIR += w_scan2 SUBDIR += webcamd SUBDIR += webcamoid SUBDIR += webvfx-qt5 SUBDIR += wf-recorder SUBDIR += win32-codecs SUBDIR += winff SUBDIR += wlrobs SUBDIR += x264 SUBDIR += x265 SUBDIR += xanim SUBDIR += xawtv SUBDIR += xfce4-parole SUBDIR += xine SUBDIR += xporthdmv SUBDIR += xvid SUBDIR += yamdi SUBDIR += ytfzf SUBDIR += zart SUBDIR += zoneminder .include diff --git a/multimedia/onevpl/Makefile b/multimedia/onevpl/Makefile new file mode 100644 index 000000000000..f390a2b5aa1f --- /dev/null +++ b/multimedia/onevpl/Makefile @@ -0,0 +1,44 @@ +PORTNAME= oneVPL +DISTVERSIONPREFIX= v +DISTVERSION= 2021.6.0 +CATEGORIES= multimedia + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= oneAPI Video Processing Library dispatcher, tools, and examples + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= only Intel GPUs on x86 are supported + +LIB_DEPENDS= libdrm.so:graphics/libdrm \ + libwayland-client.so:graphics/wayland \ + libva.so:multimedia/libva + +USES= cmake:testing compiler:c++17-lang localbase:ldflags pkgconfig +USE_GITHUB= yes +USE_LDCONFIG= yes +GH_ACCOUNT= oneapi-src +CMAKE_TESTING_ON= BUILD_TESTS + +OPTIONS_DEFINE= PYTHON +OPTIONS_DEFAULT=PYTHON +OPTIONS_SUB= yes + +PYTHON_USES= python +PYTHON_BUILD_DEPENDS= pybind11>0:devel/pybind11 +PYTHON_CMAKE_BOOL= BUILD_PYTHON_BINDING + +post-patch: + @${REINPLACE_CMD} -e '/pkgconfig/s,FULL_LIBDIR},PREFIX}/libdata,' \ + ${WRKSRC}/dispatcher/CMakeLists.txt + @${REINPLACE_CMD} -e 's,/usr,${PREFIX},' \ + ${WRKSRC}/dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp + @${REINPLACE_CMD} -e '/PKG_CONFIG/s,_lib,_prefix/libdata,' \ + ${WRKSRC}/modulefiles/vpl + +post-install: + @${FIND} ${STAGEDIR} -name \*.orig -delete + +.include diff --git a/multimedia/onevpl/distinfo b/multimedia/onevpl/distinfo new file mode 100644 index 000000000000..7a88bb23c4ea --- /dev/null +++ b/multimedia/onevpl/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1631573462 +SHA256 (oneapi-src-oneVPL-v2021.6.0_GH0.tar.gz) = c83590c4b0d12c4a48f4cbf4b6e8d595bf1f6f96bb262d21457793d19f7b2b6a +SIZE (oneapi-src-oneVPL-v2021.6.0_GH0.tar.gz) = 3034593 diff --git a/multimedia/onevpl/files/patch-basename b/multimedia/onevpl/files/patch-basename new file mode 100644 index 000000000000..e0c6ae560c26 --- /dev/null +++ b/multimedia/onevpl/files/patch-basename @@ -0,0 +1,22 @@ +POSIX basename allows modifying the argument, so make a local copy + +tools/legacy/sample_common/src/vaapi_utils.cpp:30:28: error: no matching function for call to 'basename' + so_handle = dlopen(basename(name), RTLD_GLOBAL | RTLD_NOW); + ^~~~~~~~ +/usr/include/libgen.h:39:7: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier +char *basename(char *); + ^ + +--- tools/legacy/sample_common/src/vaapi_utils.cpp.orig 2021-09-13 22:51:02 UTC ++++ tools/legacy/sample_common/src/vaapi_utils.cpp +@@ -26,7 +26,9 @@ SimpleLoader::SimpleLoader(const char* name) { + dlerror(); + so_handle = dlopen(name, RTLD_GLOBAL | RTLD_NOW); + if (NULL == so_handle) { +- so_handle = dlopen(basename(name), RTLD_GLOBAL | RTLD_NOW); ++ char dlname[PATH_MAX + 1]; ++ strncpy(dlname, name, sizeof(dlname)); ++ so_handle = dlopen(basename(dlname), RTLD_GLOBAL | RTLD_NOW); + if (NULL == so_handle) { + std::cerr << dlerror() << std::endl; + throw std::runtime_error("Can't load library"); diff --git a/multimedia/onevpl/files/patch-drm-to-pciid b/multimedia/onevpl/files/patch-drm-to-pciid new file mode 100644 index 000000000000..a33d8e31f37b --- /dev/null +++ b/multimedia/onevpl/files/patch-drm-to-pciid @@ -0,0 +1,82 @@ +/sys/class/drm/renderD*/device/device is Linux-only, so use a BSD extension +to get vendor/device identifiers from rendor nodes. Based on libdrm code. + +$ ffmpeg -hide_banner -init_hw_device qsv=auto -i foo.y4m -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -y foo.mkv +[AVHWDeviceContext @ 0x8062d0140] Error initializing an MFX session: -3. +Device creation failed: -1313558101. +Failed to set value 'qsv=auto' for option 'init_hw_device': Unknown error occurred +Error parsing global options: Unknown error occurred + +--- dispatcher/linux/device_ids.h.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/linux/device_ids.h +@@ -420,7 +420,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 ++#else ++#include ++#include ++#include ++#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 &allDevices) { ++#ifdef DRM_IOCTL_GET_PCIINFO ++ std::vector 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"; +@@ -456,6 +511,7 @@ static mfxStatus get_devices(std::vector &allD + + allDevices.emplace_back(device); + } ++#endif + + // sort by device_id + std::sort(allDevices.begin(), allDevices.end(), [](const Device &a, const Device &b) { diff --git a/multimedia/onevpl/files/patch-include b/multimedia/onevpl/files/patch-include new file mode 100644 index 000000000000..f3c3559e96e1 --- /dev/null +++ b/multimedia/onevpl/files/patch-include @@ -0,0 +1,16 @@ +Add missing headers + +tools/legacy/sample_common/src/vaapi_utils.cpp:29:28: error: use of undeclared identifier 'basename' + so_handle = dlopen(basename(name), RTLD_GLOBAL | RTLD_NOW); + ^ + +--- tools/legacy/sample_common/src/vaapi_utils.cpp.orig 2021-09-13 22:51:02 UTC ++++ tools/legacy/sample_common/src/vaapi_utils.cpp +@@ -8,6 +8,7 @@ + + #include "vaapi_utils.h" + #include ++ #include + #include + + //#if defined(LIBVA_DRM_SUPPORT) diff --git a/multimedia/onevpl/files/patch-private-libs b/multimedia/onevpl/files/patch-private-libs new file mode 100644 index 000000000000..43874cd594c7 --- /dev/null +++ b/multimedia/onevpl/files/patch-private-libs @@ -0,0 +1,13 @@ +Reduce overlinking when not using static library + +--- dispatcher/CMakeLists.txt.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/CMakeLists.txt +@@ -174,7 +174,7 @@ if(BUILD_DEV) + if(NOT MSVC) + set(CXX_LIB "-lstdc++") + 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/onevpl/files/patch-sched b/multimedia/onevpl/files/patch-sched new file mode 100644 index 000000000000..8012f025d8bb --- /dev/null +++ b/multimedia/onevpl/files/patch-sched @@ -0,0 +1,33 @@ +Disable non-POSIX scheduling policies if not supported + +tools/legacy/sample_common/src/vm/thread_linux.cpp:279:16: error: use of undeclared identifier 'SCHED_BATCH' + type = SCHED_BATCH; + ^ +tools/legacy/sample_common/src/vm/thread_linux.cpp:282:16: error: use of undeclared identifier 'SCHED_IDLE' + type = SCHED_IDLE; + ^ + +--- tools/legacy/sample_common/src/vm/thread_linux.cpp.orig 2021-09-13 22:51:02 UTC ++++ tools/legacy/sample_common/src/vm/thread_linux.cpp +@@ -275,15 +275,21 @@ mfxStatus msdk_thread_get_schedtype(const msdk_char* s + else if (!msdk_strcmp(str, MSDK_STRING("other"))) { + type = SCHED_OTHER; + } ++#ifdef SCHED_BATCH + else if (!msdk_strcmp(str, MSDK_STRING("batch"))) { + type = SCHED_BATCH; + } ++#endif ++#ifdef SCHED_IDLE + else if (!msdk_strcmp(str, MSDK_STRING("idle"))) { + type = SCHED_IDLE; + } ++#endif ++ //#ifdef SCHED_DEADLINE + // else if (!msdk_strcmp(str, MSDK_STRING("deadline"))) { + // type = SCHED_DEADLINE; + // } ++ //#endif + else { + return MFX_ERR_UNSUPPORTED; + } diff --git a/multimedia/onevpl/files/patch-unix b/multimedia/onevpl/files/patch-unix new file mode 100644 index 000000000000..1a5a4d2c1907 --- /dev/null +++ b/multimedia/onevpl/files/patch-unix @@ -0,0 +1,320 @@ +Relax Linux checks for the code works on any non-Windows platform. + +dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp:171:16: error: use of undeclared identifier 'MFX' + sts = MFX::SelectImplementationType(adapterID, &implTest, &VendorID, &DeviceID, luid); + ^ +dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp:322:5: error: use of undeclared identifier 'strncpy_s' + strncpy_s(m_id.ImplName, sizeof(m_id.ImplName), strImplName, sizeof(strImplName)); + ^ +dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp:323:5: error: use of undeclared identifier 'strncpy_s' + strncpy_s(m_id.License, sizeof(m_id.License), strLicense, sizeof(strLicense)); + ^ +dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp:324:5: error: use of undeclared identifier 'strncpy_s' + strncpy_s(m_id.Keywords, sizeof(m_id.Keywords), strKeywords, sizeof(strKeywords)); + ^ +dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp:339:28: warning: suggest braces around initialization of subobject [-Wmissing-braces] + if (IsVersionSupported(MAKE_MFX_VERSION(1, 19), m_id.ApiVersion)) { + ^~~~~~~~~~~~~~~~~~~~~~~ +dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp:583:43: error: use of undeclared identifier 'MSDK_LIB_NAME' + if (libInfo->libNameFull.find(MSDK_LIB_NAME) != std::string::npos) { + ^ + +--- api/vpl/mfxdefs.h.orig 2021-09-13 22:51:02 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)) +--- dispatcher/vpl/mfx_dispatcher_vpl.h.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/vpl/mfx_dispatcher_vpl.h +@@ -47,7 +47,7 @@ typedef char CHAR_TYPE; + // Windows x64 + #define MSDK_LIB_NAME L"libmfxhw64." + #endif +-#elif defined(__linux__) ++#elif defined(__unix__) + // Linux x64 + #define MSDK_LIB_NAME "libmfxhw64." + #endif +--- dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp +@@ -400,7 +400,9 @@ mfxU32 LoaderCtxVPL::GetSearchPathsSystemDefault(std:: + #ifdef __linux__ + // Add the standard path for libmfx1 install in Ubuntu + searchDirs.push_back("/usr/lib/x86_64-linux-gnu"); ++#endif + ++#ifdef __unix__ + // Add other default paths + searchDirs.push_back("/lib"); + searchDirs.push_back("/usr/lib"); +@@ -1057,7 +1059,7 @@ mfxStatus LoaderCtxVPL::QueryLibraryCaps() { + // update number of valid MSDK adapters + numImplMSDK++; + +-#ifdef __linux__ ++#ifdef __unix__ + // currently only one adapter on Linux (avoid multiple copies) + break; + #endif +--- dispatcher/vpl/mfx_dispatcher_vpl_lowlatency.cpp.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/vpl/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" +--- dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp.orig 2021-09-13 22:51:02 UTC ++++ dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp +@@ -10,7 +10,7 @@ + #include "vpl/mfx_dispatcher_vpl_win.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #define strncpy_s(dst, size, src, cnt) strcpy((dst), (src)) // NOLINT + #endif +@@ -155,7 +155,7 @@ mfxAccelerationMode LoaderCtxMSDK::CvtAccelType(mfxIMP + } + + mfxStatus LoaderCtxMSDK::GetDefaultAccelType(mfxU32 adapterID, mfxIMPL *implDefault, mfxU64 *luid) { +-#ifdef __linux__ ++#ifdef __unix__ + // VAAPI only + *implDefault = MFX_IMPL_VIA_VAAPI; + *luid = 0; +@@ -242,7 +242,7 @@ mfxStatus LoaderCtxMSDK::QueryMSDKCaps(STRING_TYPE lib + + m_libNameFull = libNameFull; + +-#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) { +--- examples/coreAPI/legacy-decode/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/coreAPI/legacy-decode/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/coreAPI/legacy-encode/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/coreAPI/legacy-encode/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/coreAPI/legacy-vpp/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/coreAPI/legacy-vpp/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/hello/hello-createsession/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/hello/hello-createsession/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/hello/hello-decvpp/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/hello/hello-decvpp/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/hello/hello-transcode/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/hello/hello-transcode/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #endif + +--- examples/interop/advanced-decvpp-infer/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/interop/advanced-decvpp-infer/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- examples/interop/hello-decode-infer/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/interop/hello-decode-infer/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #endif + +--- examples/interop/legacy-decode-infer/src/util.h.orig 2021-09-13 22:51:02 UTC ++++ examples/interop/legacy-decode-infer/src/util.h +@@ -30,7 +30,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +--- preview/cplusplus/examples/hello-decode-cpp/src/util.hpp.orig 2021-09-13 22:51:02 UTC ++++ preview/cplusplus/examples/hello-decode-cpp/src/util.hpp +@@ -21,7 +21,7 @@ + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +@@ -63,7 +63,7 @@ const struct { + X = NULL; \ + } \ + } +-#elif defined(__linux__) ++#elif defined(__unix__) + #ifdef LIBVA_SUPPORT + #include "va/va.h" + #include "va/va_drm.h" +--- preview/cplusplus/examples/hello-encode-cpp/src/util.hpp.orig 2021-09-13 22:51:02 UTC ++++ preview/cplusplus/examples/hello-encode-cpp/src/util.hpp +@@ -21,7 +21,7 @@ + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +@@ -63,7 +63,7 @@ const struct { + X = NULL; \ + } \ + } +-#elif defined(__linux__) ++#elif defined(__unix__) + #ifdef LIBVA_SUPPORT + #include "va/va.h" + #include "va/va_drm.h" +--- preview/python/binding/vpl_python.hpp.orig 2021-09-13 22:51:02 UTC ++++ preview/python/binding/vpl_python.hpp +@@ -15,6 +15,6 @@ + + namespace py = pybind11; + +-#ifdef __linux__ ++#ifdef __unix__ + #define strncpy_s(dst, size, src, cnt) strncpy((dst), (src), cnt) // NOLINT + #endif +--- tools/cli/decvpp_tool/util.hpp.orig 2021-09-13 22:51:02 UTC ++++ tools/cli/decvpp_tool/util.hpp +@@ -31,7 +31,7 @@ enum { + #include "vpl/mfxdispatcher.h" + #endif + +-#ifdef __linux__ ++#ifdef __unix__ + #include + #include + #endif +@@ -62,7 +62,7 @@ const struct { + X = NULL; \ + } \ + } +-#elif defined(__linux__) ++#elif defined(__unix__) + #ifdef LIBVA_SUPPORT + #include "va/va.h" + #include "va/va_drm.h" +@@ -541,7 +541,7 @@ mfxStatus InitAcceleratorHandle(mfxSession session, in + if (sts != MFX_ERR_NONE) + return sts; + +-#if defined(__linux) ++#if defined(__unix) + #ifdef LIBVA_SUPPORT + if ((impl & MFX_IMPL_VIA_VAAPI) == MFX_IMPL_VIA_VAAPI) { + if (!fd) +@@ -579,7 +579,7 @@ mfxStatus InitAcceleratorHandle(mfxSession session, in + } + + void FreeAcceleratorHandle(void *accelHandle, int fd) { +-#if defined(__linux) ++#if defined(__unix) + #ifdef LIBVA_SUPPORT + vaTerminate((VADisplay)accelHandle); + close(fd); +--- tools/legacy/sample_encode/src/sample_encode.cpp.orig 2021-09-13 22:51:02 UTC ++++ tools/legacy/sample_encode/src/sample_encode.cpp +@@ -53,7 +53,7 @@ void PrintHelp(msdk_char* strAppName, const msdk_char* + + msdk_printf(MSDK_STRING(" If codecid is jpeg, -q option is mandatory.)\n")); + msdk_printf(MSDK_STRING("Options: \n")); +-#if __linux__ ++#if __unix__ + msdk_printf(MSDK_STRING(" [-device /path/to/device] - set graphics device for processing\n")); + msdk_printf( + MSDK_STRING(" For example: '-device /dev/dri/card0'\n")); +@@ -532,7 +532,7 @@ mfxStatus ParseInputString(msdk_char* strInput[], mfxU + return MFX_ERR_UNSUPPORTED; + } + } +-#if __linux__ ++#if __unix__ + else if (0 == msdk_strcmp(strInput[i], MSDK_STRING("-device"))) { + if (!pParams->strDevicePath.empty()) { + msdk_printf(MSDK_STRING("error: you can specify only one device\n")); diff --git a/multimedia/onevpl/pkg-descr b/multimedia/onevpl/pkg-descr new file mode 100644 index 000000000000..fd9414e21ef3 --- /dev/null +++ b/multimedia/onevpl/pkg-descr @@ -0,0 +1,12 @@ +The oneAPI Video Processing Library (oneVPL) provides a single video +processing API for encode, decode, and video processing that works +across a wide range of accelerators. + +This package contains the following components of oneVPL: + +- Copies of the oneVPL Specification API header files +- oneVPL dispatcher +- Examples demonstrating API usage +- oneVPL command line tools + +WWW: https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onevpl.html diff --git a/multimedia/onevpl/pkg-plist b/multimedia/onevpl/pkg-plist new file mode 100644 index 000000000000..5e90b23839fa --- /dev/null +++ b/multimedia/onevpl/pkg-plist @@ -0,0 +1,142 @@ +bin/decvpp_tool +bin/sample_decode +bin/sample_encode +bin/sample_multi_transcode +bin/sample_vpp +bin/vpl-inspect +include/vpl/mfx.h +include/vpl/mfxadapter.h +include/vpl/mfxbrc.h +include/vpl/mfxcommon.h +include/vpl/mfxdefs.h +include/vpl/mfxdispatcher.h +include/vpl/mfxdispatcherprefixedfunctions.h +include/vpl/mfximplcaps.h +include/vpl/mfxjpeg.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/bitstream.hpp +include/vpl/preview/defs.hpp +include/vpl/preview/detail/frame_interface.hpp +include/vpl/preview/detail/sdk_callable.hpp +include/vpl/preview/detail/string_helpers.hpp +include/vpl/preview/detail/variant.hpp +include/vpl/preview/exception.hpp +include/vpl/preview/extension_buffer.hpp +include/vpl/preview/extension_buffer_list.hpp +include/vpl/preview/frame_pool.hpp +include/vpl/preview/frame_surface.hpp +include/vpl/preview/future.hpp +include/vpl/preview/impl_caps.hpp +include/vpl/preview/impl_selector.hpp +include/vpl/preview/options.hpp +include/vpl/preview/payload.hpp +include/vpl/preview/property_name.hpp +include/vpl/preview/session.hpp +include/vpl/preview/source_reader.hpp +include/vpl/preview/stat.hpp +include/vpl/preview/surface_pool.hpp +include/vpl/preview/video_param.hpp +include/vpl/preview/vpl.hpp +lib/cmake/vpl/VPLConfig.cmake +lib/cmake/vpl/VPLConfigVersion.cmake +lib/libvpl.so +lib/libvpl.so.2 +lib/libvpl.so.2.5 +lib/oneVPL/libvpl_wayland.so +%%PYTHON%%lib/python/pyvpl%%PYTHON_EXT_SUFFIX%%.so +libdata/pkgconfig/vpl.pc +%%DATADIR%%/env/vars.sh +%%DATADIR%%/examples/content/cars_128x96.h265 +%%DATADIR%%/examples/content/cars_128x96.i420 +%%DATADIR%%/examples/content/cars_128x96.mjpeg +%%DATADIR%%/examples/content/cars_128x96.nv12 +%%DATADIR%%/examples/coreAPI/legacy-decode/CMakeLists.txt +%%DATADIR%%/examples/coreAPI/legacy-decode/License.txt +%%DATADIR%%/examples/coreAPI/legacy-decode/README.md +%%DATADIR%%/examples/coreAPI/legacy-decode/sample.json +%%DATADIR%%/examples/coreAPI/legacy-decode/src/legacy-decode.cpp +%%DATADIR%%/examples/coreAPI/legacy-decode/src/util.h +%%DATADIR%%/examples/coreAPI/legacy-encode/CMakeLists.txt +%%DATADIR%%/examples/coreAPI/legacy-encode/License.txt +%%DATADIR%%/examples/coreAPI/legacy-encode/PreLoad.cmake +%%DATADIR%%/examples/coreAPI/legacy-encode/README.md +%%DATADIR%%/examples/coreAPI/legacy-encode/sample.json +%%DATADIR%%/examples/coreAPI/legacy-encode/src/legacy-encode.cpp +%%DATADIR%%/examples/coreAPI/legacy-encode/src/util.h +%%DATADIR%%/examples/coreAPI/legacy-vpp/CMakeLists.txt +%%DATADIR%%/examples/coreAPI/legacy-vpp/License.txt +%%DATADIR%%/examples/coreAPI/legacy-vpp/README.md +%%DATADIR%%/examples/coreAPI/legacy-vpp/sample.json +%%DATADIR%%/examples/coreAPI/legacy-vpp/src/legacy-vpp.cpp +%%DATADIR%%/examples/coreAPI/legacy-vpp/src/util.h +%%DATADIR%%/examples/hello/hello-createsession/CMakeLists.txt +%%DATADIR%%/examples/hello/hello-createsession/License.txt +%%DATADIR%%/examples/hello/hello-createsession/PreLoad.cmake +%%DATADIR%%/examples/hello/hello-createsession/README.md +%%DATADIR%%/examples/hello/hello-createsession/sample.json +%%DATADIR%%/examples/hello/hello-createsession/src/hello-createsession.cpp +%%DATADIR%%/examples/hello/hello-createsession/src/util.h +%%DATADIR%%/examples/hello/hello-decvpp/CMakeLists.txt +%%DATADIR%%/examples/hello/hello-decvpp/License.txt +%%DATADIR%%/examples/hello/hello-decvpp/PreLoad.cmake +%%DATADIR%%/examples/hello/hello-decvpp/README.md +%%DATADIR%%/examples/hello/hello-decvpp/sample.json +%%DATADIR%%/examples/hello/hello-decvpp/src/hello-decvpp.cpp +%%DATADIR%%/examples/hello/hello-decvpp/src/util.h +%%DATADIR%%/examples/hello/hello-transcode/CMakeLists.txt +%%DATADIR%%/examples/hello/hello-transcode/License.txt +%%DATADIR%%/examples/hello/hello-transcode/README.md +%%DATADIR%%/examples/hello/hello-transcode/sample.json +%%DATADIR%%/examples/hello/hello-transcode/src/hello-transcode.cpp +%%DATADIR%%/examples/hello/hello-transcode/src/util.h +%%DATADIR%%/examples/interop/advanced-decvpp-infer/CMakeLists.txt +%%DATADIR%%/examples/interop/advanced-decvpp-infer/CPPLINT.cfg +%%DATADIR%%/examples/interop/advanced-decvpp-infer/License.txt +%%DATADIR%%/examples/interop/advanced-decvpp-infer/PreLoad.cmake +%%DATADIR%%/examples/interop/advanced-decvpp-infer/README.md +%%DATADIR%%/examples/interop/advanced-decvpp-infer/sample.json +%%DATADIR%%/examples/interop/advanced-decvpp-infer/src/advanced-decvpp-infer.cpp +%%DATADIR%%/examples/interop/advanced-decvpp-infer/src/util.h +%%DATADIR%%/examples/interop/hello-decode-infer/CMakeLists.txt +%%DATADIR%%/examples/interop/hello-decode-infer/CPPLINT.cfg +%%DATADIR%%/examples/interop/hello-decode-infer/License.txt +%%DATADIR%%/examples/interop/hello-decode-infer/PreLoad.cmake +%%DATADIR%%/examples/interop/hello-decode-infer/README.md +%%DATADIR%%/examples/interop/hello-decode-infer/sample.json +%%DATADIR%%/examples/interop/hello-decode-infer/src/hello-decode-infer.cpp +%%DATADIR%%/examples/interop/hello-decode-infer/src/util.h +%%DATADIR%%/examples/interop/legacy-decode-infer/CMakeLists.txt +%%DATADIR%%/examples/interop/legacy-decode-infer/CPPLINT.cfg +%%DATADIR%%/examples/interop/legacy-decode-infer/License.txt +%%DATADIR%%/examples/interop/legacy-decode-infer/README.md +%%DATADIR%%/examples/interop/legacy-decode-infer/sample.json +%%DATADIR%%/examples/interop/legacy-decode-infer/src/legacy-decode-infer.cpp +%%DATADIR%%/examples/interop/legacy-decode-infer/src/util.h +%%DATADIR%%/examples/preview/cplusplus/hello-decode-cpp/CMakeLists.txt +%%DATADIR%%/examples/preview/cplusplus/hello-decode-cpp/License.txt +%%DATADIR%%/examples/preview/cplusplus/hello-decode-cpp/README.md +%%DATADIR%%/examples/preview/cplusplus/hello-decode-cpp/src/hello-decode.cpp +%%DATADIR%%/examples/preview/cplusplus/hello-decode-cpp/src/util.hpp +%%DATADIR%%/examples/preview/cplusplus/hello-encode-cpp/CMakeLists.txt +%%DATADIR%%/examples/preview/cplusplus/hello-encode-cpp/License.txt +%%DATADIR%%/examples/preview/cplusplus/hello-encode-cpp/README.md +%%DATADIR%%/examples/preview/cplusplus/hello-encode-cpp/src/hello-encode.cpp +%%DATADIR%%/examples/preview/cplusplus/hello-encode-cpp/src/util.hpp +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-decode-py/License.txt +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-decode-py/README.md +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-decode-py/hello-decode.py +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-encode-py/License.txt +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-encode-py/README.md +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-encode-py/hello-encode.py +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-vpp-py/License.txt +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-vpp-py/README.md +%%PYTHON%%%%DATADIR%%/examples/preview/python/hello-vpp-py/hello-vpp.py +%%DATADIR%%/modulefiles/vpl