1st October 2004 by Derek Kite

This Week...

Highlights of this week: XML autoindenter in Kate. Rendering speedups in Kolourpaint. New media:/ kioslave. Improved SQL parser in Kexi. Konversation adds support for SSL. Summary of Network-Integrated Multimedia Middleware, from the aKademy presentations.
Why would a free and open multimedia framework not be acceptable in the next Kde? We have at least two network multimedia frameworks available, NMM and MAS. Neither would fill all the requirements, but both have solid mature codebases, have solved the network multimedia challenge. With some help and contributions from developers, they could be a good fit.

We can gain an important insight into how the free software development community works. Not all free software projects are created equal. In what way? The seemingly disorganized, free wheeling nature of this project and most successful FOSS projects disguise a very important characteristic; The project is not dependant on one contributor. What would happen if the Saarland University decided to change focus from computer graphics and multimedia to say medieval tapestry? Or more realistically, the important players in either projects moved on to something else? Would there be a community of developers to carry on with the work? Or would Kde again be stuck with an unmaintained multimedia architecture?

To be fair, it isn't uncommon for free software projects to be the work of one person or a small group. Especially where the technology is challenging. A multimedia architecture has to make noise in some way, but it takes a concentrated effort to make a network system work at all. Sometimes these projects don't have anything to show, hence attract users and developers, until the work is almost done. Nonetheless, having open bug reporting systems, developer lists and the possibility of outside code contributions would indicate a willingness to court the community. Without those in place however, one would question whether the intentions to build a community could be successful.

The need for networked multimedia, the requirements of screen readers and the desires of those who want high end multimedia editing tools are the itches. They are being scratched by developers in many projects. The seemingly haphazard ways of free software is working. Kde needs a multimedia backend, and soon. Only time will tell which is the best fit, so in the short term we will have access to all of them.
Marco Lohse gave a presentation at aKademy called Network-Integrated Multimedia Middleware (Slides, Transcript, Audio, Video).

This was a very busy presentation, with lots of information. I won't cover all the points raised, so I encourage you to look at the slides. The web site for NMM is www.networkmultimedia.org.

NMM is available for GNU/Linux on x86 and ARM processors. It is written in C++. It is designed as a middleware layer between applications and distributed systems. This allows distributed transcoding, broadcast of multimedia data to different devices. The system allows handover of audio playback from one system to another without data interruption.

NMM is build up with nodes, which have input and output 'jacks' as required to connect nodes. Data is passed between nodes and processed as required. Control messages can be sent to nodes either in stream or out of stream. The NMM flow graphs can be either local or distributed. Whether the node is local or distributed can be transparent to the developer. Co-local nodes have no extra overhead.

NMM defines an interface definition language, or IDL that is similar to the Corba IDL. NMM comes with a healthy variety of nodes for handling audio and video formats.

The NMM communication channel handles serialization and transport of events, composite events and data buffers. The transport strategies range from pointer forwarding on local playback to TCP, UDP or RTP for network transport.

Examples were presented showing how to develop a plugin. See Developing Plugins for NMM.

NMM implements a registry service that tracks locally available nodes. Distributed flow graphs are peer to peer.

A simple playback 'hello world' application was presented. And command line playback and control was shown using the clic application. Various services can be called using the familiar urls such as dvd://.

Synchronization is done globally, separate from each local controller. The global clock uses NTP to synchronize the individual controllers.

Marco next showed a number of NMM applications. The first one is called the Virtual Courseroom Environment which records and broadcasts the audio, video, slides and other components of a classroom presentation. Our own amaroK is able to use the NMM engine. There is a networked multimedia box based on NMM which plays cds, dvds, video recorder, tv.

The questions from the audience were interesting. Someone asked pointedly when are you going to replace NTP as a synchronization mechanism (answer: don't see a need). Another question was raised about the long term viability of the project. Is there a larger developer base. The discussion that ensued showed the difficulty, since development discussions are internal at the university, the project involves few people and some students. External developers are welcome, but not actively recruited. Another question was raised about binary compatibility. Marco was open to the request, although there are no plans at present.

So NMM is an object based multimedia framework with a reasonably complete suite of plugins. What are the advantages?
  • LGPL and GPL license.
  • Fully network transparent.
  • Written in C++
  • Object oriented design.
  • Extensive list of plugins, from audio, video and graphical formats, visualization, hardware input and output.
  • Project hosted at Sourceforge. Accessible cvs and wiki.
And the disadvantages?
  • No ALSA modules, only OSS.
  • Only supports Linux.
  • Limited packages available. emerge NMM doesn't.
  • Security is non existent.
  • No active developer community outside of the university. NMM is a university research project.
Rob Kaper announced that Atlantik 0.7.0 has been released!
Atlantik is the leading open-source game client for Monopoly-like board games to be played on the monopd network. Atlantik is available for all computers running the KDE Desktop Environment, such as the Linux and BSD operating systems.

Atlantik 0.7.0 was taken from the KDE 3.3 release and is aimed at users of older KDE versions. New in this release (compared to 0.6.x) are an event log, estate names on the board and proper game withdrawls when closing the client. Various bugs have also been fixed.

Atlantik is available from:
Stephan Kulow announced that he's back - in case you missed it :)
I still have to review my kde-cvs folder to see what commits went into the branch, but if everything works out fine, I plan on tagging KDE 3.3.1 this weekend. So if you got something to finish backporting, I'd like to ask you to do so in the next couple of days.
Deadline for commiting to the branch (including translations) is Saturday October, 2nd 20:00 CEST)
If you backported something, please remember to add a little note to www/announcements/changelogs/changelog3_3to3_3_1.php


Commits 2643 by 207 developers, 174033 lines modified, 653 new files
Open Bugs 7452
Open Wishes 6965
Bugs Opened 328 in the last 7 days
Bugs Closed 212 in the last 7 days

Commit Summary

Module Commits
Lines Developer Commits
Thierry Vignaud
Pedro Morais
David Faure
Malcolm Hunter
Stephan Kulow
Gregory Mokhin
Stephan Binner
Nicolas Goutte
Mark Kretschmann
Jarosław Staniek

Internationalization (i18n) Status

Language Percentage Complete
British English (en_GB)
Swedish (sv)
Portuguese (pt)
Dutch (nl)
Danish (da)
Estonian (et)
Spanish (es)
Italian (it)
Tamil (ta)
French (fr)

Bug Killers

Person Bugs Closed
Luboš Luňák
Stephan Binner
Mark Kretschmann
Benjamin Meyer
Reinhold Kainhofer
Pascal Létourneau
Anders Lund
Tommi Tervo
Adriaan de Groot
Jens Dagerbo

No commits found