MediaElch's Dependencies
May 11, 2023 ยท View on GitHub
State: last updated 2023-05-11
MediaElch has a few dependencies. This document describes which dependencies are used and why they are necessary (i.e. for what they are used).
Runtime Dependencies
These dependencies are required to run MediaElch.
For Windows, macOS and the Linux AppImage, they are bundled into the binary/download file. Note that on Linux (not the AppImage, though) runtime dependencies are downloaded through the system's package manager so the used versions may be older than the ones provided by MediaElch.
| Dependency | Version | Description | License |
|---|---|---|---|
| Qt | >= 5.6 || >= 6.2 | Qt is the GUI framework upon which MediaElch is build. | LGPLv3 |
| ffmpeg | ffmpeg is used to create screenshots of movies. That's it! For all systems except Linux we use the latest version available. | LGPLv2.1 / GPL 2 or later | |
| MediaInfoLib | >v20 | MediaInfo is used to gather video file details like the resolution, etc. For all systems except Linux we use the latest version available and only support MediaInfoLib versions that are available on the oldest still supported Ubuntu LTS release. | BSD 2-Clause License |
| Zenlib | ZenLib is a dependency of MediaInfoLib. MediaElch uses it for some string conversions that are related to MediaInfo. | zlib License | |
| QuaZip | 1.4 |
A library which allows us to use Minizip with Qt. The latter is also part of Qt, so we don't explicitly install it. Even though we use v1.4 by default, v0.9 is still supported. |
LGPLv2.1 + static linking exception |
Build Dependencies
These dependencies are either required for building the MediaElch binary or for building and running our tests.
- CMake
CMake is our build system generator. It will replace QMake once ourCMakeLists.txtis mature enough. - C++ Compiler (GCC/Clang/...)
For obvious reasons, we require a C++ compiler. C++ compilers must support C++14 or higher. In the future with Qt6, C++17 will be required. - Catch2
Catch2 is our testing framework. Please refer to our Testing document for more details. - QtTest
Some testing logic requires Qt's test module, e.g.QAbstractItemModelTester