Archive for June, 2007

As promised

Saturday, June 30th, 2007

Having fun with my new gstreamer/OpenGL-fu.

gl-gst-player
(click to play back, ogg/theora, ~2.4 MBytes)

The code for gl-gst-player I uploaded to f.d.o in my cozy git-repo here. It is unfinished, unpolished, undocumented and probably will not work on anything but i915 or i945 graphics hardware (only tested on Ubuntu 7.04 and Fedora 7 sofar). There are tons of remaining issues, missing features and other things I want to do with. Be aware of that before you grab it. After all, this is my gstreamer-playground for lowfat so never expect gl-gst-player to ever be something that can be considered finished.

experimenting

Friday, June 29th, 2007

Here are three experiments for elisa’s top-level menu I’ve been working on during the last week. The first is using the stock elisa-artwork and a layout-mode I call “chain”. The second and third variations both use a “style” I quickly threw together. It uses Tango-icons and a simple background drawn in inkscape. The font used is “MgOpen Cosmetica” (due to the lack of the right hardware in forms of cable and computers with working TV-out, I was not able to test this font on an interlaced display).

The layout-mode in the third example is called “carousel” and inspired by FrontRow to some degree, but it’s better *g* When you make it move faster, which you cannot do in FrontRow by the way, the elements are pulled together more closely to be “able to rotate faster”. This is of course just made up and not needed, but I like to give this thing that “realistic touch”, which reminds one of the experience one would get on a carousel.

There are still issues remaining to be solved for the carousel-mode, so I do not call it done yet. And yes that asian text is coming from an unicode-string (and hopefully correctly translated) and rendered nicely thanks to pango/cairo.

top-level-menu-1
(click to play back, ogg/theora, ~2.4 MBytes)
top-level-menu-2
(click to play back, ogg/theora, ~1.8 MBytes)
top-level-menu-3
(click to play back, ogg/theora, ~2.4 MBytes)

Hey you… yes, you!

Thursday, June 28th, 2007

Hack on OpenSource software! Now!

And come to LugRadioLive 2007

and GUADEC 2007!

Sorry, I could not resists *g*

Looking over the fence

Tuesday, June 26th, 2007

I found this via OpenGL.org. If you have 10 minutes to spare and are interested in the viewpoint regarding OpenGL vs. DirectX10 from a Windows-developers perspective go ahead and read it. I honestly have no idea how much of the stated claims about the grief with Vista and DirectX10 are true, but boy does that sound nasty!

And yeah… go and see the tech-demo John Carmack did at the Apple’s WWDC2007 (link of the demo at youtube.com)

Disregarding Vista and DirectX10 the near and long term roadmap for the evolution of OpenGL (OpenGL 2.x, codename LongsPeak - OpenGL 3.0, codename Mount Evans) looks very sweet and I’m excited about all the new capabilities we will get!

BTW, did I mention that we should… ehm… need to embrace OpenGL more vigorously under GNOME? :)

fruits of spare-time labour

Monday, June 25th, 2007

own deeds:
After the last post regarding my OpenGL/gstreamer video-player I was contacted by a few people asking me for the source. I refused these requests sofar… almost. It was in a sorry state and still isn’t what I would be proud of, although it is better now. Nevertheless some people from Tandberg asked for it, in order to demonstrate the stylish power of mixing OpenGL with gstreamer for video-conferencing applications… and to add some extra bling-punch to a presentation they needed to give for their managers. So I gave in and send them the tarball. They hooked my code up with their webcam stuff (some of their equipment is able to capture 720p at 60Hz 30Hz!) and had a pretty successful presentation. The result of this you see in the left picture (this is using a more modest setting of 640×480@30Hz). I hope they will obey the LGPL I put my code under. Just received their tarball. I will see to sort and clean things as good as I can and upload the stuff this coming weekend at my cozy f.d.o spot.


(click to view fullsize)

(click to view fullsize)

The right picture shows the current state of affairs (playing back one of Microsoft’s WMV9/HD-example videos, which are publicly available *g*). gl-gst-player is now able to play back any video I can throw at it, e.g. ogg/Dirac (yes Dirac using the Schroedinger implementation! I tested that with a dirac-encoded version of “Elephants Dream”), ogg/Theora, mov/H.264, wmv/VC1 and all the other things gstreamer can digest. By now I was able to make some progress and have fragment-shader-based (only using the ARB-extensions, 4 multi-texture units, one texture for the yuv-frame and one for the mask-texture) YUV2RGB colorconversion (I420 to RGB to be more precise) running on my i915. This is on the application-side not at the driver-level. Now I can even watch HD-video on my Vaio which e.g. totem cannot play back smoothly or at all (mainly due to XV failing). Before starting to polish the code and put it in my public git-repository at f.d.o I want to finish the other filter-effects I need (gloom and a special blur). Sadly I don’t have FBOs or pbuffers available on my i915 and am restricted to glCopyTexSubImage2D()… and I wish I had GLSL available for the i915 *sigh* If all goes well and I find the needed time to do all that, this might still happen before GUADEC.

deeds at Fluendo:
Here is a nice example of the kind of the abstraction level Python-developers feel right at home at ;)
The blue thing (PowerBook) controlls the green thing (Nokia cell-phone) to issue commands within a python-session triggering bluetooth-commands, that are sent to the red thing (Vaio) acutally controlling the current upstream version of elisa. In this particular case, which is captured on the photo, is it selecting/playing/pausing a video. By now - two days later after the photo was taken - the bluetooth input-provider in elisa works good enough to just use the cell-phone (currently only tested on one special Nokia phone) as a bluetooth-remote for elisa running on a bluetooth-enabled computer.


(click to view fullsize)


This is the deed of Arek and Florian, two employees at Fluendo, working late at night on the weekend… abusing Arek’s PowerBook, Florians cell-phone and my Vaio. Too bad my own cell-phone isn’t bluetooth-capable and lacks a built-in python interpreter. BTW, on Florian’s cell-phone you can even write OpenGL|ES programs via python. That’s seriously nifty!

There is some sympathy…

Thursday, June 21st, 2007

… towards Python-programmers I have to admit. Slightly over-generalizing here to be honest *g* It is of the kind where a Python programmer (Arek, a new dude at Fluendo) helped me today debug something I spent the last five days on. Just one line of code that made all the difference. The sort of bug where you need a fresh pair of eyes approaching something totally unbiased. Well, thanks for that, Arek… I owe you a beer, coke, pizza or something like that!

Although I still don’t like Python…

Wednesday, June 20th, 2007

… I managed to get this done with Python:


(click to play back, ogg/theora, ~21.0 MBytes)

It’s a grid-view widget I started writing last week for Elisa. While the screencast is not as smooth as the real thing it shows nicely the fully dynamic nature of the widget and the layout of its contained elements.

More info will follow tomorrow as I’m in the fluendo-office for 13 hours straight and need food, sleep, money and that kind of stuff. Good night!