GSoC '17 - Final Report
28 Aug 2017This summer as part of Google Summer of Code 2017, I worked on the project “Pitivi: Color correction interface using three chromatic wheels”. As GSoC concludes, I’m writing this post as part of my final submission.
Status of the project
I worked on the task T3263 to setup the infrastructure to allow special effect interfaces. Previously, Pitivi simply autogenerated the UI for an effect based on the effect properties. Differential revision D1744 sets up the API to allow custom UI for an effect and D1777 improves the mechanism by providing a way to have a few custom widgets for effect properties while autogenerating the rest of the UI. If you’d like to know exactly how this mechanism developed and how it works, please refer to my GSoC Phase 1 Progress Report.
As an example to use this custom widget API, I worked on the task T7761, implementing a simple UI for the alpha filter effect - differential revision D1745
And finally, I worked on the task T2372 making the ‘Color correction interface using three chromatic wheels’ for the 3 point color balance effect. I had to learn how to make custom Gtk widgets and cairo for making the color wheel widget. Being new to this task, I referred to the GIMP’s color wheel widget and ended up making a standalone version of it removing dependencies like libgimp.
However, we decided to use the GtkHSV for now instead of my implementation because although GtkHSV has now been deprecated it is still available as part of Gtk3 and is far more superior than my basic color wheel. Perhaps, it would be nice if we got the widget from upstream and if not, the alternative is to improve my implemenation of the color wheel widget which can be found here. D1838 holds the new custom UI for the 3 point color balance effect.
I was able to achieve one of the stretch goals of GSoC, task T7810 to implement color picking functionality. Differential revision D1855 introduces the ColorPickerButton which allows picking color from anywhere on the screen. As a result, the ColorPickerButton can be integrated in many places in Pitivi! :)
To summarise, here are the links to my work:
- T3263: Infrastructure for custom, highly specialized effect user interfaces
- T7761: Interface for the alpha filter
- T2372: Color corrector using the three chromatic wheels
- T7810: Implement the ability to pick a color from a pixel in the viewer
As of now, these revisions have not yet been merged. My immediate task is to follow through the review process to get these revisions merged.
The final product of my Google Summer of Code looks like this!
Final Words
I would like to thank my mentor Mathieu Duponchelle (Mathieu_Du) for guiding me. He’s been really encouraging and thoughtful. A special thank you to both the current maintianers, right from when I started contributing to Pitivi earlier this year, Alexandru Băluț (aleb) and Thibault Saunier (thiblahute) have been extremely helpful. It’s been great working with these people at Pitivi. I’ve had a wonderful journey so far. Ofcourse, this is not the end. My work for GSoC introduces so much more possibility and I would like to explore and continue contributing :)
Until next time.