Pitivi GSoC: 4th Update
3 min read | Sun Sep 04 2022
Hey everyone, hope you are doing fine. This is my fourth update related to Pitivi GSoC, and this time I got a bit late at publishing, more details later on in this blog, so keep reading :)
After talking to Pitivi GSoC'21 Intern Pratyush Tiwari, and my mentors, I was able to stop some things from loading, allowing us to finally load the app a bit, it is not usable from any stretch of the mile, but it is something. Previous to it I was porting the whole application at once, and thus the app would not have been able to load unless it was completely GTK4 ready, but now we can take a look at some of the work.
If you were following along with my activity on GNOME Gitlab then you would have noticed that I am not pushing commits as often as I used to, this is because I got stumbled pretty hard and thus I wasn't able to push anything significant, but now I'm back with speed.
So some of the roadblocks I'm facing now are - GtkLayout Removal, Event handling changes (Drag and Drop is at another level), and some API changes regarding Pixbuf and GdkScreen.
Another issue I faced was that it is very hard to port Pitivi because it uses mostly everything which Gtk has to offer, which considering it is a video editor seems reasonable. But, this also makes it significantly harder to port over, thus I really appreciate the patience of everyone waiting for it to happen :D
As GSoC Deadline is approaching, my hands have no time to chill, it's all hands on deck, no matter how much work you do, how much of your soul you pour in, you start to doubt everything, you start to question that did you do what was required, did you really had what it takes, etc.. etc.. and the answer can only be seen after mentor evaluations.
I now have to finish my work and also work on the final report, I always say, I like good documentation but I don't like creating one, thus I admire documentators so much.
Will Pitivi be GTK4 on GSoC end? Probably not, it still has rough edges, and some parts are left to port, some things can't be just ported over but requires a whole working change. In one case we need to completely rework 6 functions that rely on each other which is a major headache. In some cases we don't have an ideal replacement so we have to rework that too, etc.. etc.. thus it will still take time and patience to get a good working port.
I have attached some screenshots of the current look, it's not much, but seeing this, I'm very happy with the work I've put in.
So, this will be a very top-level view, but, first things first, I will work on completing the work, this time others would be able to join me if they want, then we will smooth out the rough edges, making it usable, implement LibAdwaita, giving Pitivi a new and fresh look, and then fix all those test cases crying in the corner.
One of the many things I learned is that experience speaks loud and clear, and programming is not just about knowing how to code, I many times wrote some piece of code that spans multiple lines, after getting to and fro with my mentor many times, I reduced it to a couple of lines, only to see my mentor doing it in just one line.
Both of our codes worked, both do the trick, but his way is more cleaner and efficient. In my early days of programming, I used to check how big of a file I created, when I reached 1k lines I rejoiced and thought I'm good at programming now, but that's not how it works, if you do something in 6 lines and the other person does it in one line and still keep it very readable and easy to comprehend then you didn't do a better job. Number of Lines != Quality of code.
At last, taking rest is very important, I can't tell you how many times I am stuck so badly I don't even know who I am, and just continue to stare at the screen, but the moment I lie down and take a rest, my brain gives out solutions.