GStreamer on the 770 continued

Ok, so some more 770 work done today. We solved the issue keeping Real video from working with some nice fixes both to the realvideo plugin and to sdlvideosink. Both sdlvideosink and ximagesink works on the 770 I have now discovered using gstreamer 0.9 CVS.

Edgard did some great work adding fullscreen support to the sdlvideosink so that we hopefully at some point can do fullscreen videoplayback on the 770 using sdl.

Some issues did pop up though, like our need to get the quality of service framework implemented for 0.9/0.10 so we can properly start dropping frames when the CPU limit is hit. Luckily getting that in place is planned for the next few months.

Visitations and declarations

Finished reading Knife of Dreams by Robert Jordan yesterday. It is the latest book in the Wheel of Time series and supposed to be the second last one before the series concludes. Robert Jordan have gotten a lot of criticism from his fans that the last few books felt like they where standing still in terms of progression. And I have to say I am somewhat agreeing to that. That said, Jordan has said he in afterthough agrees that the layout of Crossroads of Twillight was wrong in retrospect and that he should have made the book sequential instead of having all the substories starting at the same point in time. Anyway, this last book picks up speed again IMHO and is quite nice. Maybe the book do suffer a little from the problem of to many paralell stories in the earlier books, which means that even if a lot of stuff gets wrapped up its still maybe a little to much stuff happening. Anyway I liked this book, and I even discovered that Robert Jordan have a blog these days.

Poultry

So I learned that my uncle and aunt is coming down to Barcelona. My Uncle is a well known authority on poultry in the Norwegian vetrinarian community and he is coming to town to attend a meeting of the The Poultry Veterinary Study Group of the EU. Will be nice seeing them again. For those interested in poultry I suggest Poultrynews.com.

More 770 hax0ring

After getting hold of a image suited to my old 770 model I was able to flash the system and continue experiementing with GStreamer 0.9 and the 770/Maemo. GStreamer 0.9 is doing well compared to 0.8. By running this simple pipeline ‘gst-launch-0.9 fakesrc silent=1 num_buffers=10000 ! fakesink silent=1′ I was able to have it complete between 20% to 50% faster than the same pipeline do using GStreamer 0.8 on the device, depending on how big I set the num_buffer value.

Edgard, Wim and Tim did some good hacking on the sdlvideosink fixing some issues with it, but I am still not able to get it to display video on the device. I think the CPU overhead is way to high. Also tried playing a vorbis file, which didn’t work, but I will try again when we get the ivorbis plugin ported to GStreamer 0.9.

Next step is trying to get Windows Media Audio playing on the device.

GStreamer 0.9 on the Nokia 770

Starting learning to use Scratchbox yesterday and I have to say its pretty nice. Developing for the Nokia 770/Maemo using it was easy to get going. Today already I was able to have GStreamer 0.9 installed and was playing a Real media file streamed over http from my own laptop and played back using GStreamer and Fluendo’s soon to be released Real Media plugin for GStreamer. Cool stuff. Pipeline used was this one:

gst-launch-0.9 gnomevfssrc location=http://192.168.1.70:/kelly.rm ! rmdemux ! realaudiodec ! esdsink

Tried to get video output working also, the closest I got was trying to play a .fli file with Zeenix’s fli decoder and sdlvideosink. Got a black SDL box onto the 770 screen,but no actual moving image.

As part of trying to fix the issue of getting SDL output working I tried updating the device to latest development snapshot. But that seems to work very badly for me, seems the interface is extremely slow or unresponsive so that I can’t input anything with the stylus. Probably caused by me having an early prototype of the device, but still a bit frustrating.

GStreamer API freeze

So with the new release today GStreamer 0.9 is in a temporary API freeze. It will last for a full month before there is short thaw before the hard freeze before 0.10. So if you want to start porting to 0.10 this is a good time to do it as the API will not change under you for the next month and the changes occuring during the thaw will probably be mild (beautiful play on words there).

The new baseclass setup in 0.9 is very nice, in 0.8 it was a constant problem that people fixed something in for instance alsasink, but they didn’t bother fixing it for osssink, sunaudiosink or esdsink for example. Which meant that you got different milage with different plugins for different tasks. This can of course still happen, but with the new baseclasses the chance is much smaller and whenever new functionality is added to the baseclass all the plugins built on top of it have it too.

Thomas caused quite a stir with his venting on NetworkManager (which I am using btw), my biggest irritation currently is that the gaim tab keeps on blinking on the panel even when I have maxized the chat window and seen the message, only way to get it to stop blinking is either reply, switch message or close the window. If they could make it stop blinking after receiving messages I would be very greatful.

Caleb did some major librsvg hacking this weekend. With his latest commit the infrastructure in in place in librsvg for full animation and DOM1 support. Your kicking ass Caleb!

Big steps forward for librsvg

As pointed out in Dom’s blog things are moving fast forward with librsvg these days, mostly thanks to Caleb. But both Dom and Carl Worth have been helping out as well. I have been updating the test tables almost daily recently as testcases have been fixed or improved. A recet fix by Caleb which I love is improved handling of percentage sized images, you can easily identify them in the table as both Batik and Inkscape tend to render them at the wrong size.

Tried taking a image comparison script by Bryce based on the Motiontrack package and use it to create additional stats for the SVG comparison chart, but I gave up after I couldn’t get it to give me a result I felt actually was informative. Font differences between the w3c reference images and my linux system didn’t make the commparison more trustworthy either.

Caleb is planing on working on some of the structural stuff needed for ICC support so that we can get that going next with Ross’s help.

Back from Vacation

So I just came back from a long weeks vacation in Norway. Had a great time overall. First weekend was spent celebrating my oldest sisters 30th birthday. Was kinda fun and yet scary to see how some of her girlfriends had evolved. Had a couple of ‘yikes, good thing that never worked out moments’.

Hang out with my friends Tron, Christian and Thomas on Monday watching a movie, started watching the Star Wars Holiday Special also, but it was so horrible we stopped halfway inn. Kinda understand why George Lucas want it dead and burried.

Took it easy on Thuesday apart from a trip to the doctors to have a bit of microsurgery done. Vanity might not be a good thing, but I don’t really care :)

Went out for a few beers with Owen Frasier-Green on Wednesday. Got reminded of the prices in Norway when 14 beers and 2 burgers ended up costing 120 €. Still we had a good time, and it was quite nice to be able to stay at a bar and not be bothered by cigarette smoke.

Went to a business meeting which Owen had set up for me during the day. In the evening I spent some time with the familty on Thursday just eating good food, talking and watching some telly.

Went to a release party for the new Depeche Mode album on Friday. Got lucky and won both LP’s and CD’s with various remixes of their latest single and also the collection CD with all their major singles up to 96. Since we where there for my friend Christian’s birthday and he is the big Depeche Mode fan among us I gave everything apart from the singles collection cd to him (he already had that).

Spent Saturday morning digging out stuff from the storage room which I was planning on bringing back to Barcelona. Chilled in the evening.
On Sunday I tried help my friend Thomas get his tv-capture card going, but there probably was some driver issues under Linux yet.

Making free formats competitive

We have some technically good solutions available now in terms of Vorbis, Theora an Dirac. The codecs produce good quality audio and video and is slowly but surely seeing increased uptake. Yet the uptake could be even speedier, but there are some things that needs to be done:

a) RTP support – we are already working on that through the Xiph RTP project. Essential for our codecs to be used in VOIP and multicast scenarios.
b) Profiles – define profiles for various usage like its done for MPEG. For many vendors having standarised profiles, like mobile and main, is essential before they will consider using our codecs.
c) Surround sound – Vorbis can theoretically do multichannel audio, but not very efficiently. Work should probably be done to create a vorbis variation which can compete more head on with AC3 and DTS. Any community members interested in working on this?
d) Content sites – in an email exchange with someone working in the content industry about formats I suggested using Ogg for distributing trailers. The person I talked with agreed (although it wasn’t his decision to make), but said that the main reason they didn’t distribute trailers in Ogg format was simply because none of the major trailer sites requested it. Maybe something that Google could help out with?
e) Tools – I mentioned this before and it is still an core issue, we need more and better tools available for creating/handling content. This is an area where I see a lot of movement, both with the work we are doing here at Fluendo with our work GStreamer, Flumotion and Pitivi, but also from other members of the community with efforts such as DIVA and Thoggen.

Fluendo joins the GNOME Foundation

So together with Imendio and OpenedHand we announced joining the GNOME Foundation today. We have discussed it a lot back and forth for some time, but in the end the fact that GNOME is using GStreamer made us decide it was in our interest to join. A big thanks to David Neary for his relentless work to make this happen.

Community hiring

From time to time and think about the community and the effect the increasing level on hiring have on it. Mostly in a purely practical context. It is clear to me that the ever increasing rate at which people in the GNOME and GStreamer communities are getting hired is a long term win, but can cause a lot of short term problems. Especially in the case when people get hired to work on something else than they have been doing up to the point of getting hired. Let me take one example. Two people I would love to be able to hire to Fluendo at some point are Dom Lachowicz and Caleb Moore. The reason for this is that I know they are both top of the line hackers based on my experience with them in regards to librsvg which they co-maintain. Hiring them to work for Fluendo would of course mean they would be working on projects directly related to our business, which at least at this point do not include much SVG. Also from experience I know that when people do start working fulltime on free software they tend to work less on it in their free time. Partly because they tend to do long hours, partly cause the hacking on free software itch gets fully satisfied as part of the workday. So while having Caleb and Dom work for Fluendo would be a net win for free software in general, as they would work on free software projects of immediate importance to Fluendo, it would be a net loss for librsvg, which would find itself without any active maintainers suddenly.

Over time someone else would probably come along and take over the project, but it could mean a long period of time where an important project for the community goes without any new development or bugfixes.

One example where something like this did happen, was Rhythmbox, where Walters got hired by Red Hat. After that he simply didn’t have that much time and energy to hack on Rhythmbox anymore, although the total ammount of time he spent on free software development probably increased greatly, but most of it went into projects of more immediate importance to Red Hat.

Anyway, so whats my point apart from pointing out the obvious. Not sure actually :) The issue I have been pondering is if there is any way we can make transition periods like these shorter and smoother somehow. Hiring is good for projects like GNOME and GStreamer overall and good for the people getting job of course, but they do increase the turnover rate quite a lot on the individual project level which do and can cause some pain.

Return to the land of the free(zing)

So I am going back to Norway for a week on vacation and to celebrate my oldest sisters 30th birthday. Looking forward to it although I was told it was about 5 degrees Celsius in Oslo atm.

Traveling log – San Fransisco

So I travelled to San Fransico with Julien and Pascal last week to have some customer meetings. It was the first time I travelled to the states on business class, and it was a rather pleasant experience compared to coach. So how was it you say?

Well coming onboard I found that my seat was in that little second floor room they have on the Boeing 747 planes. The seat is one of those where you can lay it down horizontally to have something where close to a bed, and there is a wall you can put up between you and the seat next to yours, so you almost have your own little cubicle. The rest is what you expect, you sit around chatting with the rest of the social elite, exchanging fun stories about horrible experiences with the proletariat, ie. the people traveling on coach.

The best part though was the sing-along we did. The tune was theme song from Annie, ‘It the hard-knock life’ but the lyrics was improved. Here is a small sample for you:

[PASSENGERS]
It’s a bourgeois life for us!
It’s a bourgeois life for us!

[CREW]
‘Steada working,

[PASSENGERS]
We get pampered!

[CREW]
‘Steada water,

[PASSENGERS]
We get Champagne!

[ALL]
It’s a bourgeois life!
Got to many servants to speak of, so,
It’s a bourgeois row we how!

And so it went on, it was a beautiful experience.

In San Francisco our customer meetings went very well and I also got to hang out a couple of evenings with the legendary David Schleef. San Fransico seems like a very nice city and I would love to someday spent more time there, all my visits so far have always been for just a few days with a heavy program. David celebrated his birthday while we where there, so Julien treated us to a nice meal at a local french resturant.