First Weekly report of GSoC 2010, this is what have been done prior to the actual start.
- Downloaded ångström files and partitioned the SD-Card
- Recieved the BeagleBoard
- Installed and set up ScratchBox
- Sandbox version on the EventBased solution
- Install the ånströmdistributionon the SDCard
- Verify the BeagleBoard working
- Build XBMC in Scratchbox
- Read up on how other eventbased solutions solve it to get a great base to work on
- Failure to get the SD Card properly setup since my memorycard reader seems to work abit weird
I have been selected by the Beagleboard community and Google to work on Google Summer of Code 2010. My project will consist of optimizing the rendering of XBMC for the embedded market.
The Beagleboard is an arm based embedded device. Similar hardware can be found in the smart phone segment, for instance the first generation of Android based phones. The current version of the hardware will not be able to deliver 1080p but upcoming generations might. This opens up a wonderful possibility for XBMC.
The problem with XBMC is that it is just too heavy to render as is. Most of the time the interface sits close to static and while a user would perceive this as an idle state, XBMC is far from idle. Every frame the application renders the interface from the ground up and no matter if the interface is completely static this is done at 30-60 times a second! Because of this, the project will focus on moving to an event based rendering system. This will introduce a true idle state and will lower resource usage when the application is idle, however this in itself is not enough. Even if a window is static initially, a skinner can easily add non-static elements such as scrolling text or animated images, which means we again have to render at full frame rate. Thus lowering the actual rendering overhead is also necessary.
During the summer I will keep the community updated on this blog on a weekly basis. Since some of the content will be very technical it has been decided that only a part of the posts will be pushed to the front page of xbmc.org. If you are interested in getting all the updates regarding this project navigate to the full URL for my blog as it will contain the unfiltered posts as well. For those interesting in helping out I will be idling in both the standard XBMC and the beagle board IRC channels. I will be working in a branch in the normal XBMC svn (not created yet) but will be named gsoc-2010-beagleboard and anyone is free to check out the progress there.
I hope you have enjoyed this introduction and I will end by saying that this will be a great summer for the users of slower hardware and a grand summer for the possibility of a small, silent, affordable and low powered device capable of delivering the full XBMC experience!
Have you ever wanted to upgrade your system from your couch, not being forced to SSH in on your XBMC Live and do the long whinded sudo apt-get update && sudo apt-get upgrade process?
I have, and finally after some troublesome python learning I finally made a script that does just this!
Basically you choose the script ‘Aptitude‘ from the script section and it will download, install and configure your system. The magic of aptitude in Ubuntu is a wonderfull thing.
Even if most people that have used Ubuntu for a while might know what Im talking about but the newer users of XBMC Live might not be familiar with this.
Basically Aptitude is the packagemanager of the OS we use in XBMC Live, it can look like the Windows Update on a fast lookover but aptitude is so much more. It handles all applications and you never need to go out and hunt your applications latest versions of the installers. In aptitude you don´t even need to go out and install the different helper libraries you sometimes have to do with windows, ever needed to download dotNet?
Aptitude will download, install and configure this for you. It will even tell you when a new version is out! We haven´t had this feature in XBMC live and the users have been forced to drop to terminal to do this maintenence, even though its somewhat doable it is still not even close to the feeling of a home appliance.
For those of you that want to install the script its located in the xbmc-additions, but its not that easy to install as of yet.
Basically as aptitude needs root privileges you need to allow this script (install.py) to be executed without asking for password. Hopefully XBMC we will add support for a script to call down the password dialog and then we could ask for the password making this script super easy to install.
EDIT: This is now fixed and latest svn of the script can do this
When all the small issues are bug bashed (with help from users) this script will find its way into next XBMC Live release, and then users won´t need to think about how to install it.
Since the release of Atlantis we have had dozens of new users, and a few noted one of our weaknesses, which was PulseAudio, link to thread. People usually experienced video that ran in great speed, this was because ALSA couldn´t create a stream. And the only way of making XBMC run like it should on Ubuntu was to kill PulseAudio, this is ok if you are only using the computer as a HTPC but will quickly take away the fun of having XBMC just as a media player along with the rest of the desktop, as without PulseAudio most of the other applications won´t work properly.
Anyway, the days of having to kill PulseAudio is now gone! in SVN we have added full native support for PulseAudio, this works in both DVDPlayer and PAPlayer. This is also a runtime drop in replacement for ALSA so if PulseAudio crashed or got killed XBMC would fallback and use ALSA. We also added a gui notification when XBMC failed to open either ALSA or PulseAudio so the user this time knows that there actually was an error without hitting the log. So if you see this please check your audiosettings and if nothing seems wrong provide a log on the forum
A feature of PulseAudio is that it´s network transparent, and as such you can connect to a remote computer and have it play the audio. And of course we added this to XBMC, just create an advancedsettings.xml as this:
<audiohost>PulseAudio Server IP</audiohost>
And it should connect to the other computer.
- Navigational sounds is still dependent on SDL,
export SDL_AUDIODRIVER=esd before entering XBMC might help.
Just wanted to make it aware to skinners (and people wanting to tweak keymap.xml) that it is possible since beta1 to controll power management through actions.
The usefull commands are:
XBMC.Shutdown() – Will trigger your default behaviour (setup in settings -> system)
XBMC.Quit() – Will quit XBMC
XBMC.Powerdown() – Will shutdown the system
XBMC.Suspend() – will suspend the system
XBMC.Hibernate() – Will hibernate the system
So all the skinners out there, now go and make your skins suspend and hibernate compatible!
On Xbox the XBMC.Shutdown() is not choosable and will always powerdown the system.
On Xbox the XBMC.Quit() will do the same as XBMC.Dashboard() and both work the same throughout the plattforms.
On Xbox neither of XBMC.Suspend() and XBMC.Hibernate() will work due to hardware limitations, although they are perfectly safe to use (just won’t happen anything).
On the roadmap for atlantis+1 I will hopefully add XBMC.CanSuspend() XBMC.CanHibernate() and XBMC.CanPowerdown() so skinners don’t have to know which plattform can do what. Also to make it safe because it’s not a certain thing that all computer IRL can hibernate as it relies on HDD Space available.
Pondering one would have XBMC and iPhone, wouldn’t that little touchscreen make a good remote? Narcan made one, but is it all a pipe dream or could it be the remote of the future?
In a nutshell the remote is doing querys to XBMC’s webserver and displays the result in a neat fashion, but if we skip the technical mumbo jumbo it controls XBMC in that very apple sort of way. Which is one of the things I especially liked about it, it looks more or less exactly like the iPod mode on the iPhone.
The remote downloads both thumbs and info from the library and displays them tailored for the current view, good job!
I especially love the TV Show view as it really makes use of the wide icons in such a good way!
Narcan has though about something more, at some point those views might not be enough at which point you just flip it upside down and you’ll get something that looks like an IR Remote, very thorough work indeed!
The Remote mode is very responsive and works very well. The only thing I miss from this view is the ‘home’ button, something a former MCE user might miss.
All in all this application is very well polished and easy to set up, I would recommend it!
Some more tasty bits of information about this app can be found at Dave Fumberger’s (a.k.a Narcan) blog http://dave.fumberger.com/
A video on Youtube http://www.youtube.com/watch?v=cJJSvdM6iwA thx GrandAnse from xbmc.nu
And the link to iTunes AppStore http://phobos.apple.com/WebObjects/M…289316916&mt=8