Skip to content

Latest commit

 

History

History
47 lines (41 loc) · 13.9 KB

THIRD_PARTY.md

File metadata and controls

47 lines (41 loc) · 13.9 KB

Third-party components

The project license applies to original project code, not to dependencies. This inventory is a release-review aid, not a complete license manifest or legal clearance for the generated Windows bundle.

Component Role Upstream information
Qt 6.12.0 (qtbase: Qt Core, Gui, Widgets and Network, and the Windows platform, Windows style, GIF, ICO and JPEG image and schannel TLS plugins) The window, and its update check's HTTPS: Qt's official prebuilt libraries for MSVC 2022, unmodified, put beside VideoMetricsLab.exe by windeployqt (scripts/build_release.ps1) as separate DLLs, which can be replaced with others of the same version Qt licensing: the LGPL 3, shipped as licenses/LICENSE.qt-lgpl-3.0.txt, with the GPL 3 it adds to (licenses/LICENSE.gpl-3.0.txt); third-party code in Qt; the source is qtbase-everywhere-src-6.12.0.tar.xz
Qt 6.12.0's translations (qttranslations: translations/qtbase_*.qm, for the languages the app is translated into) Qt's own dialogs and buttons (Yes, No, Cancel, the file dialogs) in the app's language: Qt's official prebuilt files, unmodified BSD 3-Clause, shipped as licenses/LICENSE.qt-translations-bsd-3-clause.txt; the source is qttranslations-everywhere-src-6.12.0.tar.xz
nlohmann/json 3.12.0 Reading and writing JSON (settings, saved scores, results), compiled into VideoMetricsLab.exe and VideoMetricsLab-cli.exe from its single header, unmodified (cpp/third_party/nlohmann) nlohmann/json, MIT, shipped as licenses/LICENSE.nlohmann-json.txt
miniz 3.1.2 The saved scores' .npz files (zip archives), compiled into both programs from its release's source file, unmodified (cpp/third_party/miniz) miniz, MIT, shipped as licenses/LICENSE.miniz.txt
Microsoft Visual C++ runtime (msvcp140.dll, vcruntime140.dll and the others the app's programs and Qt import) The app's runtime, beside its programs: Visual Studio 2022's redistributable files, copied by scripts/build_release.ps1 Visual Studio 2022's distributable code
dav1d 1.5.4 dav1d.dll (resources/tools/ffmpeg/) The AV1 decoder for the software frame decoder and Video Compare's playback on a GPU without AV1 decoding, beside FFmpeg's libraries, loaded at run time through its API's structures as native/dav1d/dav1d_api.h mirrors them: VideoLAN's release source (dav1d-1.5.4.tar.xz, pinned by its SHA-256), unmodified, built by scripts/build_dav1d.ps1 with MinGW-w64 and NASM; reproducible dav1d, BSD-2-Clause, shipped as licenses/COPYING.dav1d.txt beside it
FFmpeg and libvmaf External metric/probing tools, not bundled by default; FFmpeg's libvmaf calculates VMAF, VMAF NEG and VMAF v1 on the CPU, with PSNR, SSIM and XPSNR in the same run FFmpeg legal information, VMAF license
Netflix VMAF v1 model files Optional built-in model data passed to external libvmaf VMAF source models, BSD-2-Clause-Patent license
libjxl SSIMULACRA2 and Butteraugli tools (v0.12.0) Bundled CPU perceptual metrics libjxl releases, libjxl licenses, SSIMULACRA2 license, Butteraugli license
Vship libvship.dll, three builds GPU SSIMULACRA2, Butteraugli and CVVDP: vulkan/ (any GPU with a Vulkan driver; built from the v5.1.2 tag (commit 5a62793) by scripts/build_vship_vulkan.ps1 with MinGW-w64 g++ and Khronos Vulkan-Headers 3c65a01, unmodified; reproducible in any folder, SHA-256 14a3c1aa9d0192bb8ff94d09c4c2dec8d8537627a04c5e2743bc3f2711c07d56), nvidia/ (CUDA: the v5.1.2 release's libvship_NVIDIA.dll, SHA-256 999e33d0ffb31a9b7fd1e75481935941390fb797e6f7c9cc50075e6fbe5bcdae) and amd/ (HIP: the v5.1.1 release's, as 5.1.2 has no HIP build); only the libraries are bundled Vship source, releases and MIT license, shipped notices in resources/tools/vship/licenses/
libvmaf libvmaf.dll with CUDA VMAF and VMAF NEG on NVIDIA GPUs when Settings > GPU metrics > GPU backend is CUDA or Vulkan cannot run (resources/tools/libvmaf/): libvmaf-fast, the build resources/tools/libvmaf/libvmaf-fast.json names: now its release v1.1, installed by scripts/fetch_libvmaf_fast.ps1, built from its fast branch at 994b1814: libvmaf master b41d2340 with 13 upstream pull requests merged (CUDA fixes, listed in its README.md), built with MSVC and CUDA 13.4, C runtime linked in; SHA-256 f8224bf8b7d5b5184674faa0cff70d1bac0fdc163c63583a9935f57ff6f164a3. It contains pthreads4w (pthread-win32, GerHobbelt's fork, via libvmaf's submodule), nv-codec-headers' CUDA loader and libvmaf-fast's XPSNR extractor, a port of FFmpeg's xpsnr filter; the NVIDIA driver is loaded at run time, and no CUDA runtime is shipped libvmaf, BSD-2-Clause-Patent, pthreads4w (Apache-2.0 from version 3, except four autoconf files not used here; its source headers still carry the old LGPL text), nv-codec-headers, MIT, FFmpeg's XPSNR filter, LGPL-2.1-or-later (its source is libvmaf-fast's libvmaf/src/feature/xpsnr.c); shipped notices in resources/tools/libvmaf/licenses/
NVIDIA frame decoder nvdec_frames.dll (this project's, native/nvdec_frames.cpp) Decodes the GPU metrics' videos on NVIDIA GPUs (resources/native/), built by scripts/build_gpu_frames.ps1; reproducible. It contains nv-codec-headers' NVDEC and CUDA definitions (commit eddcea9, as libvmaf's) and loads the NVIDIA driver's nvcuda.dll and nvcuvid.dll at run time; nothing NVIDIA's is shipped nv-codec-headers, MIT; shipped notice in resources/native/licenses/
Software frame decoder software_frames.dll (this project's, native/software_frames.cpp) Decodes, in the scoring process, the videos FFmpeg would decode in software for the GPU metrics and the app's PSNR, SSIM and XPSNR (resources/native/), built by scripts/build_gpu_frames.ps1; reproducible. It is compiled against FFmpeg 9.0.2's public headers (native/ffmpeg: declarations, structure layouts and small inline functions) and calls, at run time, FFmpeg's libraries below and dav1d.dll (for AV1, through the layouts of dav1d's public headers): the dav1d above FFmpeg, LGPL 2.1 or later (headers; shipped notice native/ffmpeg/LICENSE.ffmpeg.txt in the source), dav1d, BSD-2-Clause
FFmpeg 9.0.2's libavcodec, libavformat, libavutil, libswresample and libswscale (resources/tools/ffmpeg/: avcodec-63.dll, avformat-63.dll, avutil-61.dll, swresample-7.dll, swscale-10.dll) The software frame decoder's H.264, HEVC, VVC, VP9, MPEG-2 and FFV1 decoders (libavcodec imports libswresample), and what Video Compare's playback reads videos, decodes their pictures (those decoders, AV1 and ProRes, and Direct3D 11's video decoding) and soundtracks, and converts pictures and sound with. Built from FFmpeg's release source, ffmpeg-9.0.2.tar.xz (SHA-256 8c3850283eb25fa026482078a04051e0be17347b09ef81a0849bec15a96e002e), unmodified, by scripts/build_ffmpeg_decoders.ps1 with MinGW-w64 GCC 16 and NASM: configured LGPL (no --enable-gpl, no --enable-nonfree), with only the decoders, parsers and demuxers the script lists and nothing external; the configure line is in the script and in the libraries (avcodec_configuration()); reproducible (the link time fixed). SHA-256 of the committed DLLs: avcodec-63.dll d140ff88b016890b5f0ce190541ca97a04dab44e6e7ded0491d960d0395d10b6, avformat-63.dll 0e42151e775556adf1d07853581c46aba8317b6fcb006068ec0d2ebd76c9a3c6, avutil-61.dll a5292d2aa4e2a9a06f80c466d52089a9c4d0f2f00368b626cf62591836738277, swresample-7.dll 8f0f4d0bcae9355ce1b270b6249dd7579d893be64065e9ba56b86ed5d0c29e33, swscale-10.dll 1e3ebfc1c2bfa24e9d588d0c80c046cf6d0baa6336732139af1ad7a5c39c5614. Separate DLLs the app loads at run time, which can be replaced with others of the same versions FFmpeg, LGPL 2.1 or later; shipped licence resources/tools/ffmpeg/licenses/COPYING.LGPLv2.1.txt; the corresponding source is the release archive above with the script
Intel and AMD frame decoders vpl_frames.dll, amf_frames.dll and mf_frames.dll (this project's, native/vpl_frames.cpp, native/amf_frames.cpp, native/mf_frames.cpp: AMD's GPU through Windows' own Media Foundation decoders) Decode the GPU metrics' videos on Intel and AMD GPUs (resources/native/), built by scripts/build_gpu_frames.ps1; reproducible. They contain oneVPL's API definitions (commit 674d015), the AMF SDK's (v1.5.3) and, in amf_frames.dll and mf_frames.dll, Khronos' Vulkan headers (commit 3c65a01) with its picture hand-over's compute shader (native/amf_handover.slang, compiled by scripts/build_amf_shader.py), and load Intel's libvpl.dll and AMD's amfrt64.dll and vulkan-1.dll, which come with their graphics drivers, at run time; nothing Intel's or AMD's is shipped oneVPL, MIT, AMF, MIT, Vulkan-Headers, MIT; shipped notices in resources/native/licenses/
VMAF's features with Vulkan, vmaf_vulkan.dll VMAF and VMAF NEG, and VMAF v1's features, on every GPU (resources/tools/vmaf_vulkan/): this project's port, now in libvmaf-fast (fast/vulkan, same release), of libvmaf's CUDA feature extractors, and of its CPU ADM, motion, CAMBI and SpEED chroma extractors for VMAF v1, to Vulkan compute shaders, with libvmaf's SpEED covariance code compiled in: a derived work of libvmaf at the commit and pull requests above; built with MSVC (C runtime linked in), Slang 2026.10.2 for the shaders and Khronos Vulkan-Headers 3c65a01 (headers only); SHA-256 e0ce9bc5690c232dd9f1705c3c597ddd3c98b0556d1101b2faa9efc97a88c16b. The Vulkan driver is loaded at run time libvmaf, BSD-2-Clause-Patent (shipped as resources/tools/vmaf_vulkan/licenses/LICENSE.libvmaf.txt); Slang, Apache-2.0 with LLVM exception (build tool, not shipped); Vulkan-Headers, Apache-2.0 or MIT
Film grain synthesis d3d11_film_grain.dll (this project's, native/d3d11_film_grain.cpp) Video Compare's VVC film grain (H.274's frequency filtering model, SMPTE RDD 5) (resources/native/), built by scripts/build_d3d11_film_grain.ps1 with MinGW-w64 g++. It contains RDD 5's tables as JVET's VVC reference software has them (native/h274/h274_tables.h, from VTM's SEIFilmGrainSynthesizer.cpp) VTM's BSD licence; shipped notice LICENSE.vtm.txt beside the native libraries (licenses/)
MinGW-w64 winpthreads and the GCC runtime, linked into the Vulkan libvship.dll and the frame decoders Threads for the self-built Vship Vulkan library and the GPU frame decoders winpthreads license (shipped as resources/tools/vship/licenses/LICENSE.winpthreads.txt); libgcc and libstdc++ under the GCC Runtime Library Exception

Qt's LGPL distribution requirements need attention: its libraries ship as Qt built them, as separate DLLs beside the programs.

The Vship command-line executable and FFMS2 DLL are intentionally not bundled; the app feeds frames to Vship's library API (the 5.1 C API) instead, decoded by FFmpeg or by the GPU's own decoder through the frame decoders above, from the compressed stream FFmpeg copies out of the container. The Vulkan build needs only the GPU driver's vulkan-1.dll. When no build can use a GPU -- no driver or runtime, or initialization fails -- GPU scoring is off for that run: SSIMULACRA2 and Butteraugli use the bundled libjxl CPU tools, and CVVDP, which has no CPU implementation, is not calculated.

For each release, record exact versions/build configurations, retain license and copyright notices, identify applicable source availability and library replacement requirements, and provide the required materials with the release. Do not assume that keeping FFmpeg external resolves licensing for the bundled FFmpeg libraries. Seek qualified advice if the distribution obligations are unclear. No project license choice waives third-party obligations.

Also review screenshots and fixture media for permission to redistribute. Do not replace third-party copyright notices with the project's 4KVCD notice.