Category Archives: General

fisl 9: a good start

Amazing: that’s the best word to describe everything that happened during this last fisl. Everything was so great that it’s even hard to describe here using only words. So I’ll try to explain a little bit about each interesting topic that I want to talk about.


We had two levels for the programming challenge.

The first level was just like an arcade game: you had one task that was a “treasure hunt”, and while looking for the treasure (that was actually a number), the teams discovered more tasks. The teams that had more points at the end of the day could go to the next level (I can make another post telling the details about each level later). All the tasks were related to Python for S60.

During the second level they were asked to implement an ODF reader for the Maemo platform using Python. It was so great that at the end of this level (that lasted 24 hours) all the teams had an working ODF reader with different approaches. Some of them converted the document to HTML and used the embedded browser (microb) to open the file and other teams just parsed everything using an xml parser.

This second level was very special for everyone. The students could develop an application from scratch that was very useful and new and the community gained new developers and a new project as they want to keep working on their projects (possibly all of them will become just one project).

After all this hard time, the prizes for the teams: 1 n95 for the 3rd place, 3 n95 for the 2nd place (one for each member of the team) and 3 n95 + 3 n800 for each member of the 1st place!! Great prizes 😉 !


A congress only can be great if there are great people at it. And that was exactly what happened. We were able to meet so many good people, let’s start talking about each one.

First, people from GUS-BR (Slackware User’s Group Brazil). It’s very good to meet old friends from IRC that use the same distribution that you use =) . Also very good to buy some stickers and other stuff.

People from brazilian universities: Unicamp and UFPE. I was able to meet some classmates from Unicamp and remember some funny stuff and also ask help for UFPE guys (we needed to flash an n95 and they could help us!!! Thanks guys!!!)

Trolltech & KDE guys: we were able to watch a presentation from Andreas (Qt) and make some new friends like Knut, Kevin and Thiago. Also good to chat (again) with Helio. From Andreas we could understand a little bit more about Qt and show some of our work, very interesting and productive chat. Maybe we can submit some paper to akademy and show some of our ideas to kde guys !

ODF and BrOffice: it was awesome to meet Gustavo from BrOffice and Jomar from ODF Alliance and receive their feedback. This feedback just made the Arena Challenge even better, for us, students and the community !

Also, I would like to thank Fórum Nokia, Fernanda and Paulo from fisl organization as they helped us a lot. From the INdT side, thanks a lot to Silvia, Selma and also Carol for the “Jack Bauer” joke 😛

Special thanks to all the guys from Casa do Cinema de Porto Alegre that made an wonderful work and will make a video to show everything that I talked about in this post, so we can share with everybody.
openbossa logo

fisl 9 – INdT and Arena

The official definition:

Programming Arena

Imagine a big aquarium and inside it computer programmers, challenges and prizes instead of fishes. This is how the FISL Programming Arena looks like.

The Arena main objective is promoting a meeting between members in technology community for a contest based in technical skills considering individuals and groups. Is occurs before in remote phases and during the FISL 9.0. The location is a aquarium-room with restricted access in the middle of event center. Free software projects are chosen and used as a case of study for Arena.

So, this year INdT is helping to organize this contest and Nokia will give N95 and N800 as prizes for the winners. Through this post, I invite everybody that is going to come to the event to come in and at least try to solve our challenges ! =)

It’s important to say that we’ll be looking for potential future co-workers there, so if you are interested just let us know 😉

See you there!


Canola 2 Beta Launch

After some days nights working very hard we are proud to announce Canola’s 2 Beta version launch.

There are some known small issues that we are already working on, but this should not affect the general use of the application. It would be great if users could download, install and give us some bug report, so in the end we can have a great application 😉 I also hope that developers get interested in developing plugins for Canola.

Thank you everybody and just follow Canola’s developers blogs and Canola’s official site to stay up to date to documentation, new releases and other news =)


Canola’s Media Player

Canola’s team have been busy during the last months trying to make real Marcelo’s dreams and thoughts.

Now the first results are being exposed and it’s a good idea to explain it all 😉

Kenneth mentioned on his blog about the picture viewer and album’s art view. He made an overview of this features and I’m not going to explain the same stuff again, but I’ll try to make an overview about Canola’s Music/Video player (and it’s engine).

As Leonardo Sobral pointed out before, we developed a media engine codenamed “Atabake” in order to support some features that the default media engine was not able to support. It has a plugin architecture, so it’s easy to extend and do some more cool stuff.

If you develop a plugin to Canola and want to make use of audio you can simply ask Atabake to stop the current player and start playing your own sounds. After closing your plugin, Atabake will gently restore the player’s session.

To play audios we are still using osso-media-server as it works very well for audio playback, and for videos we started using MPlayer (anybody asking for libxine in the future?? 😉 ). MPlayer just rocks about video playback…

The player plugin for Canola can be used by any other plugin that wants to consume media. More details about all this technical stuff will come just after Canola’s launch (I still need to bug fix, and finish other details hehe).

Some audio and video screenshot for you guys:

Audio PLayer

Video Player

As you can see, it’s very easy to use Canola even on desktop and you can expect a very responsive and fancy UI 😉

Videocenter for Maemo

Today it was announced “videocenter” for maemo. Videocenter is an application to receive video streams, download videos and also manage your videos on the platform.You have services like Internet videos (rss), Internet TV, Remote EPG and soon you will also have Video Remote. Ow, and there is also one tab to manage the videos you have in your device and in your mmc.

This Video Remote feature that is missing on this release will be able to get streams from MythTV and some other services that you can run on your own machine (even ftp server). Now let’s explain why it’s not there: there is a bug on osso-media-engine that prevents the MythTV to properly work. The process of streaming from MythTV is very trick because we have to transcode the video before sending for the device as most of the users have DVB at their home, and because of this bug on osso-media-engine it doesn’t wait enough time for buffering (for users that are still using analog tv cards it just works fine). In order to receive this MythTV stream the user needs to install the gmyth library on the desktop that will work as the transcoder: the best option is to use the same desktop where you have MythTV backend.

Well, the best way of showing something is with a video, so here it is!

PS: if the movie is not that good it’s because Marko Sakkinen just shooted me too much yesterday on paintball! =P

MPlayer vo_nokia770 wid support

Last weeks I played a lot with MPlayer for maemo. First I did that Xv + “-wid” patch in order to ignore those “Bad Values”  when going back from fullscreen on windowed mode. Now it was time of making vo_nokia770 works with “-wid”.

The first point was that vo_nokia770 was pretty much faster than vo_xv due to some optimizations that Siarhei did (this optimizations will hopefully be on the next platform release). The second point was that for n770′ s users it’ s the best driver so far (as they will not have an official release of a fixed X server).

Asking a lot of questions for Siarhei and  taking a deep look on vo_nokia770′ s code, I was able to understand it’ s idea: create an X window to handle events and just put the video directly onto the framebuffer using the optimized code. Sound’ s easy ? Hehe, well I got some problems but after coding it, it doesn’ t look that hard…just needed a little bit of experience on X programming to understand what was happening.

It still needs some improvement but it’ s working and just waiting Siarhei’ s approval =)

Ginga – Brazilian Digital TV Middleware

Besides the fact that there are a lot of controversy around this subject, I’ll talk a little bit about it and tell our foreigner friends about this new open source middleware for digital TV content (it will be just an overview as I dont know too much about it yet).

This middleware (Ginga) will be used to produce content for SBTVD (Brazilian System of Digital TV). It uses the NCL, Lua ( and has some features like XML Parsers, XHTML and also a Java Virtual Machine (sick) =P. You can check it’s architecture taking a look at the picture at the end of the page (click on it to view it bigger).

Now, what I think about all this stuff: Brazil developed this “new” SBTVD based on the japanese standard besides using the european or the american ones. As far as I know (and it’s not that far hehe) the european standard would be better in a way that at least we would have a very good hardware compatibility and it would be easy to have a full working hardware in almost all places on earth (ok…just where they use DVB-T hehe). But we can’t change past and as they have already made this decision for the japanese standard, let’s see if we can make it work in the best way it’s possible.

We can start that assuring that we DON’T WANT DRM PROTECTED CONTENT. It just doesn’t make sense to put all this DRM stuff on that and “go back on time”. As we are developing “new technology” we have to make all the stuff right otherwise something like DRM will put all the good work just in the trash. Even Apple is making the stuff on iTunes be DRM-free and there is a big movement on that direction on the whole world and we are just taking the other direction. Bah! Hélio Costa, our Telecomunication minister must think more about this. At least the goverment has some people that fight for open standards there (like Dilma Russef and Gilberto Gil). Note: the goverment can suck at all but at least they use free-software hehe.

So today this middleware will be released at a conference (full source code and GPLed) and let’s hope that we can make a good and free brazilian digital tv.

ginga’s architecture

How to install GMS and GMyth

How To Set-Up GMyth

This How-To assumes that you have a fully working MythTV installation. Pay attention that this has not been tested too much and that in the future it’ll be a lot easier to do all of this (I’m working on a script to automate this). All these steps are meant to be done on the transcode machine (that also can be the mythtv machine).

I recommend doing everything from SVN as the debs are not done yet.

1. – Installing GMyth

1.1 – Debian Packages
Just install gmyth_0.3_i386.deb and gmyth-utils_0.3_i386.deb like this:

* sudo dpkg -i gmyth_0.3_i386.deb
* sudo dpkg -i gmyth-utils_0.3_i386.deb

1.2 – SVN

First of all check-out the svn:

* svn co gmyth

Compile GMyth and install it:

* cd gmyth
* ./ –prefix=/usr –sysconfdir=/etc
* make && sudo make install

2. – Installing gstreamer plugins for MythTV

2.1 – Debian Packages
Just install gstreamer0.10-indt-mythtvsrc_0.10.2.debian-1_i386.deb

* sudo dpkg -i gstreamer0.10-indt-mythtvsrc_0.10.2.debian-1_i386.deb

2.2 – SVN
First of all check-out the svn:

* svn co gst-gmyth

Compile and install it:

* cd gst-gmyth
* ./ –prefix=/usr –sysconfdir=/etc
* make && sudo make install

3. – Installing libgnomevfs2-mythtv

3.1 – Debian Packages
Just install libgnomevfs2-mythtv_0.3_i386.deb

* sudo dpkg -i libgnomevfs2-mythtv_0.3_i386.deb

3.2 – SVN
First of all check-out the svn:

* svn co libgnomevfs2-mythtv

Compile and install it:

* cd libgnomevfs2-mythtv
* ./ –prefix=/usr –sysconfdir=/etc
* make && sudo make install

4. – Installing GMyth-Streamer

3.1 – Debian Packages

3.2 – SVN
First of all check-out the svn:

* svn co gms

Then just run it:

* cd gms
* python

5. – Installing GMencoder

You need this packages installed:

* libgstreamer-plugins-base0.10-dev
* libgstreamer0.10-dev
* libglib2.0

5.1 – Debian Packages

5.2 – SVN
First of all check-out the svn:

* svn co

Compile and install int:

* cd gmencoder
* ./
* make && sudo make install

5.3 – gst-ffmpeg (CVS)
You must instal gst-ffmpeg from cvs:

* cvs co gst-ffmpeg
* cd gst-ffmpeg
* ./ –prefix=/usr –sysconfdir=/etc
* make && sudo make install

5.4 – gstreamer0.10-fluendo-mpegdemux (CVS)
The package that comes with Ubuntu has a bug, so you need to use it from CVS:

* apt-get remove gstreamer0.10-fluendo-mpegdemux
* svn co
* cd gst-fluendo-mpegdemux
* ./ –prefix=/usr –sysconfdir=/etc
* make && sudo make install

6. – Installing Mencoder from SVN
You need this packages installed:

* libxvidcore4-dev
* libxvidcore4

Then check-out the svn:

* svn checkout svn:// mplayer

Compile and install it:

* cd mplayer
* ./configure
* make && sudo make install

MacBookPro: dvi out

Finally got DVI out working on my MacBookPro Core2Duo (ATI X1600) with Kubuntu Edgy ! =P . Used this configs to enable “clone” mode. If you want to make “dual-head” mode you’ll need to change somethings..
It’s kind of easy. Just run the following commands and everything will work perfectly:

  • sudo aticonfig –desktop-setup=clone
  • aticonfig –query-monitor
  • sudo aticonfig –enable-monitor=crt2,lvds  – (assuming crt2 is dvi out…)
  • sudo aticonfig –mode2=1024×768,800×600,640×480

Update on gmyth + MythTV

Well, it was a short week due to brazilian carnival =D but I can report some good progress on MythTV code that I am developing.

This week I was able to code some MythTV features that are very interesting from the frontend point of view: through the frontend you are able to select any video that was previously recorded by MythTV to be transcoded to mpeg2 or mpeg4 (nuv) format. The problem is that you are only able to use this through mythfrontend – that means it’s not implemented in the backend, it’s a frontend’s feature. With this patch you’ll be able to easy put this feature in your frontend just using mythprotocol. You just have to send a message (mythprotocol) like “START_TRANSCODE_DISK” or “STOP_TRANSCODE_DISK”.

The syntax of “START_TRANSCODE_DISK” is very easy. The first arg after the command itself must be the file you want to convert (chanid_starttime.nuv) and then the name of the profile you want to use for transcoding. I’m working on improvements so you’ll be able to request it to transcode to another file as well (rather than overwriting the original one). I should probably release this “upgrade” on the patch next week.

This second patch that will be released is more flexible and works better than the first one as it will be able to queue any kind of Job inside JobQueue and also put some priority in these jobs… 😉
Regarding the work with gmyth I can say that some functions will be added so it will be able to easily use the “remote transcode” feature. Probably will do something to add a recording profile remotely too (this may need another patch for MythTV, this time for http+xml interface).

Today a co-worker gave the good idea of trying to make the “live-transcoded-tv” using this remote transcode feature. But we still need to think how we can stream the video. Doing the transcode inside MythTV we just need vlc or another way to stream the video. We need to think about the delay on MythTV to start jobs that are queued (try to see any way to low this timeout).

Link for the patch on MythTV’s Trac