Posted by: ben | February 9, 2010

FOSDEM 2010

It’s been a couple days only but FOSDEM 2010 already is long gone :-( As expected though, I’ve been able to present GeeXboX and Enna to a nearly full (ok, half only :-p ) room of developers and hackers. For those of you who couldn’t attend to the presentation or those who’d like to see it again or more carefully, the slides now are available on our website. Let’s just say that I was pretty proud making this conference and that the results were quite enthusiastic. Indeed, GeeXboX, Enna, and all of its associated libraries (libplayer, libvalhalla …) have catch attention of a lot of people, including some from Open Embedded, VideoLAN (VLC) and even Nokia. This will result to various new actions that I’ll gladly share with you at expected time. Let’s just say that the best is yet to come :-)

Also, as it’s now an usual tradition, please enjoy some photo of our current development team (the ones that manage to come at least) at FOSDEM 2010.


From upper left to bottom right: Alexis Saettler, Nicolas Aguirre, Benjamin Zores, Matthias Hölzer, Fabien Brisset and Davide Cavalca.

Posted by: ben | January 31, 2010

Enna Talk at FOSDEM

So next week (6th-7th February 2010) at Brussels takes place the Free & Open Source Software Developers Meeting (a.k.a. as FOSDEM). We manage to get lucky enough to get granted a short time-slot to present GeeXboX and Enna. So if you’re interested in Enna and you’re going to FOSDEM, don’t miss the GeeXboX: An Introduction to Enna Media Center lightning talk at 18h20 on Saturday 6th. Those of you who won’t be able to attend (let’s be realistic, we’re talking about 99% of you) will have to wait a few days more as I’ll put the slides (and potentially video of the talk) on-line after FOSDEM.

Posted by: ben | January 24, 2010

Enna January 2010 Status Report

It’s now has been 3 weeks only that Enna first official release has been out and I’d have to say the project received a warm welcome. The news spread around the world and a lot of people have manifested a huge interest in it. We’ve been helped by many volunteers that gladly extended the internationalized pages so that next release will be available in much more languages. Unfortunately, no new developer came out so our team still is pretty low numbered. Though, the various projects (libplayer, libvalhalla, Enna …) seem to please people as many distributions (Debian, Ubuntu, Fedora, Slitaz …) have started packaging our libs.

Meanwhile, we’re still trying to stabilize a bit more the GeeXboX distro so that you should be able to test Enna on our alpha1 release of LiveCD. But let’s focus a bit more on Enna itself. As said, only 3 weeks have passed and still, many improvements have been made, based on some user requests and feedback we just received (plus other features that were meant to be done anyhow). So let’s have a look at what’s already done and which you’ll see in next 0.5.0 release.

  • Massive rework of the libvalhalla-based database browser. It is now much more generic and can be used in both music and video activties.
  • Addition of a new UPnP A/V (and DLNA) browser plugin. It is based on GUPnP libraries and will allow you to automatically discover and your network devices and browse their content. Unfortunately, it uses the very latest version of GUPnP API, which is not available in Ubuntu 9.04 Karmic. It is however in Lucid 9.10 and future users will be able to use it by this time.
  • HAL being mostly deprecated and most of distribution tending to remove it, the volume auto-detection plugin is now based directly on libudev, which turns out to provide the same level of features which much less overhead.
  • Many users have complained about the difficulty to find the configuration file and to edit it, and for good reason. This was a known issue, but not a release-blocker though. Efforts are spent to try to provide a fully GUI-based configuration. In this intend, we’ve added an .ini-style configuration files parser/dumper. This allow us to load and write configuration at any time. Hence, at Enna run, a default configuration is loaded and this one will be saved back to file at shutdown. Also, we’re now following the XDG specifications in order to store the configuration and data files (so you’ll have to modify a few things at 0.5.0 release).
  • The weather module was very well appreciated but also a source of multiple complaints. Well, good thing is that you’ve been heard, as it was improved in many ways. The module now allows multiple cities to be specified and, if none is specified, Enna tries to perform IP geo-localization in order to know where you are (based on your Internet provider’s information). Also, this may sound stupid, but it is now possible to force temperature metrics, between Celsius and Fahrenheit.
  • Many changes also have taken place in libvalhalla, which now allows you (through Enna) to choose which grabber(s) you want to run. It also fetches the various information much faster and gives priorities to certain type of metadata based on their origin (e.g. if available, we’d better take the movie backdrops from HD-compatible sources such as TheMovieDB than Amazon). The database format has changed a bit though, so the current one won’t be compatible with next Enna release.

That’s pretty much all for now on, regarding Enna new features. However, if interested, you’d be glad to know that the GeeXboX team will held a 15mn lightning talk conference at next FOSDEM (Brussels) on 6th February 2010. We’ll speak about Enna, libplayer, libvalhalla and of course GeeXboX. Feel free to come, especially if you’ve already planned to join FOSDEM.

Oh and by the way, I’ve just registered GeeXboX and Enna on Ohloh. So if you’re pleased by our software and proud to use them, just let us now :-)

Posted by: ben | January 3, 2010

First public Enna 0.4.0 release

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.

libplayer
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.

libvalhalla
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.

Posted by: ben | March 4, 2009

February 2009 Progress Report

So, what happened in the GeeXboX world since FOSDEM and the beginning of 2009. As you all may have seen, the 1.2 (and even 1.2.1) release finally landed out. It was a big relief and seems to please a lot of people from now on. In the mean time, we’ve upgraded major GeeXboX components, namely Linux kernel and X.Org and the development tree is now a really big mess (a.k.a. everything crashes so bad we don’t even know where to look for). The Linux graphics parts is currently evolving quite fast and most of drivers are being completely rewritted, resulting in a lot of issues. Though, we’ll try to fix it ASAP, especially now that Enna has been included in GeeXboX as new default UI, in order to provide you very soon with the very first 2.0-alpha release.

For video decoding fans, it is good to know that MPlayer now natively supports VDPAU, the h/w video decoding framework from nVidia. When used with the adequate nVidia proprietary drivers for X.Org, it is now possible to make MPEG-1/2/4, H.264 and VC-1 video decoding done by your GPU. It is not yet included in GeeXboX, as it relies on the non-redistribuable  proprietary driver but we’re considering a way to optionally add it afterwards. In the mean time, an experimental branch of FFMpeg is available, which provides multi-threading support. This is a much more elegant solution that actually finally allows you to use more than 1 thread (or CPU core) at a time for video decoding. On my Intel Q6600, using the 4 cores actually provides a 3x faster decoding speed, which is simply awesome. This has not yet been included into GeeXboX but it’ll definitely be part of the next alpha release.

And now comes the most interesting part: news from Enna. Most of our time and resources are currently wasted on Enna, our next-gen UI. Nico recently did a lot of work on it in order to both simplify the code and fasten it quite a bit. On my side, I’ve just finished adding a new weather module, that makes use of Google Weather Web API to provide you weather forecast (up to 4 days). But the following screenshot is probably better for you to see the newly added stuff:

weather2

Davide, on his side has started working on Enna for the very first time and he already manage to create a new games module that looks for all games installed to your Linux desktop and allows you to start them out from Enna interface. Being our DVB/VDR guru, Davide is also working on a new TV module for Enna that would allow Enna to directly use VDR (VideoDisk Recorder) to grab and display DVB streams (with recording capabilities) but it’s a long time plan, and still far from being completed.

The major contribution from these last days probably comes from Mat, who introduces a new component called libvalhalla that actually is an ultra-fast multi-threaded media scanner library that extracts metadata from all of your audio files (through FFMpeg libs) and save them back to an SQLite database. He of course also wrote the Enna browser plugin that makes use of libvalhalla allowing user to browse his media library by different criterias such as artist, album and so on …

Pretty good, isn’t it ? Now I feel that you’re all eager to test out the alpha release :p So let’s get back to the code and try to fix it so that we can provide it to you whenever it’s possible :-)

Posted by: ben | February 8, 2009

GeeXboX developers meeting at FOSDEM’09

The GeeXboX team members finally met at FOSDEM this weekend at Brussels, Belgium. It was a big pleasure finally meeting everyone IRL.

p1000188

Attending members, from left to right: Aurélien Jacobs, Nicolas Aguirre, Guillaume Lecerf, Davide Cavalca and Benjamin Zores. Mat and Andrew were not able to join but it still was a very nice weekend.

Posted by: ben | December 24, 2008

Enna’s Xmas Status

Hi,

This might be (or not) latest post for 2008 on this blog but it definitely is for Enna at least :-) Around 6 months ago, we were still pretty stucked with the GeeXboX GUI question (as we were for the last 2 years …) and then we found some very small Enlightenment based Media Center UI called Enna. Over the last months, we’ve been working on Enna and nearly all of its parts were even rewritten. A lot of work also have been commited on it over the last days and I’m pretty happy about its current status. We should be able to have a working next-gen UI in GeeXboX (with basic playback features only though) over the first months of 2009.

Now, regarding Enna itself, a lot of things have changed within the last 2 weeks:

  • Complete modularization: everything is now a dynamic module (backend, browsers, activities, metadatas …) and can be atomically enabled/disabled according to user needs.
  • The various activities (audio, photo, video) have been reworked a lot to share the same browsing codebase. This avoid duplicating bugs and simplifies things a lot.
  • The metadata module class has been completely rewritten to allow easy writing and addition of different modules capable of retrieving properties from a given resource. Among these properties, we consider:
  1. audio metadata like ID3 tags, codec, bitrate, frequency …
  2. video metadata like resolution, codec, framerate …
  3. photo metadata like EXIF tags
  4. Audio CD or DVD cover, video snapshot or poster/picture wall
  • libplayer module has now been split into 2 logical modules: one for backend (playback) and one for metadata retrieval.
  • a new metadata plugin has been wrote to access to TheMovieDB.org (TMDB) to retrieve hi-definition covers, pictures and movie info like story overview, actors list, release date and so on.
  • The metadata are now stored/dumped in an EET file. This allows ultra-fast recovery of metadata for a given resource if they’ve already been retrieved once.
  • A new HAL browser also has been added, allowing to automatically discover all of your available devices (HDDs, external USB disks, Audio CDs, DVDs …) supporting hot-(un)plug notification.

Looks cool isn’t it ?
Also, a newcomer has manifested some interest in Enna’s development so we might soon be one more developer to work on this awesome project :-)

That’s it for 2008.

Merry Xmas@all and let’s see you back in 2009.

Posted by: ben | December 14, 2008

GeeXboX 1.2-beta2

Here it finally comes ! A few weeks after 1.2-beta1, here comes the second beta release. A lot of bugs have been fixed and it’s expected to be more stable than ever.

See GeeXboX webpage and happy playback :-)

Posted by: ben | November 29, 2008

Enna progress report …

Hi folks,

It’s been a while since latest Enna’s news entry. A few work has been done for the last couple of weeks and the picture wall you’ve seen earlier is now fully integrated. Theme also has changed a bit, in order to become a bit lighter and a new menu top bar has appeared, with date information and a few control buttons.

enna-main_menu

Enna still only features 3 main modules (music, video and photo) and we’ve decided to keep it so for first release, as it’s always better having a few working modules than a lot of buggy ones :-) The photo module has been quite updated to integrate the ass kicking pictures wall. It is however not yet able to display fullscreen pictures, add slideshow effects, perform rotations, display EXIF metadata but it’s planned for a very near future.

enna-pictures_wall

The music module hasn’t evolved much, as it was already working pretty fine. The only noticeable change may concern the cover display item. Covers may be grabbed from either local directory, if present, or from Amazon.com webservices API, if your audio file has enough metadata in it. Next plans for music module will be to add a few more buttons to switch between songs, seek within, update volume level and so on. Most of these actions can already be done using keyboard of course, but Enna is meant to be used with touchscreens too, so we’ll definitely need that.

enna-playing_music

Finally, the major changes took place in video module. Previous one was pretty ugly, least to say :-) We’ve decided to enlighten it and rework its whole design. You now have a video thumbnail, next to which are located all of the video properties. As usual, if movie title is eloquent enough (forget about your HDTV rips), Enna will try to look on Amazon.com for a proper DVD cover.

enna-movie_preview

That’s it for today’s Enna changes. Oh, by the way, I’ve almost forgot to tell you about … This week, I’ve started the first geexbox-enna branch. Yeah, instead of focusing on finalizing 1.2 release, I’ve decided to integrate Enna to GeeXboX. As it’s only a work-in-progress branch as for now, it is already usable and judging by the results, it is already pretty much usable (but ages from being ready for production). Those interested in trying it out may just look for commits mailing list archives.

As today’s conclusion, I’ve made a 5mn runtime Enna video. Just enjoy the show :-)

As usual with Google vids, resolution and compression is a bit crappy, so feel free to use slightly better version of it.

Posted by: ben | November 16, 2008

nVidia brought PureVideo to MPlayer/Linux

Regarding GPU, I always used to be an nVidia fan, especially considering Linux. I do like Intel too, but only because they have a relatively good OSS Linux driver (and having a MacMini, it’s well appreciated) but, on my main PC, I had to choose between ATI and nVidia and the choice was obvious.

The sad thing unfortunately is that nVidia GPU is fine under Linux only if you intend to use their proprietary binary driver. That’s a bit of a pity considering it’s fully bloated and closed-source but at least it works fine (way more than the ATI crap). Due to license issues, we won’t be able to ship it with GeeXboX though.

What’s interesting today, is that nVidia released their new version of Linux driver, which is particularly interesting for GeForce 8+ owners (those with cards that support CUDA API), because they manage to bring PureVideo h/w video decoding support to Linux.

This means that this driver is capable of using the GPU to handle parts of MPEG-2, MPEG-4, H.264 and VC-1 video decoding. OK, I know, ATI did the same kind of announce 3 weeks ago and released their own API too but they “forgot” to provide any libs and headers which make it unusable right now …

nVidia called its extension VDPAU, which stands for Video Decode and Presentation API for Unix (yes, it does work on FreeBSD and Solaris too). However, what is pretty interesting is that, for once, they did the full job, providing patches to ffmpeg and MPlayer so that Linux players are directly able to make use of their API. And the results are damn impressive !!

Phoronix has already performed benchmarks of it and the results are excellent. What used to take more than 50% of your CPU now only take 5. Real HDTV decoding is now completely doable under Linux at a reduced cost. It’s likely that patches will get merged into upstream MPlayer and all we have to hope now is that OSS Nouveau driver become stable enough and find a way to provide CUDA API access so that we’ll be able to do it the OSS way :-)

Older Posts »

Categories