Lumiera
The new emerging NLE for GNU/Linux

Towards the upper side of the Lumiera core, in »Steam Layer«, several components and subsystems work together to provide functionality that is close to the requirements of the problem domain — editing and rendering of media. The implementation of these features however requires a foundation of generic, technical services: Memory needs to be allocated, working buffers must be provided and managed, work tasks coordinated. It is hard to associate these responsibilities directly to some specific domain, other than just data processing.

A common trait of all those special aspects of processing is that they require special care and attention to achieve the necessary level of performance, while they are technical in nature and do not directly reflect and model structures of the real world.

Data Handling

The task of editing video and processing media requires to read and write a significant amount of data, while using the capabilities of the hardware to the best degree possible. Lumiera thus needs a foundation layer for high volume data access; two kinds of data handling can be distinguished:

  • The Session and the object models manipulated through the GUI are kept in memory. They will be backed by a storage backend, which provides database-like storage and especially logging, and controlled execution of mutating actions.

  • Media data is handled frame wise — prefetching data asynchronously.

The goal is to optimize CPU utilization; large scale data IO will be performed asynchronously. Data retrieval and processing of prerequisites will be scheduled such as to manage the rendering just in time.