 Hi, so my name is Benjamin, as said, and I'm the project leader of the Gixbox distribution for quite seven years now. And we have designed a new media center application that I'm going to present to you guys now. So again, Gixbox is a major live CD multimedia distribution since 2003. Back at the time, there were only Muvix distributions for the one who might remember of it, who was also a live CD distribution, and the idea of the distribution at this time was to be able to turn the computer into full features, set the boxes. At the time, many, many computers were at difficulties playing back several kind of videos of audio codecs or video codecs, whatever. And we wanted to make some distribution that only does this purpose. So the idea was that with a live CD, one can just boot his PC and be able to run every kind of multimedia content he has, photos, videos, audio files, whatever. And we wanted it to be able to stream from various media locations. So we are able to read files from either your hard disk, from the NFS, or from Samba, for the network storage. Also we wanted to add support for the UPNP or DLNA streaming Portugal. So again, also with the CDDA support and DVD support, analog TV support, DVD playback, this kind of thing. So at the time it was a really small and tiny distribution which was at the very first release only 3 megabit big or small, depends on the point of view. But it's something that really can boot your PC really quick. And as a live CD, you can also shut it down really quick. The idea was to replace the, when it was designed to replace the first hardware set the boxes. So when it was designed it was the time of the first kiss set the boxes, the first one that were able to play the DVX files on your TV. So that was the idea of the distribution. So obviously we had to make it fully controllable through your remote control, through LISC. And as you may see on the right, this is a screenshot of the interface which honestly is quite ugly. And this is still the existing interface and we have designed the new interface which is called ENAW which aims at replacing this one. The Geeksbox project was designed by a few employer developers, including myself. And as you may see, the design is quite simple because it uses the employer as the interface. But it's also quite limited. Again as we are using right now the employer OSD interface, it is quite difficult to add any new functionalities. So what we wanted is to really split the media player interface from the user interface. So with the Geeksbox being completely based upon employer project and being employer developers we introduced many features that were not at this time in the regular employer project. So we introduced the support for the DVD NAV, announced a lot of things in the OSD menu, had some TV control, LCD display supports, RTSP streaming and things like this. Of course, nowadays all of these features have been included in the upstream project. But as a consequence, many of the users requested us that the features that Geeksbox originally proposed, they requested us for these features to be able to be used in other distributions than Geeksbox. So we had the willingness to create a new guy which had to be portable, which had to be configurable and extensible. So it has to work on any kind of display, whether it is frame buffer based or Xorg or X OpenGL based, anything like this. And again it had to be a standalone application that can run on any distribution, not just Geeksbox. So the application that we are talking about is called INA. You have on the right a few screenshots of the application, which as you can see is far different from the previous screenshot that you've seen of the current interface. INA has been designed to be the GUI for the Geeksbox 2.0 release. It's a media center application that is meant to be used as a home theater PC and is meant to run on low-resources computers. So the binary itself is only 250 kilobytes big. Of course then you add the theme files which are composed of all the GPEGs, PNG and things like this. So it's quite enhanced a bit the resource consumption. But we have decided to make the GUI realize on the Enlightenment Foundation Library project. So we will see this a bit later on. But as for the graphical interface, so we realize on the EFL and as for the all of the multimedia playback capabilities and all the metadata retrieval, we rely on two separated projects which are called LiPlayer and LiValala, which are projects that have been created by the Geeksbox folks. So here you can see quite a simple interface or view of what NR really is. So INA is in the green squares you have all the libs that have been designed by the Geeksbox teams. So INA itself which relies on the LiValala player AV framework and on the LiValala metadata engine and for the graphical interface it relies on the Enlightenment Foundation libraries or also known as the EFL which mostly are the projects called INA, EAT, EVAS, E-Core, Edge and Elementary. As for the LiPlayer framework, it relies on different media player backends. So we can control Ampere, Xen, VLC, G-Streamer and of course this player controls the audio and video render layers. EVAS itself is also used to control the video render for the graphic display but it also is used in order to control the input layer. So one of the first library we designed is called LiPlayer. This is a multimedia AV abstraction layer that was used to, I would say, to control various multimedia players. So the willingness is that some people, some of the users, we have made some complaints that we are stick to Ampere and for some reason it was good in the past, it was maybe not as good as it used to be nowadays because VLC might be better for playing the NetStreams, Xen might be better for playing DVDs and things like this. So we have designed an AV abstraction layer that actually provides a generic API and this API allows us to control all of these players, so Ampere, Xen, VLC and G-Streamer. The two first ones are pretty much stable, the two last ones are pretty, in a pretty much experimental stage at the moment. So it basically can play but with still a lot of bugs. The application or the library has been designed to be fully melted threaded and also thread safe and it allows any front end to use it to control any media players. Through various audio and video renders, so as OSS projects for the audio ones and either the frame buffer, OpenGL, LSDL, VDPIU, XL11 or X-Video for the video layers. This is some internal drawings of the LibPlayer architecture. Just to say the slides will be available on our website, so as they are a bit complicated, if you want to spend any more time to check about the architecture, they will be available on our website. As for LibPlayer, as I said, we have one public player API. This player API is used to expose the control to various media players. So what we, what you have designed is this API and the front ends, which at the moment is Ena only, but many other applications might be able to use it. Just have to send some controls to a control queue. The controls can be very simple. They are the playback, stop, pause, seeking, backward, forward, any kind of things. And through this, we have a lot of, we have a lot of internal structures that actually calls different wrappers. So when you register your player public API, you have to register a new player structure, which you first define to be one of the four players that we support. And then the wrapper engine actually translates all the public API calls into one of the, into one of the multimedia player API. So except from MPlayer, which by comparison to the other libraries, isn't really a library, isn't a library. And so MPlayer only can be controlled through the slave mode, which is a FIFO-based mechanism. And we have implemented a complete wrapper that interacts with MPlayer through this FIFO mechanism. One of the ideas of MPlayer is to provide this video abstraction layer so that we might be able to control several new players or new things that might come in the future without having to change anything on the front end, so on the user interface. Next one that we use is LibValala. LibValala is a tiny media scanner library. It has been designed to feature high performances and multi-streaded implementation. What it does is storing various information on your media files into a SQLite database. So in order to do that, it supports, it parses the audio-video stream properties through the FFNPEG project. And it also allows to grab many information from online websites in order to fetch covers, ricks, list of actors for your movies and things like this. On the bottom, you may see the different grabbers that we currently support. So as for the offline mechanisms, we support EXIF, FFNPEG and the NFO files, and for the online, we support different websites that provide such kind of information. This we probably won't spend much time on this, but this is some mechanisms, internal mechanisms of LibValala and how it works. So we have a scanner that actually calls many grabbers that can be, again, either offline or online and retrieves the various information from different content providers and store them within a database. If you're interested in the architecture, you may check the slides on the website. So as for INA itself, again, a few more screenshots on the right. You may see it as it has been designed with embedded considerations in mind. So it has a law from print, and it also was meant to be user-convenient and plug-and-play. So the idea is that anyone without any computer skills is able to use the interface. As for now, we have many modules that have been designed, so basic features like the music player, the movie and TV show players, also a photo viewer, weather forecast activities, and some online ebook reader that uses some content providers. So we have two at the moment. One is called the OneManga website, and another is the Go Comics one. So these are two websites where we can fetch ebooks or comics and things like this and you can display them on your set-top box. As for the feature, as it was the case with Geeksbox, we support playing back from the local disk, from CDDA, DVD database, podcast, we support the UPNP and DLNA playback. Also the application supports all the dynamic media detections through the UDAV library, so it's a replacement for the HAL that is currently dying. And so we may discover how many hard drives you have if you plug in a new USB key, it automatically appears on your applications and things like this. Again it has been designed to be controllable through the keyboard, the mouse or the touch screen, and as for the mid and long term features, we expect to port it to Windows and to OS X, currently it runs only on Linux and has been packaged to Ubuntu. And as you may see, many other features that might come like video and demand, voiceover IP and things like this. We have the project is still young and a few enhancements are due to spring and it will be part of the Geeksbox 2.0 release that is supposed to be coming by the beginning of the month. So thank you for your attention if you have any other questions.