GSOC 2017 coming to an end

Having entered the final week of the GSOC calendar, it is time to wrap things up and reflect on what I’ve accomplished this summer.

My project involved implementing a way of simulating the Ken-Burns effect in Pitivi. More precisely, the goal was to add an interface which allows keyframing the transformation properties (x, y, width and height), much like we do with other properties in Pitivi (like audio track volume, for example). I managed to complete this project about a month ago, when I also made a video which describes the feature in more detail:

Since then, I’ve been helping with the next release of Pitivi, while also solving some small issues with the Ken-Burns feature that Alex Balut noticed while trying it out. For more details, you can check out my previous blogs, where I’ve described what I’ve been up to. What’s not covered there though is the progress of the last two weeks. So, let’s talk about that. For the most part, I’ve been working on this task, whose purpose is to save the encoders advanced properties in the .xges file, so the user doesn’t have to enter them each time they load the project. Although it’s not completed yet, it should be pretty soon.

With that said, I’d like to thank my mentor, Thibault Saunier (a.k.a thiblahute) and also Alex Balut (a.k.a aleb), for all the support they gave for the last months. Their code reviews and the IRC discussions helped me understand things better and move forward whenever I was stuck. It’s been a truly great summer of code, one in which I learnt a lot of new things and got to be part of an amazing community.

Sailing towards Pitivi 1.0 (with some stops along the way)

With the Ken-Burns effect project completed, most of my last two weeks were spent working on some existing tasks that should be solved for Pitivi 1.0, so we can get it out sooner. Here are some things I’ve been working on:

  1. Make sure well supported audio streams are not proxyed even if they are not in a container: T7756
  2. Solved a bug where the undo stack sometimes crashed when moving the viewer: T7800
  3. Added the possibility to create custom validation checks for the advanced properties of the encoders, which will make rendering more robust in the long run: D1804

Also, Alex Balut (aka aleb) found some time to test the Ken-Burns branch and suggested some changes. Therefore, the sail towards Pitivi 1.0 had some stops, in which I spent my time working on making the Ken-Burns project a bit better. The most noticeable improvement is the fact that the displayed values of the transformation properties are now updated more often, so they are more accurate (they were sometimes completely wrong as we were not updating them when we should have).

With that said, I will continue helping with the Pitivi 1.0 release and keep you posted on the progress. Until next time!

Pitivi: Transformation properties keyframes ready to land

In my last blog post, I was telling you how my GSOC project was close to its completion. Since then, I’ve been working on getting it to a deployable state, while also adding some final touches. Now, it should be ready to land and you’ll probably see it included in Pitivi 2.0.

About the final touches: one is extending the undo/redo system so it can handle activation of transformation properties keyframes and the reset to default operation (which will deactivate the keyframes).

The other one I’ve been working on is a mechanism which allows selection of the transformation properties keyframes. Before this, the only way of navigating to a certain keyframe was using the two arrows in the transformation box.

4

Now, you can also click on a keyframe to select it and the playhead will seek to its position. This should make navigation a bit more intuitive.

So, what’s next? Having anticipated that this project wouldn’t keep me occupied for all the summer, the plan at the beginning of GSOC was to start implementing another feature: rendering only a portion of the timeline. However, after discussing with my mentor, we decided that it would be better to work on solving some existing issues in order to have Pitivi 1.0 out as soon as possible.

Until next time!

Pitivi: Keyframes for transformation properties

With a bit more than a month into the GSOC coding time, my project is almost complete. As a reminder, I was working on implementing a keyframe curve for the transformation properties (which control the positioning and size of a clip) in Pitivi.

For the last two weeks, I’ve been working on integrating the newly added keyframe curve with the undo/redo system, as well as allow values for the keyframes to be specified by dragging the viewer. I’ve also had some battles with a pretty nasty bug which made the app crash all of a sudden. Fortunately, my mentor, Thibault Saunier, took a look at it and managed to crack it, so everything should work fine now.

With my project being close to completion, I thought it would be a good idea to make an extended demo video in which I explain how the new feature works:

I’m looking forward to your feedback or any suggestions on how to make the feature better. I encourage you to keep reading my blog for further updates.

Happy coding!