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:
http://unixcode.org/atlantik/download.html
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

Statistics

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
kde-i18n
1121
 
kdepim
215
 
koffice
160
 
kdelibs
156
 
kdeextragear-1
150
 
kdeextragear-2
146
 
kdebase
91
 
kdenonbeta
90
 
www
82
 
kdenetwork
74
 
Lines Developer Commits
8826
 
Thierry Vignaud
410
 
6049
 
Pedro Morais
149
 
13684
 
David Faure
117
 
7063
 
Malcolm Hunter
66
 
3998
 
Stephan Kulow
59
 
4086
 
Gregory Mokhin
58
 
781
 
Stephan Binner
54
 
393
 
Nicolas Goutte
49
 
455
 
Mark Kretschmann
49
 
4222
 
Jarosław Staniek
48
 

Internationalization (i18n) Status

Language Percentage Complete
British English (en_GB)
99.98%
 
Swedish (sv)
98.74%
 
Portuguese (pt)
97.34%
 
Dutch (nl)
94%
 
Danish (da)
93.28%
 
Estonian (et)
93.05%
 
Spanish (es)
92.85%
 
Italian (it)
91.82%
 
Tamil (ta)
90.4%
 
French (fr)
89.65%
 

Bug Killers

Person Bugs Closed
Luboš Luňák
30
 
Stephan Binner
19
 
Mark Kretschmann
15
 
Benjamin Meyer
14
 
Reinhold Kainhofer
13
 
Pascal Létourneau
12
 
Anders Lund
11
 
Tommi Tervo
9
 
Adriaan de Groot
8
 
Jens Dagerbo
7
 

No commits found