My SoK'25 Journey

Posted on May 1, 2025

This all started to happen, back in November of 2024, when I was trying to edit a screen recording of my personal project. I tried many online tools but couldn’t get the perfect result, I wanted to quickly edit the video as the requirements of editing was on the lower side. One of my friends suggested me “kdenlive”, I was fairly acquainted with the linux and KDE world so I knew that the company behind kdenlive is KDE so I can trust on the suggestion and thus I gave this a shot! And it really amazed me how easily I was able to edit the video (without any prior experience) after trying all kind of online tools, and that too for free.

I had a plan to participate in Season of KDE for the upcoming year that was 2025. So when I saw kdenlive in the project list, I knew this was it! I approached the mentors for the project and started setting up kdenlive locally. I won’t say it was an easy breeze. My primary machine was running on Ubuntu 24.04 and I followed each step according to setup process given in kdenlive’s gitlab repo, but I wasn’t able to, I even sought help on the kdenlive’s matrix channel and got to know it’s the issue with Ubuntu + Gnome (few KDE packages weren’t built yet for this version of Ubuntu). I later found some workaround (all thanks to a saviour on the internet) to be able to build the kdenlive locally.

Coming to the project, The concept was simple yet impactful – why not show users exactly how a transition would look before applying it? No more guesswork, no more trial and error. Luckily I made it into Season of KDE and was really excited to work into the project. Once accepted into Season of KDE, I quickly realized the project would be more complex than I initially imagined. Kdenlive’s codebase is sophisticated, with intricate connections between its components. My first two weeks were spent mostly reading – reading through header files, tracing function calls, and mapping out how the existing assets panel worked. I needed to understand how transitions were organized and displayed before I could enhance them. The codebase uses a tree model to organize transitions, with the display handled by a custom widget (AssetListWidget). My task was to extend this to support a new icon view with animated previews while preserving all existing functionality.

I won’t go into too much technical details here, for that you can visit my status report. In order to give a high level idea, my initial changes in the code was mostly around how assets were displayed, adding a QStackedWidget to switch between tree and icon views. Next came one of my favorite parts – creating the preview generation script. Using the MLT framework (the same one Kdenlive uses for video processing), I wrote a Python script that could render standardized previews for every transition type. The script creates a sequence with two colored clips and applies each transition between them, rendering the result as a GIF. It sounds straightforward, but getting consistent results across different transition types took some experimentation. The most technically challenging part was creating the TransitionIconDelegate class. This component needed to:

  • Load and display animated GIFs
  • Handle proper scaling and centering
  • Manage memory efficiently
  • Provide fallbacks for missing previews

So, to say, it wasn’t all smooth sailing. After ten weeks of coding, debugging, and refining, the feature was ready. Users can now toggle between the traditional tree view and the new icon view showing animated previews. Clicking the “Generate Previews” button creates GIFs for all available transitions, which are then displayed in the panel. This was a great learning experience for me, beyond the technical skills – C++ patterns, Qt framework, MLT video processing – this project taught me valuable lessons about open source development. Looking forward on this, this project was just my first contribution to KDE, but it won’t be my last. The experience of working with talented developers who are passionate about creating high-quality free software has been inspiring. If you’re considering participating in Season of KDE, I highly recommend it. The supportive community, technical challenges, and satisfaction of improving software used by people worldwide make it an invaluable experience, if not for this then awesome goodies can also be a source of inspiration, just saying :) As for the transition previews feature, I hope Kdenlive users find it as helpful as I imagined it would be that frustrating evening when this journey began.