February 6, 2008

Cinelerra community forks the video editor

Author: Thomas King

The community surrounding Cinelerra, one of the premier non-linear video editors for Linux, has decided to strike off in its own direction and rewrite Cinelerra under a new codebase.

Cinelerra has its roots in Broadcast 2000, a rewrite of Broadcast 2.1 in the late 1990s by its owner Heroine Virtual Ltd. (HV), a mysterious group that has stated its anonymity is necessary to keep the division between personal and professional projects. The Broadcast 2000 name was discontinued in September 2001, and Cinelerra 1.0.0 appeared in August 2002 using the same codebase.

A community of users, developers, and Linux students eventually grew up around Cinelerra and tried to offer patches and fixes to HV. According to the Cinelerra site, "As time passes and new students come and go from the Linux scene, new forks of Cinelerra emerge that are more suited to the community but not what Heroine Virtual Ltd. needs." HV did not accept a significant amount of the updates, patches, and requests made by the community.

As a result, the Cinelerra community decided in April 2003 to maintain its own copy of HV's open source code, bringing about Cinelerra-CV. The project's Web site says, "[W]e maintain a copy that is fairly similar to the official release (i.e. we don't do code-tidying patches) [b]ut apply our bug fixes, compiler compliance fixes, and enhancements.... Thus the CV has a number of features that the official version does not have."

Gaps between the two Cinelerra development ideals became more evident last summer after community members began delving into the current code. According to Hermann Vosseler from the Cinelerra-CV community, "Chances are that by simply continuing as we always did, Cinelerra will suddenly be really outdated. Some other free tool with many effect plugins, bangs, and whistles -- but delivering only amateur quality -- will eventually take most of the user base, leaving the (obviously small number of) people needing professional grade quality with no free alternative to the commercial video editing solutions."

A new direction

The realization that HV and the Cinelerra community have different goals prompted a new milestone. The community is now creating a total rewrite of Cinelerra and striking out on its own, starting with version 3.

"Initially," says Vosseler, "we wanted to create a breach by reworking some inner parts of the existing codebase. This made us choose the name Cinelerra-3, as all of the current development is in the 2.x line. But it became clear that HV doesn't want to participate in such an effort. We don't need to reinvent video editing from scratch, because basically Cinelerra's approach is valid; and we can't reuse much code from the current code base because of its structural deficiencies."

Although HV remains cordial with the Cinelerra community and does not deride the effort, its spokesman stresses, "Heroine Virtual's roadmap is to reduce bloat, increase reliability, and focus on value instead of popularity." HV has requested that the new, forked version no longer use Cinelerra in its name. On the Cinelerra-CV mailing list, it asked, "Could you rename it something besides Cinelerra for version 3? As the creator of Cinelerra, we have a different schedule and feature set and would like to avoid the confusion of a version 3 from website B which is released before a version 2.2 from website A or a version 4 from website C which is completely different than version 5 from website D."

In the "already coding, but pre-alpha" stage, the community is happily obliging by looking for a new name. The core team for Cinelerra-3 (or Cin-3) has asked the community to brainstorm for a new name at the same time it is seeking programmers to help flesh out the new codebase. "We have an architecture draft (and a vision), we have more detailed plannings for some modules," Vosseler says. "We jumped into coding these first modules in August 2007, and we have a test suite but no finished modules yet."

Vosseler further explained Cin-3's status and needs:

"We are in a very early stage. We need people willing to get deeply involved, engage in design discussions, take a subsystem and substantiate the planning and start turning it into working code in accordance with what's already there. (Re)writing a video editor is thrilling, because you need to cover a broad range of skills and abstraction levels.

  • We have the large task of creating a high-performance data back end. Most of this will be done in plain C. We already have some contributors here, but the task is huge and requires experience in system programming, video and audio processing, writing performance critical code....
  • The middle layer -- where the editing operations are carried out -- is thoroughly object-oriented and implemented in C++. At the moment, I am working alone here. Lots of different tasks and subsystems are to be targeted, needing experience with large layered architectures, design patterns, modern C++ programming. I won't waste my time with "OO sucks, plain C is cleaner" discussions though.
  • We could use the help of people knowledgeable with current media production workflow to catch up with the necessary interfaces and integration hooks.
  • For now, we postponed the GUI, but we really need the help of people able to plan, design, and coordinate the implementation of an interface suitable for professional work. Supporting the openness and high degree of configurability we are about to implement in the bottom and middle layers is a real challenge at the GUI level and probably requires us to go beyond the conventional."

For the new code, contributors will have equal rights with each other, and use a distributed development model backed by the Git version control system.

So what does this mean for the current HV and the symbiotic Cinelerra-CV versions? The HV spokesman states, "We don't promise new features except for more bug fixes and migration to a newer Linux derivative." Asked if the community's Cinelerra-CV version will continue development alongside Heroine Virtual's version, Vosseler says, "Doing so seems reasonable. Cinelerra-2.x-CV is the same codebase. Lately, there was some brainstorming to allow the CV version to diverge a bit more from the HV version, which you could well read as 'even if it diverges a bit more, it is the same codebase.' Maybe Cin-3 inspires the other devs to invent some new things -- who knows?

"Personally, I am interested in Cinelerra-2.x being usable for day-to-day editing work, because it will be a looong journey for Cin-3 to even catch up."

Developers who wish to get involved with Cin-3 can join the Cinelerra-CV mailing list, sign in on the #cinelerra IRC channel through freenode.net, or email Hermann Vosseler or Christian Thaeter for more information.


  • Graphics & Multimedia
  • Open Source
  • News
Click Here!