Archive for the ‘General’ Category

Sync me up !

Wednesday, April 9th, 2008

Question for the internet:

I have a phone (Nokia N80), lots of GNOME/Gentoo computers and some internet tablets. Add to that… I’m starting to move more and more for business/leasure, sometimes I only have the phone on me and I need to have all my contacts/calendar/tasks/notes synchronized over all of those devices. I’ve been trying to find a FOSS solution to do this… but haven’t found anything coherent.

What do people use that can run on all those devices and properly synchronize that information across all of them ? I’m open to solutions that require setting up a daemon on a server. And obviously… it needs to be free software (although for the phone part it might be hard) :)

PiTiVi 0.11

Monday, October 15th, 2007

So finally, after much delay, the PiTiVi team gives you: PiTiVi 0.11.0 “A hooligan’s game played by gentlemen”

This is the first release of the 0.11 unstable serie. What does the 0.11 branch mean for users and PiTiVi followers ? It will be released more often (we’re aiming at every 3 weeks), (almost) regardless of current code status, in order for you to try out the latest improvements and bugfixes, give you a more periodic idea of where PiTiVi is heading towards, and allow you to give us more regular feedback. Most of the current work is going to be concentrating on this branch, in order to finally come up with a stable branch within the next 6months.

What does it contain ? The major part is the work Brandon did for the 2007 Summer of Code, which contains a lot of nice improvements to the simple timeline. You’ll also be able to play around with the Advanced Timeline which has been re-enabled. Brandon is carrying on his amazing job post-SOC by working heavily on the project save/load framework, most of the work is currently in the code but not yet enabled. Luca Della Santina has also been commiting the beginning of a promising plugin system to extend PiTiVi’s feature-set. All in all, good stuff coming ahead !

More information on the 0.11.0 release here : http://www.pitivi.org/wiki/0.11.0

Contact adress

Monday, July 2nd, 2007

Seems like my last blog entry was missing something important at the very bottom.

You can now contact me at bilboed AT gmail DOT com or bilboed AT bilboed DOT com . All mail going to the fluendo address will most likely go to /dev/null .

Is that a video editor ?

Sunday, July 1st, 2007

You have no idea how many times people have asked me that question. And every single time the answer was “We’re adding features gradually making sure it keeps stable every step of the way. We still don’t have the basic editing features.”. The we in that sentence is for “PiTiVi team”, which was me alone until now apart from a few outside patch contributors who will get their overdue’d beers at GUADEC 2007.

Flashback (first cvs entry):

Author: bilboed
Date: Sat May  1 10:48:55 2004 UTC (3 years, 2 months ago)
Log Message: Initial revision

The first 6 months were done outside of CVS and without filling in the ChangeLog appropriately (that has changed since, don’t worry). So yes, it has been in fact 3 years and 8 months since PiTiVi was first hacked on.

Quick refresher of PiTiVi history

December 2003 - March 2005

  • PiTiVi was my end-of-studies project for the last 2 years at school. I had been wanting to do an open and flexible video editor for ages by then. This was the chance to actually get it done. “Yeah, we’re 10 students and within 18 months we should have something nice” … oh man… what a fool I was.
  • I’d already played around with GStreamer at that point, and I was sure it was the best option to do such an editor… except I hadn’t accounted for the fact that I was going to spend the next 4 years fixing GStreamer, plugins and GNonLin to actually get it to a level stable enough for a video editor :) We didn’t take into account that we were students, had different views and motivations on that project, etc…
  • End result : we had a limited, special cases only editor… So still far away from something usable.

March 2005 - June 2007

  • Working at Fluendo, first as a 6months internship… and then as a Junior Developer (if you laugh, you don’t get free beers at GUADEC!) .
  • The reaction all of you must be having is “But if you were working all the time on PiTiVi, how come it’s still not full featured?”. Well the answer is quite simple : I was NOT working all the time on PiTiVi.
  • I was also working on converting the python bindings to GStreamer 0.10 and maintaining it, taking care of gst-ffmpeg, doing bugfixing in plugins, adding new features to GStreamer core (hello multiqueue/decodebin2), doing work for other sections of Fluendo, doing consulting work, giving trainings, etc… Yeah, it’s a company, we actually needed to make some money :)
  • What did I really do on PiTiVI ? Convert it to python (best move ever), switch GNonLin (the non-linear plugins for GStreamer) to 0.10 and bringing them to a more stable level (ok, fine, the Jokosher team did find some bugs, but were quickly solved), fix core/plugins issues related to encoding/decoding/accurate-seek/transcoding/…
  • Looking over my work stats for the past 8 months, I’ve in fact been doing 62% work on consulting work, 11% on community work (I fixorz yo bugz), and 28% of the time only on PiTiVi work (including lower-levels works).

“Dude, almost 4 years ? And you still don’t have basic editing features ?”

Well guess what : NO LONGER !!!! For teasers, I give you a screenshot of the triming features in PiTiVi where I can change the start/stop position of a clip used in a timeline :

Editing in PiTiVi

How did this happen ? Well thanks to the awesome work Brandon Lewis, the SoC student working on PiTiVi, has been doing on creating widgets, I was able to link up everything within one day… and voila :) It still has some rough edges, but we’re working on doing a preview release by GUADEC. Lots of other stuff are in the bag for the SoC : effects, transitions, picture support, project file save/load, ….

Post-Edit : All this work is available in the PITIVI_SOC_2007 branch of PiTiVI for those wondering.

“I want feature XYZ in PiTiVi NOW!”

By now, you might have guessed that bribing/paying/drunken-ing me is not the way you’re going to get that feature faster. The only way that is going to happen… is by having more contributors ! If you’re good at UI designing, writing widgets, with gtk-python …. send a mail to the mailing list and we can start sharing the workload of what’s left to do to create the killer video editor. There are some low hanging fruits that can be solved if you’re comfortable with gtk-python, and some challenging features if you’re comfortable with gst-python and editing concepts.

Grab me or Brandon at GUADEC for a chat if you’re interested. I’ll also most certainly setup again a GStreamer hackfest as we did last year, so if you feel like having a hands-on experience, join the fun !

No longer at Fluendo

Nothing much to say about that currently, more in the coming weeks. What a blast it was though… but times are different, things have changed at Fluendo… and we’ll see where the wind blows this time :)

Back from Fosdem

Wednesday, February 28th, 2007

The FOSDEM weekend went down great as usual. Met the usual folks, and many more new people. Alway refreshing to put a face and personality behind a IRC nick :)

The talk I gave on “GStreamer: What’s New?” was well received. I had a hard time in fact both reducing the talk to fit in the limit of 45 mins and keeping it not too technical, but it seems to have paid off. The slides are available here in OOo format.

As I mentioned during my talk, we’ve been working hard on making GStreamer work on other platforms, including Windows and MacOSX. We’d love to receive more feedback on their usage, especially from MacOSX users/developers. If you want to give a ride, install fink and either use the available package (although they’re a bit old now) or compile your own GStreamer from releases or cvs. BTW, if a fink maintainer sees this post, updates to the existing GStreamer packages would be nice :)

The native MacOSX video sink is coming on nicely… but sometimes you hit some wall, like NSAutoReleasePool (objective C explicit garbage collector) not being able to work across multiple threads, which makes it impossible to avoid some warnings about objects leaking. In GStreamer plugins your entry points (pad functions, element methods, …) can be called from different threads, and you shouldn’t have to care about which thread it is (well you need to protect data that can be called by different threads with locks, but you get the drill), but with ObjectiveC you apparently need to create one of those pools for each new thread… tricky since I’m not the creator of those threads, they’re created outside of the scope of my plugin. If an ObjectiveC guru knows the trick, I’m dying to know it.

Hello Planet Gnome

Tuesday, February 13th, 2007

A New year, and plenty of surprises…First of all, hello to Planet GNOME and thanks to Jeff for adding me. Quick presentation for those who don’t know me. I’m the author of the PiTiVi video editor, maintainer of the python bindings for GStreamer, the GStreamer GNonLin plugins (used by PiTiVi and Jokosher) and the ffmpeg GStreamer plugins. I’ve been hacking on GStreamer ever since I started PiTiVi, wanting to fix issues at the lowest level instead of making yet-another pile-of-hacks application, and I carry on doing so by debugging and implementing new features in GStreamer core. Not only do I spent a lot of time doing all this hacking during my free time , I am lucky enough to also be able to do so as part of the consulting department of Barcelona-based Fluendo along with a great team of hackers.

What can you expect on my blog ? Mostly insights on PiTiVi and GStreamer development, my views about GNOME, FOSS and the world of today and also sometimes ramblings about French cheese not being weapons of mass destruction.

Good news ! PiTiVi 0.10.2 was released 2 weeks ago, with a truckload of bugfixes. Tests, bug-reports or comments are more than welcome. I’m currently working on the editing interface for the simple timeline with the goal of being able to *finally* show some real editing at FOSDEM.

So yes, I’m going to FOSDEM, where I will be giving a talk about what’s new in GStreamer and what’s currently being developed under the hood. This talk will happen in the GNOME developer room. If you want to see what niceties are coming round the corner, come along !

Finally, hacking and having a real life is not always that easy, so LOTS of love to Emma, my girlfriend, who’s been an angel for the past 7 years, and whose birthday it is today.

Decodebin2 has landed in CVS !

Tuesday, November 28th, 2006

Spent yesterday and today doing the last cleanups in GstDataQueue, the multiqueue element and decodebin2. Mostly adding documentation, making sure the API of GstDataQueue satisfies all future requirements, etc…
… and finally commited it to gstreamer and gst-plugins-base ! So you can either grab cvs and start testing it, or wait for the 0.10.11 releases for those two modules, which should happen next week.
On a side note, Colin, a friend of mine with whom I graduated last year, is now working part-time for the Elisa team at Fluendo ! And today he also released his first album, go check it out on his website.

The "Gringo" is back from Brazil

Thursday, November 23rd, 2006

Last week, I went over to Recife, Brazil, to give a advanced GStreamer training course to the INDT folks. Despite it being the first training I ever gave (I already did several lectures and practical courses, but nothing this intensive), it was IMHO a real success. First of all, because of the attendees who were ALL extremely motivated and interested by the subject, asking the smart questions, digging deeper and deeper. Satisfying their thirst of knowledge was the other rewarding part. I discovered I knew more about GStreamer than I thought, and I deeply enjoyed transferring that knowledge.
I staid at Andre’s place during that week, and it of course involved lots of going out, drinking, and yes even a hackfest ! All in all it was excellent. I’m looking forward to going back there, for work or for leasure. You can see some photos from the trip here

Anyway, I’m now back in colder Barcelona, and after a little personal review the decision was made to concentrate myself more on PiTiVi and direct GStreamer hacking. Don’t expect me to be as reactive as I was before to fixing bugs in various plugins or gst-python, it won’t happen until I get PiTiVi to a stage where you can do editing, namely cutting, resizing and moving around sources as you can see in the UI Mockups. I think it’s better both for all the end-users who’ve been waiting so long, and also as being a more productive Fluendo employee (Being paid to work on PiTiVi doesn’t come for free, but it’s a price I’m willing to pay).
Last of last, for the past 2 days I’ve been going over decodebin2 even more, fixing some last issues, testing its behaviour with the gst-media-test against current decodebin and it’s now performing as well, takes less memory, and doesn’t leak any memory. So expect it to land in cvs tomorrow. I’ll also patch playbin so that you can use playbin with decodebin2 if you have the proper environment variable set. Unfortunately, in the long run playbin is going to have to be modified/rewritten in order to benefit from some new features that decodebin2 proposes… which might be a good thing considering playbin hasn’t changed much in the port to 0.10, and it might be time for a clean rewrite.

dead cheap 20Mb/ADSL … at what cost

Monday, November 6th, 2006

Over 6 months ago I got a 20Mbit/s ADSL2+ connection with ya.com here in Spain. Of course you never get 20Mbit/s with those connection but I got a nice 15Mbit/s. Perfect for getting something immediatly, watching HQ streams without bothering about somebody else using the net in the house, etc… All in all, I was really pleased about it…
…until a month or two ago, where starting from 6pm the speed drops down to 512kbit/s (if I’m lucky) with very high ping. Of course that is the time where I want to watch some streams to chill out, maybe do some work from home… GRRR
After further investigation, it’s caused by my DSLAM server being saturated at those times. And by looking on spanish user forums, I’m far from being the only one with a saturated DSLAM.
So my question is : How long are those ISPs going to carry on with all that saturation without doing anything ? Switching ISP is not an option, since it will be using the same DSLAMs except if I switch to Telefonica (state operator) which has its own DSLAMs… at 150euros a month for the same connection (yes, that’s 6 times more than what I’m paying).
Calling doesn’t seem to change anything (except for being charged 30mins of wait on a premium number). Was there anybody in the same situation ? What did you do to pressure the ISPs to add DSLAMs in saturated regions ?

Decodebin 2 : less cruft, more zing !

Sunday, November 5th, 2006

Christian blogged some time ago about me working on decodebin2. And it’s finally landed in bugzilla for your reviewing pleasure.

You will need the following 3 patches:

  • GstSafeQueue : an GObject that contains all the threadsafe queuing functionnalities of a GstQueue. This allows elements to use such an object to add some queuing features, without having to worry about thread issues. The patch also contains a patched version of GstQueue using GstSafeQueue (notice how small it becomes, and no more explicit use of locks !). Patch #344639.
  • GstMultiQueue element : A GstElement that acts like GstQueue except that it controls several streams. If all you streams are linked, it won’t differ that much from several GstQueue. But where it gets nice, is that if one of the source pads isn’t linked (because there are two different language audio streams going through it and you only listen to one at a time), then the multiqueue element will continuously try to send data downstream in the same order it arrived in multiqueue in regards to the other streams. This means that if you switch to listening an different audio stream… you won’t loose any data. Patch #347785.
  • decodebin2 element : Same goal as decodebin, written from scratch, using the notion of groups and multiqueue to cope with some functionnalities which have always been broken : chained-oggs, multi-audio-tracks, choosing non-raw streams… You can have a look at the decodebin design document for more details. Patch #370092.

The next step, apart from testing decodebin2 even more, is to scrape out all the cruft in playbin which is not needed anymore with this new design (queuing, audio switching, chained oggs, ….). Feedback is welcome as usual.


Bad Behavior has blocked 59 access attempts in the last 7 days.