Lumiera
The new emerging NLE for GNU/Linux

Lumiera is written for GNU/Linux.
We try to get the best out of modern system programming techniques to reach a solid performance and good throughput. Lumiera shall scale with the provided Hardware, the more RAM and the more/faster CPU’s you have the better. Nevertheless lower end 32bit machines are supported too.

Secondary targets will be other free operating systems which offer a decent Posix API. Porting to other more or less similar platforms will be possible, if — by coincidence — Someone™ helps with porting.

Having said that — for the time being, the core team won’t spend much effort on porting.

Platform

We develop and test on standard PC hardware, 32 and 64 bit. It is intended to target other platforms running GNU/Linux eventually. Lumiera expects a ‘standard’ desktop installation running a XServer.

Graphics

There are no special requirements for the graphic system. Hardware acceleration will likely be added later through extensions, but will remain strictly optional.
[For the time being, we’ll watch the evolution in that area and might revisit that topic when there are more compelling and widely supported solutions available]

Disks

No special requirements. Video editing requires decent disk speed though, so it is suggested to use a fast/big array of disks configured as raid.

Special Hardware

Support for special hardware would be possible, but depends on certain conditions

  • we need access / donations for the hardware

  • Specs and APIs must be open.

  • someone to do the actual interfacing and support needs to join the team

Compatibility

We try to keep our depdendencies close to Debian/stable and the most recent Ubuntu LTS. Whenever we need more recent libraries or other dependencies not available for our reference platform, we care to provide custom Debian / Ubuntu packages as reference. This does not mean Lumiera is limited to Devian flavours, it should work on any current Linux distribution.

Languages and Tools

  • C / C++

    • a C99 / C++17 compatible compiler
      [in practice, we build using GCC and occasionally we check using Clang]

    • GCC 7 or Clang 6 should be fine
      [basically we try to use just the stock language. On rare occasions in the past, we did use some GCC extensions, like typeof(), but we care for workarounds, in case this becomes a problem. Incidentally, typeof() is obsoleted by the new C++ standard, which provides decltype() for this purpose.]
      .

  • BOOST (listed below are the Debian package names)

    • libboost-dev (at least 1.67)

    • libboost-program-options-dev

    • libboost-program-options-dev

    • libboost-filesystem-dev

  • Script languages

    • Python (2.x) might still be handy for build scripts.
      [SCons supports both Python 2.x and Python 3.x transparently. Basically there is no reason to stick to Python 2.x — just the standard python is not yet switched on Debian/stable, and so we might miss out on some scripts.]

    • bash (some test scripts use bash specific extensions)

Build Tools

  • Git

  • SCons 2.0
    [we build with SCons >= 3.0 since a long time. However, since the times of 2.0, there are no major breaking improvements we rely on — so chances are that the Build works fine with older versions. In addition, we use some SCons plug-ins, which are all shipped in-tree (admin/scons)]

  • pkg-config

  • Doxygen

We maintain a Debian/Ubuntu package (relying on debhelper, CDBS, git-buildpackage)

Libraries

  • BOOST

  • NoBug

  • GAVL (for raw media support)

  • ALSA: libasound2-dev

  • for the GUI: (GTK-3) gtkmm-3.0 gdlmm-3.0 glibmm-2.4 cairomm-1.0 xv

    • libgtkmm-3.0-dev

    • libcairomm-1.0-dev

    • libglibmm-2.4-dev, requiring at least glib2.0 (2.40 or better) and gthread-2.0

    • libxv-dev
      [for the XV viewer widget gui/output/xvdisplayer.cpp  — currently obsolete as of 5/2015]
      TODO 5/2015 and X-lib

    • librsvg-2.0 and librsvg2-dev for rendering Icons

    • libgdl-3 (3.12 or better) through libgdlmm-3 — the »Gnome Docking Library«
      [GDL isn’t directly related to GNOME any more. We contributed to the improvement of this library in the past. These improvements went upstream with GDL-2.27. At times, we used to ship our own GDL package. Right now, a recent upstream version together with the corresponding *mm-bindings will do. We provide a debian package for the latter, until they will be available in the official Debian/Ubuntu/Mint repos. But we don’t have any special requirements on these gdlmm bindings.]