Date

Writting this post from San Francisco where I am spending some volcanic, work and little sightseeing time :)

Work/Hacking

I initially came here for the first WebKit Contributor Meeting with my Igalia coworkers Alex, Juanjo and Xan. We used the time here to also meet a customer we have in Bay Area and some of us attended ELC and Linux Collab Summit too. I was meant to attend the last day of ELC but we were a bit late asking for it so it was dropped from the long queue of people wanting to attend as well :/

People attending ELC and/or Linux Collab got a free Google Nexus. I was kinda sad to not get one because of that registration issue and Juanjo kindly gave me the one he got. So I will try it for a while, write a little N900 vs NexusOne blog post and probably give the phone back to some Igalian ;). Thanks Juanjo!

The WebKit meeting was interesting. Although I didn’t make much talking I attended the session about moving to git, the one about how to deal with experimental features, the WebKit2 one and finally the one about the Media Elements. The last one was interesting for me especially because I work on the MediaPlayer stuff in WebKitGTK+ ;)

This last session motivated me again to work on video fullscreen for WebKitGTK+. I have now a working patch and hope to share some FullscreenController code with the windows port (and mac maybe). The way I did it is the following:

  • create a bin which will serve as video-sink for playbin2
  • link a ghost pad of the bin to a tee
  • in one branch of tee I added a queue and our internal webkit videosink
  • when the user requests fullscreen I create a new branch with a ffmpegcolorspace, queue and autovideosink
  • overlay is handed of to a window created by the fullscreen controller
  • when user exits from fullscreen I remove the branch from the tee.

I can now enter fullscreen by clicking on the fullscreen button of the media controls and leave fullscreen by pressing escape of f. So the next step is to draw some media controls over the video and handle the actions. Not sure what to do with the browser window when fullscreen is activated… hide? pause? Suggestions welcome :) Safari for instance animates the video box so it nicely takes all the screen estate, not sure I can do that with GTK

Lately I’ve also been working on astracting some things away from the MediaPlayer backend so it can eventually be reused by other ports. I even started experimenting on mac! More to come on this. So what I needed to fix/abstract:

  • I moved the cairo calls from the paint method to new ImageGstreamer abstractions
  • The libsoup calls in the webkitsrc element have been ifdef’d. The message pausing/resuming needs to be abstracted away.
  • If the underlying application doesn’t run on a gmainloop the gstreamer messages need to be processed with a synchronous handler.
  • ports implementing fullscreen need adaptations as well (use overlay when possible, see above).

I’m not yet really proud of all these patches so this seems to appear as teasing-only, sorry for that ;) I will blog about this again when the patches land in trunk.

Tourism

I was supposed to leave SF on the 15th of april but a volcano with a name a french guy like me can’t pronounce decided otherwise! Alex, Juanjo and Xan managed to fly back because Madrid airport wasn’t closed. So Frank and I went on a little road trip towards Muir Woods and Reyes point. This is an amazing landscape, we even saw a reserve of elephant seals :) In SF we also went to the Golden Gate park and the Japanese park inside, very nice. All the week was the occasion of eating japanese food, burritos, cable-car(ing) and walking endless miles on the hills of SF. Last saturday was Mike’s birthday party and I was supposed to leave on sunday. The flight was cancelled for the second time. Mike kindly accepted to let me sleep in the guest room and I worked from a cafe in Oak street.

This time in SF was also a good occation to see other people stranded like Christian, Robert, Philippe (all 3 from Collabora), Marc (fellow fluendo coworker) and some locals like Brandon Lewis, David Shleef.

My next attempt (hopefully the last!) to reach Spain is scheduled for this friday, the Ashing seems somehow to let planes fly (or is it the airlines lobbying over politics?) so I have good hopes this time.

Dude this is the longest post I ever wrote. Thanks for reading (or skipping :)