Lumiera
The new emerging NLE for GNU/Linux

Nov 8, 2023 on #lumiera 22:30 - 23:30 UTC

Participants

  • ichthyo

  • benny

  • cehteh

Summary written by Ichthyo


Wikipedia

Igor Vladimirsky contacted Ichthyo last week regarding a mention of Lumiera in the context of Cinelerra. He was involved with the Cinelerra-CV project and already contributed several improvements to the Wikipedia entry for Cinelerra, which includes a mention of »the Lumiera rewrite« since April 2008. Igor rightfully pointed out that Lumiera is not a fork of Cinelerra and the description of the project’s origin might be too much biased towards the developer’s perspective at that time. This critique extends also to the descriptions at the introductory pages of the Lumiera website itself; these characterisations were written during the same founding phase and not much reviewed ever since. After some exchange of proposals and ideas, an update and reformulation of the introductory pages was accomplished. The update to the content at Wikipedia, which Igor thankfully completed, was a good opportunity to add some further sources, notably an archive.org link to an article at Linux.com and remove a [citation needed] tag.

→ see the reworked “About” and “FAQ” pages
→ section in the Wikipedia page for Cinelerra.

Development Summary

As usual, Ichthyo summarises the progress of coding work under the umbrella of the »Playback Vertical Slice«. Activities were focussed on integration of developed components and parts forming the Scheduler Service at the core of the Render Engine. Some further aspects were addressed, notably the proper use of locking and a new scheme to distribute available computing capacity in accordance to the planned schedule and an integrated load indicator. The Scheduler implementation is now largely complete and passes the component integration tests. The level of performance observed using short bursts of load seems adequate and scheduling delay is mostly dominated by the leeway of the OS thread scheduling and caching effects.

The next step would be to setup some meaningful load- and stress testing, using a synthetic load, which can be adjusted to reflect typical patterns of the expected load in actual usage. Care has to be taken however to distil an indicator actually describing the scheduling overhead and to avoid capturing just the overall system performance.

Investigation: Video Display

Benny continued his research regarding solutions for video display in the GUI. We agreed previously that the current “vertical slice” affords the opportunity to try out available mainstream solutions to find out more about their strength and weaknesses. Benny decided to look at GStreamer first, since this framework is in very widespread use, with tutorials and documentation readily available. He conducted some experiments and was able to put together a demo which decodes an AVI file and displays the video content into a given GTK window. The following investigations will focus on the details how to inject arbitrary content into such a display, without directly relying on the complete decoding and rendering pipeline of GStreamer, since we intend to use the Lumiera Render Engine to coordinate all processing and manage all resources.

Another point worth mentioning is the fact that the GTK project intends to discontinue support of the Xlib / X.org output backend, focussing entirely on Wayland. GStreamer fully supports Wayland already.

Ichthyo adds that he intends to use directly generated video content for this “vertical slice”, so to avoid involving any file-IO. It seems quite feasible to use libCairo (which is already a project dependency and well known) do draw some simple animation. This code could than be packaged as a generator node and used in the more or less synthetic node graph, which will be provided by the setup for this integration effort.

Coding News

During all the past years, it was customary to publish a “coding news” report at fall time. There was much progress in the Lumiera project lately, since Ichthyo was able to quit his regular work job this spring to focus entirely on his personal programming and artwork projects. The “vertical slice” however will not be completed this year, and thus we agreed to author the usual news update now, while providing an additional report once the work will be completed and we are able to demonstrate running video display in the GUI.


Next meeting

The next meeting will be Wednesday Dec 13, 20:00 UTC. You are welcome to join.