The very first release of Enna Media Center (v0.4.0) has came out. Let’s check more about the press release:
The GeeXboX project, multimedia-oriented Linux distribution, just announced the release of Enna Media Center, after months of development efforts. Enna will obviously be upcoming GeeXboX 2.0 user interface, providing so much more features while keeping its easy-to-use aspect.
Considering this approach, the very first public stable release of Enna (v0.4.0) just came out. Enna relies, at least for its graphical part, on Enlightenment Foundation Libraries (EFL) and, as for its multimedia capabilities, on libplayer (an audio/video multimedia player abstraction framework, that provides seamless control over either MPlayer, Xine, VLC or GStreamer) and libvalhalla (a metadata extraction library which also provides external resources retrieval, such as covers, posters, fan arts, lyrics … along with saving these info on an SQLite database), both being originated and developed by GeeXboX team.
Enna supports multiple video rendering methods (being Frame-Buffer, X11, or OpenGL (ES)) and, through libplayer, do adds support for XVideo or VDPAU, in order to provide hardware video decoding on nVidia capable boards.
Still young, Enna reminds a lot of XBMC, which tends to feature so much more, but is although much smaller in terms of size, dependencies and resources consumption. Fully keyboard/mouse/LIRC controllable, Enna allows you to listen to your favorite songs collection, watch your personal photos, movies and TV shows, to check on your local weather forecast, but also an on-line ebook reader through GoComics.com and OneManga.com content providers.
Now let’s dig a bit more in Enna dependencies:
Enlightenment Foundation Libraries (EFL)
As the name tends to say, EFL are the core of Enlightenment’s E17 project. It’s a set of various libraries such as:
- Evas: a video compositing layer and rendering engine.
- Ecore: an event layer with I/O support.
- Edje: a theme and scripting engine
- Elementary: a set of widgets.
Optimized for embedded devices, these libraries are C written, fast and reliable.
GeeXboX uses MPlayer for quite a few years now (original creators also being MPlayer developers), through its OSD menu, both as media player and user interface. While that’s quite easy, it’s also extremely difficult to extend it. The idea was then to split the user interface from the video rendering engine. Over the time, MPlayer not necessarily is the best candidate these days (depending on context and the type of resource to be read, e.g. DVDs or network streams). it appeared as a good idea to create an interface that would allow, through a unique API, to seamlessly control multiple kind of players, such as MPlayer, Xine, VLC or GStreamer. Hence was created the libplayer project. This latest now provides control over the 4 players, as a thread-safe C library. MPlayer and Xine wrappers currently are very well supported, the 2 others are much less. Some of the missing features simply are dued to a lack of time, others come from more problematic technical issues (e.g. nVidia’s VDPAU implementation still relies on non thread-safe X11 API instead of XCB, as well as libVLC which still uses a lot of global variables) but the basis performs quite well.
Once again fully initiated by GeeXboX team, this library acts as a metadata scanner and parser among your multimedia files (songs, videos, photos). It aims at fetching as many information as possible (such as lyrics, CDDA and DVD covers, movie resolution, codec type and such …) and store them in an SQLite database. These information will be used later on by Enna to provide an extended display of your file’s characteristics when browsing in your multimedia collection. libvalhalla was designed to be an extremely fast and parallelized (hence thread-safe) library, that can run either in background, scanning all of your HDDs, or on demand, to force instant retrieval of a given file’s information. The design is quite modular, allowing to use (or not) multiple modules, in order to retrieve on and off-line data. Among them, currently supported on-line grabbers are Allocine.fr, Amazon.com, ImDB.com, Last.fm, LyricWiki.com, The TVDB.com, TheMovieDB.org and TVRage.com. As for off-line grabbers, libvalhalla currently supports EXIF, FFMpeg, libnfo and local files.
While being developed by GeeXboX project members to interact with Enna, it’s needless to say that these 2 libraries were designed to be independent and re-usable. In other words, one can obviously make use of them for any other purpose or within other projects (e.g. how many application ever tried, with more or less success, to implement MPlayer’s slave-mode FIFO control ? One can now do it in plain C).
Enna, and its associated libraries are available for any modern GNU/Linux distribution. Ubuntu 9.10 Karmic users can have a quick try at it, through apt-get, the whole stuff having been packaged for.
One may also note that Enna will obviously be part of GeeXboX LiveCD, which 2.0-alpha1 release is due to January 2010. Enna will also be shortly presented in FOSDEM next February.