News | Kdenlive Libre Video Editor Tue, 30 Jun 2020 19:11:56 +0000 en-US hourly 1 GSoC ’ 20 Progress: Week 3 and 4 Tue, 30 Jun 2020 19:11:56 +0000 Greetings!

The past two weeks did not see as much progress as I would have liked because of my university exams and evaluations. Now, let’s focus on the work that I could do before I got swamped with the academic work and term exams.

I started the third week by working on drafting a basic QML display of the subtitle model items, like the position of the subtitles in the timeline.  I drafted a basic delegate QML model to display the start positions of each subtitle line.  Then I began working on integrating the back-end part (which I had mentioned in the previous post) with the basic front-end part (displaying the position of the subtitles).

In this process of integrating the subtitle model with the QML delegate model, I encountered a few logical errors with my code and some connections with the Subtitle Model which I had completely overlooked. It was also during this time that I realised I had missed out some key functions while writing the subtitle model class.

I defined a class, SubtitledTime, that will handle all things subtitle in the application, for example, comparing two different subtitles, getting the string or even the timings of each subtitle string, and assigning values to subtitles.

class SubtitledTime

Next, I added functions to add the start timing of each subtitle statement in the existing SnapModel. This will enable the snap feature of Kdenlive for the subtitles, making it convenient for the users while editing subtitles in the timeline.

void registerSnap (const std::weak_ptr<SnapInterface> &snapModel);

void addSnapPoint (GenTime startpos);

Finally, I added the basic functions of getting the list of subtitles and returning the total number of rows in the SubtitleModel.

int rowCount (const QModelIndex &parent = QModelIndex()) const override;

QList<SubtitledTime> getAllSubtitles() const;

The code can be found here.

With this, phase one of the coding period has come to an end and the phase evaluation has begun. Now that my exams are finally over, I hope to make up for the lost time in the upcoming weeks.

~ Sashmita Raghav

]]> 1
GSoC’ 20 Progress: Week 1 and 2 Mon, 15 Jun 2020 19:17:41 +0000 Greetings!

It’s been two weeks since the coding period began and I would love to share with the community the progress I have made so far. 

In the past two weeks, I focused on implementing a basic class for handling subtitles.

First, I created a class called SubtitleModel. This class would contain the list of subtitle content included in the uploaded subtitle file. Since the SubtitleModel class would be utilized to implement a basic model based upon a list of strings, the QAbstractListModel provided an ideal base class on which to build. Subtitle files are usually of two basic formats: SubRipText file (.srt) and SubStation Alpha (.ass) type. Subtitles are maintained in these files in totally different formats based on their file type, so the function ought to parse through each file type in a distinctive way.

In the first week, I worked on composing a parser function for parsing the SRT format file and the SSA or ASS format file provided by the user. As of now, the parser parses through the .srt or.ass file and extricates the subtitle data like the subtitle text and its starting and ending timings. 

void parseSubtitle()

Next, I worked on composing the addSubtitle() function to add the accumulated data to the list model.

void addSubtitle (GenTime start,GenTime end, QString str)

I included many more fundamental functions like getModel() which returns a shared pointer to the Subtitle Model, and rolenames() and data() functions which help in returning values of the objects within the list based upon the custom roles. 

static std::shared_ptr<SubtitleModel> getModel()

In the forthcoming weeks, I will work on implementing a  Subtitle QML track in order to display the positions of the subtitles in the timeline.

The code can be viewed here.

That’s all for now, please stay tuned to my progress in upcoming posts.

~ Sashmita Raghav

]]> 2
Basic Subtitling Support in Kdenlive – GSoC ’20 Mon, 01 Jun 2020 05:30:22 +0000 Greetings to all!

A month ago I was selected to participate as a student in Google Summer of Code with Kdenlive. The Community Bonding period is coming to an end and the coding period will soon commence. 

In this post, I am going to talk about what the project is about, how I plan to implement it, and what all I have done in the community bonding period to ensure a smooth and bump-free coding period.

About the Project

Kdenlive is largely limited in its ability to customize and edit subtitles. At present, subtitles are added as an effect, namely the Subtitle effect, this effect uses an FFmpeg filter to burn the subtitle file onto the respective video.

Basic subtitling support in Kdenlive can be achieved by extending the functionality of the existing “Subtitle” filter, thereby giving users more choices over subtitle customization.

Planned Implementation

  • A class will have to be created to store the subtitle lines with their duration and position in the timeline. All customizations made by the user to the subtitle file like altering the time, text, and color of the subtitles will be handled by this class. 
  • Design a user-friendly user interface like a separate QML track for users to effortlessly customize subtitles in their projects.

Community Bonding Period

First off, I completed a few prerequisites, like applying for a KDE Developer account, adding my blog to Planet KDE, to name a few.

Discussed with my mentors on how I plan to approach the implementation and finalized what I have to do over the course of the upcoming 3 months.

I went through the code base of Kdenlive to understand how the Subtitle effect is handled and how the parameter values of different FFmpeg filters can be manipulated. I also understood the standard method of writing a class used in the application. 

Now that I have better clarity on different aspects of the implementation, I am looking forward to a productive coding period 😀

Project Overview:

Project Status:


Stay safe and stay tuned to my progress in upcoming posts.

~ Sashmita Raghav

]]> 3
Kdenlive Titler Tool Rewrite – An Update Mon, 25 May 2020 05:30:25 +0000 Kdenlive’s Titler Tool rewrite began with GSoC 2019 and now I am happy to announce that we have an MLT producer which can play .qml files with animations! The producer is being now integrated in Kdenlive.

These are the QML Animation types that are supported and tested so far:

  • PropertyAnimation
    • NumberAnimation
    • ColorAnimation
    • RotationAnimation
  • PathAnimation
  • PauseAnimation

Along with grouping (ParallelAnimation and SequentialAnimation)

Meaning theoretically you can now create animated qml clips that can be added to your video!

Running some examples using the producer

(All examples are run at 25 fps, so you may see a slight jerkiness in some animations)

  • RotationAnimation with easing curvesRotationAnimation


  • PropertyAnimation (with easing curves)


  • ColorAnimation


  • Fading out an SVG image (NumberAnimation on opacity)



Carl Schwan is also helping us make a UI for the titler: – right now, this allows some basic editing capabilities for a .qml file. 🙂



We are now neck-deep into testing and integrating the producer with Kdenlive. The animations seem to be playing fine in the Clip Monitor, but work still remains with adding it to the Timeline and rendering it. Also, there are some known issues when playing certain animations, for instance, the last frame of the PathAnimation isn’t rendered.

If you want to test out the QML MLT producer, you could do it with melt, MLT’s command-line player.  You can find the source code for the qml producer here:

Note you will need to use CMake to build mlt in order to have the qml producer built. Once that is done, run:

melt /path/to/file.qml

The rendering logic can be found here:

Some major changes were made to the rendering logic. We now use a separate render thread for rendering. This took a bit of time but it is essential as rendering on the main thread was leading to a crash when a qml clip was dragged to the Timeline in Kdenlive due to conflicts between QOpenGlContext makeCurrent() calls of the Timeline and the Renderer. See this commit for details.

]]> 21
Kdenlive 20.04.1 released Sat, 16 May 2020 09:05:59 +0000

We just released the first bugfix version for the 20.04 Kdenlive version. Despite our continued work, many issues were still affecting the 20.04.0 version. A lot of work has been done to fix crashes and other annoying issues, so the 20.04.1 version should be much more reliable and stable. We have a long list of fixed issues.

Windows: Motion Tracking effect integrated.

AppImage: Fix crash on older systems (remove OpenCV sse4 dependency)

Most notably, we have now fixed:

Crash fixes:

  • Disable loading of .mlt playlists with profile not equal to project profile (caused crash)
  • Fix possible crash on subclip thumbnail creation
  • Fix crash trying to move timeline clip to another track when bin clip had some effects
  • Fix crash creating DVD chapters
  • Fix playlist profile incorrectly detected, leading to crashes when seeking in timeline

Important fixes:

  • Fix timeline preview not invalidated on hide track
  • Proxy clips: fix vaapi_h264 profile and ensure we keep the stream order
  • Use safer QSaveFile class to ensure our document is not corrupted on disk full
  • Fix rubber selection moving with scolling
  • Fix image rendering (add %05d suffix)
  • Fix timeline preview was incorrectly disabled
  • Fix MLT 6.20 avformat slideshows not recognized on onpening (convert to standard qimage)
  • Fix template title clips in timeline resetting duration on project re-open
  • Fix paste clips/compositions sometimes not working or pasting on wrong track/position
  • Fix compositions broken on insert audio track
  • Fix audio drag from monitor broken
  • Fix “archive project” creating broken backup files
  • Fix track effect not adjusting duration when track duration changes (new clip appended)
  • Additionnaly, a fix was committed in MLT git to fix audio desync with the pitch shift effect

UI fixes:

  • Enable audiospectrum by default
  • Make compositions use less vertical space, expand when selected
  • Fix various geometry keyframe regressions in monitor
  • Improve handling of missing clips, draw “photo” frame on image clips
  • Improve notification of missing(deleted files) and don’t allow reloading a missing clip
  • Always sync all keyframeable effects position with timeline position
  • On clip move, also consider moving clip’s markers for snapping
  • Delete all selected markers in clip properties dialog when requested
  • Implement timecode parsing when pasting text in Project notes
  • Shift + collapse will collapse expand all audio or video tracks
  • On clip cut, auto reselect right part of the clip if it was previously selected
  • Fix timeline sometimes not scrolling to cursor position
  • Fix aspect ratio not working on title images
  • titler: Remember to show background
  • Fix glitch in bin item selection, causing some actions to be disabled
  • Show clip speed before name so it’s visible when changing speed of a clip with long name
  • Don’t use drop frame timecode for 23.98


]]> 90
Maintenance release 20.04.0b Sun, 03 May 2020 16:58:36 +0000
Fast on the heels of the 20.04.0 release comes 20.04.0b. This fix corrects:

  • Several crash fixes
  • Broken timeline preview
  • Broken image sequences
  • Non working audio drag from monitor
  • Incorrect timecode in 23.98 fps
  • Broken archive feature
  • Compositions broken on insert audio track
  • Timeline autoscroll sometimes not working
  • Template tile duration reset on project opening
]]> 28
Kdenlive 20.04 is out Fri, 24 Apr 2020 06:00:56 +0000
Jean-Baptiste Mardelle and team are happy to announce the release of Kdenlive 20.04, this version marks the one year anniversary release of the code refactoring. The highlights include major speed improvements due to the Preview Scaling feature, New rating, tagging sorting and filtering of clips in the Project Bin for a great logging experience, Pitch shifting is now possible when using the speed effect, Multicam editing improvements and OpenTimelineIO support. Besides all the shiny new features, this version comes with fixes for 40 critical stability issues as well as a major revamp of the user experience. Kdenlive is now more reliable than ever before.


Preview resolution

The new preview resolution speeds up the editing experience by scaling the video resolution of the monitors.

Project Bin

The logging experience just got better with the introduction of filters, you can now rate and color tag your clips.

Clip rating.
Color tagging.
Filtering by clip type
New sorting modes
Replace clips in the bin.

Multicam Editing

New multicam editing interface allows you to select a track in the timeline by clicking on the project monitor.

Batch alignment of multiple clips to reference.


Pitch Shift

Pitch compensation feature when changing a clip’s speed.


OpentimelineIO import/export

Added import and export support to Pixar’s OTIO interchange format allowing interoperability with Final Cut 7 XML, Final Cut Pro X XML and Adobe Premiere to name a few (Full support list). Kdenlive Windows: coming soon.


Motion Tracking

The Motion Tracking received a batch of bug fixes and new tracking algorithms (CSRT and MOSSE). Kdenlive Windows: see version 20.04.1.


Zoom bar

New zoom bar for keyframes.


Interface and Usability

  • Effect groups are back!
  • Rotoscoping: Allow editing rotoscoping points before closing the shape, Shift + double click to add a new point, add/remove points on double click, double click center cross to resize, add horizontal/vertical only resize handles.
  • Colored clips according to type in timeline.
  • Direct drop clips to timeline.
  • Facelift to monitor, project bin, timeline and audio mixer interfaces.
  • Snapping: Disable snapping when pressing shift while dragging, press shift when using Spacer tool to disable snapping.
  • Add menu in track header to switch between single and separate channel audio thumbnails.
  • New Splash Screen.
  • Render Profiles: added new audio profiles FLAC and ALAC, new alpha video profiles VP8, VP9 and MOV and GIF image export profile.
  • Shortcuts: New shift + a shortcut  to activate/deactivate target tracks, assign ‘g’ shortcut to add/remove guide, added standard F2 shortcut in Project Bin for renaming,
  • Fixed ability to use fullscreen monitors.
  • Fixed DVD wizard.
  • Added audio backends options (DirectSound, WinMM and Wasapi) to the Windows version to prevent crackling in some cases.

Legacy features

Some features were not backported after the refactoring are back.

Audio Waveform Filter

The Audio Waveform Filter is back, just add it to the Master effects.


Effect Groups

Effect Groups are finally back, you can now create your effect combinations and use them across projects again.

Features video

Watch the video for a detailed overview of some of the features:

Full log
  • Fix possible crash and corruption on track insert/delete. Commit.
  • Fix bin tooltip for color clips (remove path). Commit.
  • Fix crash on disable effect. Commit.
  • Fix crash on cancel clip job & correctly handle abortion of stabilize job. Commit.
  • Adjust space to disable bin rating. Commit.
  • Fix crash on clip job. Commit.
  • Fix effect param refresh issue and crash on undo add effect. Commit.
  • Update splash image. Commit.
  • Timeline track name: elide track name when collapsed or track height not sufficient. Commit.
  • Fix freeze when changing bin selection. Commit. Fixes bug #419604
  • Ensure we have a writable storage folder for imported documents. Commit.
  • Remove unfinished/broken disable image scaling feature. Commit.
  • Slightly larger default track height. Commit.
  • Try to fix Windows default track size. Commit.
  • Fix timeline scrolling when dragging item on high zoom. Commit.
  • Improve track default height / header width. Commit.
  • Don’t delete all thumbnails when changing project resolution but keeping same dar. Commit.
  • Small fixes for track rec audio level. Commit.
  • Bin rating: reserve some space to reset to 0 stars. Commit.
  • Fix crash trying to import keyframes in rotoscoping effect. Commit.
  • Fix project monitor update when fullscreen. Commit.
  • Fix editing effects, resizing clip breaks loop play. Commit.
  • Fix default track height to allow visible record controls. Commit.
  • Export frame should use source resolution instead of project resolution. Commit. Fixes bug #419824
  • Fix possible freeze on clip job deletion, ensure jobs are deleted when completed. Commit.
  • Fix Windows build with cmake 3.17.0. Commit.
  • Rubber selection should not always select bottom track compositions. Commit.
  • Fix crash on folder import. Commit.
  • Move scrollbars outside timeline, make vertical scroll slower. Commit.
  • Minor improvement to track name alignment. Commit.
  • Fix rubberband selection sometimes corrupting vertical scroll. Commit.
  • Adjust minimum timeline icon size to reduce artifacts. Commit.
  • Fix marker dialog thumbnails with movit. Commit.
  • Don’t pause on fullscreen toggle. Commit.
  • Set minimum height for timeline track icons. Commit.
  • Fix monitor scene not correctly showing/hiding on enable/disable effect. Commit.
  • Add insert zone to timeline monitor in menu. Commit.
  • Fix dragging bin clip zone onto itself creates duplicate, and 1 frame offset in zones. Commit.
  • Another attempt to fix Windows timeline icons. Commit.
  • Fix opening relative paths from the command line. Commit.
  • Fix build with Qt 5.15.0-beta3. Commit.
  • Fix crash on clip paste when we didn’t have enough audio mirrors. Commit.
  • Fix some clips with fps like 60.06 incorrectly matched to profile. Commit.
  • Fix active track selection didn’t update vertical scrolling. Commit.
  • Fix possible crash on audio thumbs abort. Commit. See bug #419603
  • Delete key triggers Delete Script button. Commit.
  • Add line to indicate resize handle and focus of timeline. Commit.
  • Fix possible crash or freeze on multiple clip import. Commit. See bug #419603
  • When monitor overlay is disabled, ensure we use the real fullscreen space (don’t reserve space for the ruler). Commit.
  • Hide “separate channel” menu from video tracks, minor ui fix. Commit.
  • Fix fast forwards sometimes playing after last frame. Commit.
  • Fix DVD Wizard crash on chapters. Commit.
  • Fix crash opening old project file. Commit. Fixes bug #419563
  • Fix motion tracker filter broken on cut clips. Commit.
  • Fix effects like tracker broken on some locales. Commit.
  • Fix crash on undo and other issues in expand playlist. Commit.
  • Fix composition tooltips. Commit.
  • Make sure we don’t show clip tooltip on resize. Commit.
  • Change group resize so that resizing a clip in a group will now resize all its elements. Commit.
  • Enable sdl driver selection when switching back/forth between sdl and rtaudio. Commit.
  • Fix master effectstack last keyframe goes beyond last frame. Commit.
  • Fix default clip zone 1 frame too short. Commit.
  • Don’t allow seeking outside clip bounds, use consistent Shift+Wheel to seek 1 second. Commit.
  • Re-enable SDL audio driver (add some Windows backends). Commit.
  • Update splash for RC. Commit.
  • Fix crash on timeline clip deletion. Commit.
  • Fix pasting video only effect on AV clip broken. Commit.
  • Fix 1 frame offset in clip monitor zone causing issues on timeline insert. Commit.
  • Fix cutting rotation effect breaks keyframes. Commit.
  • Fix curves param losing params on copy/paste, don’t allow more than 5 points in curve (effect doesn’t support more). Commit.
  • Show/hide track should create an undo/redo entry. Commit.
  • Create Audio probe for recording on demand and not at startup. Commit.
  • Rename track should trigger undo/redo command and update multitrack view. Commit.
  • Don’t show clip tooltip when resizing or using fades. Commit.
  • Show clip duration on hover. Commit.
  • Fix multitrack view with only 1 visible track. Commit.
  • Fix 1 frame offset when dropping color/image clips in timeline. Commit.
  • Change monitor scaling action to normal combobox. Commit.
  • Explain user if import/export is not available. Commit.
  • Fix timeline tracks collapsed height. Commit.
  • Fix composition track on expand/paste, and fade durations. Commit.
  • Multitrack mode: auto refresh when a track visibility changes. Commit.
  • Attempt to have better breeze style icons in timeline. Commit.
  • Shift when using spacer tool disables snapping. Commit.
  • Fix group snapping, don’t allow monitor zone where y < x. Commit.
  • Disable snapping when pressing Shift while dragging a clip in timeline. Commit.
  • Minor track header size adjustment. Commit.
  • Fix () added to action name without shortcuts. Commit.
  • Improve timeline AppImage font. Commit.
  • Fix zone incorrectly updating with undo. Commit.
  • Fix crash on zone undo. Commit.
  • Relax snapping on zoom level > 16. Commit.
  • Fix audio/video only buttons on clip monitor. Commit.
  • Fix incorrect qml reference. Commit.
  • Fix multitrack view track order, make whole screen clickable, highlight active track. Commit.
  • Improve multitrack view (display clickable track names). Commit.
  • Allow aligning several clips to audio reference. Commit.
  • Fix audiomixer channels getting unnecessarily larger. Commit.
  • Fix thumbnail preview for MLT playlists. Commit.
  • Cleanup audiomixer (use line separators). Commit.
  • Moving clip / rubber selection should trigger vertical scroll. Commit.
  • Ensure we cannot create a project with 0 tracks. Commit. Fixes bug #419019
  • Cleanup & fix compile warning in recent audiomixer change. Commit.
  • Use alternate color for mixer channels and make levels font more visible. Commit.
  • Fix compile warnings. Commit.
  • Check for python before calling it, avoids Windows offering to install it. Commit.
  • Refactor active track snapping and make zone in/out work with undo/redo. Commit.
  • Fix build with Qt 5.15. Commit.
  • Fix duplicate font declaration. Commit.
  • Fix zone out snapping has a 1 frame offset. Commit.
  • Fix dropped fps monitor overlay alignment. Commit.
  • Refactor drop fps calculation, cleanup monitor markers & fps overlay. Commit.
  • Add menu item in timeline to change audio thumbnail format. Commit.
  • Key L should allow playing at normal speed. Commit.
  • Larger monitor overlay timecode / fps. Commit.
  • Add startup splash screen. Commit.
  • Don’t seek to 0 if reverse play at end of clip monitor. Commit.
  • Show monitor guides on effects scenes. Commit.
  • Small fonts adjustments. Commit.
  • Make timeline timecode font slightly larger. Commit.
  • Add large warning in statusbar if movit enabled. Commit.
  • Double click track resizer resets to default height. Commit.
  • Make monitor preview resolution label clickable and cycle through resolutions. Commit.
  • Ensure clip monitor audio/video ony drag doesn’t collide with marker. Commit.
  • Make monitor zone tooltip more visible. Commit.
  • Only show relevant effects in timeline clip context menu. Commit.
  • Get rid of the automated “go” topmenu. Commit.
  • Add more profiles. Commit.
  • Ensure audio track is inserted at correct position if no existing audio. Commit.
  • Revert commit 1ffc0b61 breaking group loading. Commit. See bug #418974
  • Make monitor ruler zone slightly more opaque for better visibility. Commit.
  • Fix startup crash introduced in last commit. Commit.
  • Update record volume when changed from mixer. Commit.
  • Restore cursore position on undo insert/overwrite zone. Commit.
  • Play forward button should always start with >1 speed. Commit.
  • Add make all tracks in/active (Shift+Alt+a). Commit.
  • Fix crashes in expand clip. Commit.
  • Fix crash on close. Commit.
  • Make all timeline tracks active by default. Commit.
  • Fix dual pass effects (motion tracker using incorrect zone). Commit.
  • Fix expanding playlists with slowmotion clip, and some cases where expand would only expand some clips. Commit.
  • Add switch active state of all tracks action (Shift+A) and restore Expand clip. Commit.
  • Make QML labels translatable. Commit.
  • Seek to next snap only considers active tracks. Commit.
  • Fix “out point” marker in clip monitor has 1 frame offset. Commit.
  • Revert set zone out to include current frame. Commit.
  • Fix keyboard focus when both monitors are fullscreen. Commit.
  • Ensure frame position consistency for out operations. Commit.
  • Ensure audio track is inserted at correct position when no previous audio exists. Commit.
  • Hide “show clip properties” from bin folder context menu. Commit.
  • Don’t insert audio tracks in the middle of video tracks. Commit.
  • Ensure parent is expanded when making action on a clip. Commit.
  • Fix audio thumbs sometimes not appearing on clip quick insert. Commit. See bug #417110
  • Setting clip out point should include current frame. Commit.
  • Fix switching between clip and project monitor if both are fullscreen. Commit.
  • Expand parent folder when creating a subfolder. Commit.
  • Fix dropping clip in timeline can lead to crash if drop ended outside timeline. Commit.
  • Restore menu entry to enable timeline audio record in track headers. Commit.
  • Fix Bin sort order lost on exit and sort by insertion order broken. Commit.
  • Rate, type and tag filter conditions should be evaluated outside of the loop. Commit.
  • Fix filter. Rating filter was considering rates greater than the selected one. Commit.
  • Don’t attempt to create thumbnails on color clips. Commit.
  • Fix track compositing duplicated on track insert/delete. Commit.
  • Disable audio monitor filters on save. Commit.
  • Fix possible crash on profile switch. Commit.
  • Fix timeline rubberband when scrolling. Commit. See bug #417209
  • Don’t re-insert clip multiple times if drag exits in the headers area then re-enters timeline. Commit.
  • Minor cleanup – remove spacer in monitor toolbar to make more space for audio levels. Commit.
  • Fix tests. Commit.
  • Flatpak: frei0r-plugins 1.7.0. Commit.
  • Fix compile warning. Commit.
  • Bump MLT dependency. Commit.
  • Created alpha category and added alpha profiles from Shotcut Commit.
  • Various cleanup and fixes for assetlist. Commit.
  • Use a different icon color for effect groups. Commit.
  • Fix text template timeline thumbnail. Commit.
  • Fix some compile warnings. Commit.
  • Introduce category for compositions that should have default length on insertion. Commit.
  • Minor cleanup. Commit.
  • Fix crash on close. Commit.
  • Disable marker actions when timeline cursor is not on selected clip. Commit.
  • Allow filter job effects on tracks and master stack, fix crash. Commit.
  • Fix duplicate multiple clips only duplicating first item. Commit. Fixes bug #418379
  • Fix clip cannot be moved to 0 on some zoom level when another snap point was close to 0. Commit.
  • Allow saving the full effect stack as an effect – kind of restores effect groups. Commit.
  • Fix crash cutting group with composition. Commit. See bug #418378
  • Added link to the nightly AppImage for easier locating of these builds for testing. Commit.
  • Fix cache thumbs incorrectly using full res profile. Commit.
  • Delay cache job to allow faster clip loading. Commit.
  • Don’t package libgcrypt – fixes rendering on Ubuntu 16.10. Commit.
  • Don’t delete clip when dragging from bin and trying to put it at frame 0 in timeline. Commit.
  • Add some safety checks on paste clips. Commit.
  • Fix clips having size bigger than their parent track. Commit.
  • Fix clip monitor ruler not always adjusting to correct length. Commit.
  • Fix paste speed clip broken on comma locale. Commit. See bug #418121
  • Fix compile warning. Commit.
  • Fix timeline keeping aspect ratio of initial profile after switch. Commit.
  • Fix bin clips using wrong aspect ratio on profile change. Commit.
  • Focus speed value when opening speed dialog. Commit.
  • Fix possible crash on paste clip. Commit.
  • Fix audio track tag on track insert. Commit.
  • Fix broken timeline header position in some cases. Commit.
  • Fix compile warning. Commit.
  • Fix track tag name not updated on track insert/delete. Commit.
  • Fix monitor overlay not updating on profile change. Commit.
  • Improve some effect focus cases, fix compile warning. Commit.
  • Add option to keep images at original size when added to project by adding resize filter. Commit.
  • Fix 1 frame offset in fade out. Commit. See bug #416811
  • Fix align and center icon in geometry param. Commit.
  • Add paste effects in clip context menu. Commit.
  • Fix crash setting effect geometry to frame size. Commit.
  • Fix markers drawn outside clip. Commit.
  • Fix regression and crash in effect focusing. Commit.
  • *Assign ‘g’ shortcut to add/remove guide. Commit.
  • Fix app losing focus on monitor fullscreen, re-add app fullscreen action to view menu. Commit.
  • Cleanup effect activation. Commit.
  • Fix geometry effects sometimes incorrectly focused on click. Commit.
  • Fix crash on insert track. Related to #573. Commit.
  • Update Commit.
  • Fix several aspect ratio issues including #569. Commit.
  • AppImage: use rubberband git. Commit.
  • Port some deprecated methods. Commit.
  • Fix org.kde.kdenlive.appdata.xml. Commit.
  • Switch to gtk+ 2.24 (fixed compilation issue on Ubuntu 16.04). Commit.
  • Disable pitch compensation if rbpitch filter (rubberband) is not available in MLT. Commit.
  • Fix minor EBN issues. Commit.
  • Better handling of forwards / backwards play: fine tune speeds, restore audio scrubbing on some speeds, display playback speed in monitor toolbar. Commit.
  • Fix display of vertical videos. Commit.
  • Update Windows OpenGL backend names to more user friendly names. Commit.
  • Fix changing of title clip duration broken. Commit. Fixes bug #417505
  • Speed change triggers a new clip insert so no need to create a binding, also fix tests. Commit.
  • Add color to title clips in the timeline. Commit.
  • Fix possible corruption when pasting from another project that is a copy of current project. Commit.
  • Fix recent change breaking effects with jobs (like motion tracker). Commit.
  • Add pitch compensation to speed effect (requires MLT git). Commit.
  • Display the marker comments by default. Commit.
  • Add color to slideshow clips in the timeline. Commit.
  • Fix audio mixer balance cannot be changed after project opening. Commit.
  • Fix clip fades cannot be inserted after undoing. Commit.
  • Rotoscoping: also add keyframe at current cursor pos on initial keyframe. Commit.
  • Fix rotoscoping broken in some circumstances on cut clips. Commit.
  • Fix tile clips created with monitor preview res. Commit. Fixes bug #417368
  • Fix cannot update render filename. Commit.
  • Fix pasted clips with negative speed have wrong in/out. Commit. See bug #417143
  • Fix dropping effect on monitor. Commit.
  • Fix minor typos. Commit.
  • Integrate OTIO convertions. Commit.
  • Add CSRT and MOSSE tracking algorithms in opencv.tracker filter. Commit.
  • Correctly import keyframe type. Related to #554. Commit.
  • Fix error in importing keyframes from clipboard. Commit.
  • Improve rating painting and selection. Commit.
  • Fix monitor fullscreen in some cases and don’t lose focus (broke shortcuts). Commit.
  • *Use menu position for insert/remove space when necessary. Commit.
  • Add replace clip feature. Commit.
  • Fix frame size in monitor overlay with non square pixels. Commit.
  • Adjust composition height to lower track. Commit.
  • Preview scaling: width can be a multiple of 2, not 8. Commit.
  • Don’t let track header buttons steal keyboard focus. Commit.
  • Fix effectstack layout margin for qtblend effect. Commit.
  • Add warning message when trying to set speed lower than allowed. Commit.
  • Make use of KColorSchemeManager’s new handling of system theme (Backported from KDevelop). Commit.
  • Fix error in previous commit (do change fps on profile change!!). Commit.
  • Improve snapping, don’t allow resize on lower zoom levels. Commit.
  • Use logarithmic scale for speed slider (should allow better speed adjustments). Commit.
  • Revert attempt to fix Windows timeline icon size. Commit.
  • Attempt to fix crash after profile change. Commit.
  • Fix indentation in image clip condition. Commit.
  • Try to make track icons larger on Windows. Commit.
  • Fix misc compile warnings. Commit.
  • Fix deprecation compile warnings. Commit.
  • Adjust track head icon size. Commit.
  • Fix forward/rewind affecting wrong monitor. Commit. Fixes bug #416917
  • Enable clip jobs and convert/extract audio on subclips. Commit. Fixes bug #416616
  • Filter effects in current category only. Commit.
  • Fix crash on exit. Commit.
  • Fix crash adding lift_gamma_gain with narrow effect stack. Commit.
  • Cleanup: remove unused code. Commit.
  • Add dependency on QtQuickControls2 to correctly style timeline controls. Commit.
  • Get rid of remaining qml1 in timeline. Commit.
  • Use standard Qt connection for qml ungrab. Commit.
  • Switch timeline from ScrollView to Flickable. Commit.
  • Only connect qml menus once (thanks Filippo Gentile). Commit.
  • Indicate how to report bugs, not just the bug tracker url. Commit.
  • Update Composition.qml for qml2 ScrollView. Commit.
  • Update ClipThumbs.qml for qml2 ScrollView. Commit.
  • Update Clip.qml for qml2 scrollview. Commit.
  • Update ClipAudioThumbs.qml for qml2 scrollview. Commit.
  • Update Timeline.js to remove qml1 references. Commit.
  • Switch timeline to qml2 only (port qml1 code). Commit.
  • Re-use better dialog for timeline change clip speed (with slider). Commit.
  • Switch timeline headers menu to qwidget. Commit.
  • Fix clip monitor not pausing at clip end, fix play zone activating wrong monitor. Commit.
  • Nicer ui for timeline clip ctrl speed change. Commit.
  • Switch timeline context menu to QWidget. Commit.
  • Minor cleanup of qml’s selected id management. Commit.
  • Fix audio thumbs of cut clips with speed effect. Commit.
  • Fix possible startup crash (calling checkItemDeletion on close). Commit.
  • Define imageColor function. Commit.
  • *Switch timeline composition menu to QWidget instead of qml. Commit.
  • Add function to assign color to image clips. Commit.
  • Add imageColor property. Commit.
  • Add condition to assign color to image clip type. Commit.
  • Fix crash on movit clip jobs. Commit.
  • Fix thumbnails with movit enabled. Commit.
  • * Re-add extract clip in timeline context menu. Commit.
  • Fix crash on undo speed change. Commit.
  • Fix control resize to slow down a clip. Commit.
  • Add missin 270p scaling. Commit.
  • First draft of direct dropping in timeline. Commit.
  • Fix incorrect clip height on collapse with shortcut. Commit.
  • Switch timeline clip context menu to QWidget instead of Qml. Commit.
  • Add shortcut to collapse/expand current effect or track. Commit. See bug #416680
  • Fix index corruption on track deletion. Commit. See bug #416677
  • Sort subclips in chronological order when sorting by date. Commit.
  • Use standard rename action for bin rename (with standard F2 shortcut). Commit.
  • Fix warnings. Commit.
  • Adapt to MLT’s updated consumer scaling feature. Commit.
  • Restore opening of clips from command line. Commit. See bug #416404
  • Fix corruption on group move and fix timeline seek when shift pressed. Commit.
  • Fix filters in some file dialogs. Commit.
  • Debug stuff for possible qml producer. Commit.
  • Don’t hardcode project display ratio for timeline thumbs. Commit.
  • Ensure the monitor overlays work with consumer scaling. Commit.
  • Make preview height multiple of 2, not 8 so we don’t affect aspect ratio too much. Commit.
  • Cleaner deletion order on exit. Commit.
  • Fix typo breaking timeline seeking. Commit.
  • Timeline: don’t start rubber selection on minimal mouse move, fixes shift+click sometimes unselecting. Commit.
  • Fix razor marker not updating. Commit.
  • Don’t display timeline offset on non AV clips. Commit.
  • Fix timeline broken behavior on clip deletion. Commit.
  • Fix crash on new project with Qt 5.14. Commit.
  • Implement MLT’s new consumer scaling feature. In Monitor menu, you can now select to work in full, 1/2, 1/4 and 1/8 resolution. Commit.
  • Rotoscoping: Add horizontal/vertical only resize handles. Related to #123. Commit.
  • Rotoscoping: double click center cross to resize. Commit.
  • Preliminary resize of rotoscoping, related to #123. Commit.
  • Rotoscoping: cleanup & don’t allow inserting new points too close to existing ones. Commit.
  • Giving the Properties panel a more explicit name. Commit.
  • Small fixes for titler ui. Commit.
  • Bin: ensure up button for icon view is hidden in tree view mode. Commit.
  • Minor adjustments to keyframe view. Commit.
  • Update bin filtering to use more standard button, allow filtering on multiple criterias. Commit.
  • Add zoom bar to zoom on keyframes. Commit.
  • Rotoscoping: don’t allow adding point in segment when shape is not closed. Commit.
  • Rotoscoping: add/remove points on double click. Commit.
  • Fix warning. Commit.
  • Fix one empty frame left when trying to put 2 clips together. Commit.
  • Shift + double click to add a new point to rotoscoping. Commit.
  • Allow editing rotoscoping points before closing the shape. Commit.
  • Hide option to overlay audio info from Project monitor (not supported). Commit.
  • Cleanup timeline thumbnail mechanism on resize. Commit.
  • Keep last known frame as thumbnail when resizing a clip. Commit.
  • * Fix audio thumbs normalization ( Commit.
  • AddVersionOption()/addHelpOption() already adds by KAboutData::setApplicationData. Commit.
  • Update Copyright year to 2020. Commit.
  • Use project name as default render name. Commit.
  • Fix transparent rendering. Commit.
  • Fix extract zone (improve ffmpeg arguments and drop locale specific seconds conversion). Commit. See bug #411970
  • Dont’ put colon in cut clip names. Commit.
  • Ensure no improper rating filtering on start. Commit.
  • Endl is Qt:: namespaced in qt5.15. Replace by “\\\\n”, flushed QTextStream. Commit.
  • Add select all in bin. Commit.
  • Cleaner drawing of rating background. Commit.
  • Fix extract zone. Commit. See bug #411970
  • * Add rating and sort by rating. Commit.
  • Add sort by insert order. Commit.
  • When a clip is dropped in bin, focus on it. Commit.
  • Implement tag renaming and save in project file. Commit.
  • Cleanup bin filter ui. Commit.
  • Add sort by duration and filter by type actions. Commit.
  • Implement tag filter in bin. Commit.
  • Allow tagging all clips in a folder. Commit.
  • Fix freeze on adding clip. Fixes #499. Commit.
  • Improved tagging ui for bin clips. Commit.
  • Initial implementation of bin clip tagging. Commit.
  • Add Bin sorting menu (now works in icon view). Commit.
  • Add Audio/Video drag icons in icon view. Commit. See bug #415454
  • Inform user when something goes wrong with a filter. Commit.
  • Fix build. Commit.
  • Fix build. Commit.
  • Fix minor EBN issues. Commit.

]]> 112
Season of KDE 2020 and GSOC Sat, 28 Mar 2020 16:16:52 +0000
I was introduced to a whole new world of Open Source and version control systems a few months back and I have come a long way from there. I made my first pull request in October, worked on my project in November, took part in Season of KDE 2020 in December, worked on my SoK project in January and now, I am happy to say that SoK is finally over!

I learned a lot during the coding period and would love to share my journey. 

My Season of KDE Journey – Improve the Timeline Clips Color Palette

Week 1: Building the Development Environment

The first thing that one has to do before beginning to contribute to an organization is to build the code of the application from the source. And if this is the first time a person is building an app then he/she should be ready to do a lot of googling and praying for the CMake to compile successfully.

Kdenlive works with the help of a lot of dependencies and libraries. For the CMake to compile properly the system should have all these libraries installed in it. 

First things first, I got the Kdenlive source code from the GitLab instance of KDE, It is always best to checkout from the master to a new branch to prevent committing incorrect changes and spoiling your whole branch. Then I created a build file and ran the CMake code. This returned a LOT of errors when the required libraries and dependencies were not found in my system. Most of the errors were solved when the following command was executed:

sudo apt-get build-dep kdenlive

This installed most of the required dependencies. However, during CMake, since the errors were still there, I checked for the version required for the particular dependency, googled it, and installed it.  This is what took a lot of my time as I went through what is termed as “dependency hell”.

Either the application used an older version of a particular installed dependency or my system had an older version of the required library. This site and this one were very helpful.

Finally, I changed my OS to KDE neon dev edition and all the errors got corrected.

The next step was to build and install the application using make and make install. After Kdenlive was successfully installed I could finally open the application.

After setting up the development environment, I started going through the source code to understand how different components of the timeline work.

Week 2: Working on Title Clips

During Week 2, I dived right into the source code to get an idea of how the application identifies whether a particular clip in the timeline is of a particular type. As suggested by my mentor Farid, I went through the code related to the timeline in the src/timeline2/view  folder. Recently, a change was committed in master related to the target button colors. My mentor advised me to go through that commit to get an idea of how the colors are handled in the source code. 

After much searching and googling, I figured out how to differentiate between different clip types while assigning colors to them.

Since there already was a difference between the audio and video clips, I tried to understand how the application realized whether a clip is audio or not.

On searching, I found that definition.h contains the Producer enumeration which lists all types of clips. Clips in the application are checked for their type by comparing them against this enumeration.

I added the function that would first check whether a clip in the timeline is of title type or not, then would assign the color that was decided by the community for the title clips.

Title clip hardcoded color

Week 3: Hardcoding the colors is a big No-No

Nowadays every application has different themes according to the user’s convenience. Some like dark themes while some like light themes.

When one is working on adding a particular color to a component, one should consider how the color would appear in the other themes. This is where I had gone wrong the previous week. I had assigned a particular color to the title color that would remain the same irrespective of the current theme, i.e, I had hard-coded it. With the help of my mentor and the Kdenlive community, I realized my mistake and searched for different uses of QColor and KColorscheme classes that would rectify this. 

However, the color chosen for title clips was not a default Role in the KColorScheme and could be composed by mixing different default ones. Meanwhile, I worked on adding a function to check whether the clip is of image type image clip and then added the Neutral color of the ForegroundRole of KColorScheme class to the Image clip.

Image clip with neutral color

Neutral color added to Image clip


Week 4: Marker Comments

Comment markers are used in the timeline to add comments to the clip for a particular time. When the user first added a marker to a particular instant in the timeline, it wasn’t displayed making the user wonder if the feature works. He could make the comment markers display by going to the Kdenlive settings. However, this is time-consuming. So, I worked on making the markers display by default.

Since the codebase was still new to me, a lot of time was spent trying to figure out how the comments were handled by the timeline. I tried many ways to make it default however none of them seemed to work for me.

With the help of Kdenlive developers, I found out that kdenlivesetting.kcfg deals with assigning default values to any component in the application. I then solved this issue by making the default value true for displaying comment markers.

Week 5: Adding color to the rest of the Clip types

During this week, I finally understood how I could combine different default colors of ForegroundRole to form a new color as it is done for the color of the target button. Using this, I added color to the title clip by combining red (Negative foreground role) and blue (Link foreground role). I also added a function to identify Slideshow clips and then assigned the color, which is a combination of blue (Link Foreground Role) and orange( Neutral Foreground Role), to it.

Title Clip with mixed color

Title clip after combining the default colors

Slideshow Clip

Slideshow clip after combining colors of image[ neutral] and video [link] clips

Week 6: Review

In this final week, I pushed all my changes and requested the developers to review it. After a few minor changes, the changes were successfully merged!

During Week 2, I got the wonderful opportunity to meet the KDE developers of my country, India in the held in Delhi. I came to know about a lot of cool KDE and open-source related stuff in this conference.

I also gave a lightning talk about my Season of KDE 2020 project for Kdenlive. Since this was the first time I was attending any conference, giving a talk in one was overwhelming, but went quite well all things considered :p


The Road Ahead

Proxy and Clip Effect visual confirmation

I have started work on adding proxy clip visual confirmation. The user can’t know if a clip has the clip effect or is a proxy clip as there is no thumbnail to show otherwise.

I have gone through the codebase to understand where and how the proxy clip and clip effect is handled and how I could add the ‘proxy’ and ‘clip effect’  thumbnails.

Google Summer of Code 2020

I plan to work on adding Basic Subtitling Support to Kdenlive as part of my Google Summer of Code project. At present, since the subtitle files are hardcoded over the videos, the customization of the displayed subtitle text is not viable. This project will deal with extending the functionality of the existing Subtitle filter thereby giving users more choices over subtitle customization.

Continue Contributing

I enjoyed contributing to the KDE community during the coding period of Season of KDE and would love to continue to do so as much as I can.

]]> 3
Kdenlive 19.12.3 is out Fri, 06 Mar 2020 15:00:51 +0000

The last minor release of the 19.12 series is out with bug fixes and usability improvements. Next month we mark the one year anniversary of the refactored code base so stay tuned for many nifty features coming like pitch shifting, tagging and rating of clips in the project bin and the much anticipated preview scaling of monitors bringing a huge performance boost.


  • Fix clip monitor ruler not always adjusting to correct length. Commit.
  • Fix paste speed clip broken on comma locale. Commit. See bug #418121
  • Fix 1 frame offset in fade out. Commit. See bug #416811
  • Fix markers drawn outside clip. Commit.
  • Fix crash on insert track. Related to #573. Commit.
  • Fix changing of title clip duration broken. Commit. Fixes bug #417505
  • Fix org.kde.kdenlive.appdata.xml. Commit.
  • Filter effects in current category only. Commit.
  • Fix recent change breaking effects with jobs (like motion tracker). Commit.
  • Update appdata for 19.12.3. Commit.
  • Fix audio mixer balance cannot be changed after project opening. Commit.
  • Fix clip fades cannot be inserted after undoing. Commit.
  • Fix cannot update render filename. Commit.
  • Fix pasted clips with negative speed have wrong in/out. Commit. See bug #417143
  • Fix dropping effect on monitor. Commit.
  • Spelling fixes (by Patrick Matthäi). Commit.
  • Fix rotoscoping broken in some circumstances on cut clips. Commit.
  • Some updates for AppImage rubberband (not automatically included, needs some manual patching). Commit.
  • Add vamp-sdk to AppImage scripts. Commit.
  • Add rubberband to AppImage scripts. Commit.
  • Fix monitor fullscreen in some cases and don’t lose focus (broke shortcuts). Commit.
  • Update org.kde.kdenlive.appdata.xml. Commit.
]]> 68
Kdenlive 19.12.2 Fri, 07 Feb 2020 00:16:18 +0000

The second minor release of the 19.12 series is out with Qt 5.14 compatibility, Project Bin ability to sort subclips in chronological order, crash fixes and interface enhancements.

  • Cleaner deletion order on exit. Commit.
  • Fix crash on new project with Qt 5.14. Commit.
  • Fix index corruption on track deletion. Commit. See bug #416677
  • Sort subclips in chronological order when sorting by date. Commit.
  • Fine tune timeline clip elements on smaller track size. Commit.
  • Cleanup resize and other clip handles (fades, add composition, keyframes). Commit.
  • Clean up and fix possible corruption on missing bin clip id. Commit.
  • Restore opening of clips from command line. Commit. See bug #416404
  • Fix effect with long names prevent easy access to effect actions. Commit. Fixes bug #416420
  • Hide option to overlay audio info from Project monitor (not supported). Commit.
  • Fix one empty frame left when trying to put 2 clips together. Commit.
  • Fix i18n warning on startup. Commit.
  • Improvements to composition duration on drop. Commit.

]]> 37