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 our CMakeLists.txt is 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