Tag: pitivi

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.


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!

Pitivi: UI for the Ken-Burns effect

It’s been three weeks since the coding period for GSOC 2017 started, so it’s time to show the world the progress I made. A short recap: I’ve been working on building a user interface which allows simulating the Ken-Burns effect and other similar effects in Pitivi. The idea is to allow adding keyframes on x, y, width, height properties of a clip, much like we are doing with other effects.

Fortunately, my mentor, Thibault Saunier, implemented this feature about 2 years ago, but a rebase of that branch was impossible, as the codebase underwent a lot of changes in the meantime. Even so, having his work as a guideline allowed me to move pretty fast. By now, I’ve implemented an interface that can be used to add and remove keyframes on transformation properties, using the transformation box to specify values at various timestamps. Here is a short demo:

What remains to be done is integrate the newly added feature with the undo/redo system, as well as allow users to specify values at various timestamps by interacting with the viewer. I encourage you to keep reading my blog for further updates. You can also check out my branch.

Until next time!