Kdenlive/Roadmap: Difference between revisions

From KDE Community Wiki
(Roadmap details, images, and original text by JBM added)
mNo edit summary
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Roadmap =
Last update in August 2015.
This roadmap was specified during the Randa 2014 meeting.
also see [https://phabricator.kde.org/project/profile/40/ our Kanboard]


== Short term ==
= Wish list =
* '''Bugfixing''' to maintain/improve Kdenlive’s stability and to release new releases
* '''Break big classes into smaller ones''' as intermediate step targetting the refactoring branch. This way, small portions of the code can be refactored towards the proposed architecture (see below) without ''breaking everything''™:
** Cutsomtrackview (=>commands, …)
** Renderer
* '''Code documentation''' for new code, including big-picture view. I.e.: Do not just describe the class by typing its class name a bit differently, but explain to someone new to the code what it does, why it is required, and who it interacts with.
* '''Workflow documentation'''
** How to set up a build environment
** What are the git branches used for


== Mid term ==
* Titler
* '''Refactoring''' is a crucial step for further work on Kdenlive. At the moment, small features require changes everywhere. Refactoring the code is required to make Kdenlive maintainable and extensible again.
** Keep a simple text incrustation tool, but call a full featured SVG editor for complex designs
** Introduce concepts from the proposed architecture step by step: Core, ProjectManagement, …
*** Base it on WebVFX (allowing to use HTML, javascript or QML) to avoid maintaing our own MLT module? Here is a [https://kdenlive.org/sites/kdenlive.org/data/webvfx/retitler.html small demo] of what it can achieve
** Port UI to QML
** Support for subtitles (or MLT module)?
* Port Kdenlive to KF5 (KDE Framework 5)
* Timeline
 
** Automatic composite for clips with alpha
The proposed architecture can be found in the [http://quickgit.kde.org/?p=kdenlive.git&a=tree&hb=35ec064a62cc3490a19b68928df580b1c99f8326 refactoring branch] in ''refactoring-doc/'' – find some snapshots here (not updated, just to get an impression):
** Cross fades on same track (à la Shotcut)
 
** Quick switch individual/global proxy/thumbnails
[[File:KdenliveArchitectureModel.png]]
** Synchronized tracks (ripple delete / spacer tool etc would keep track groups in sync)
 
** Copy/paste across projects
[[File:KdenliveArchitectureView.png]]
* Exports
 
** Kdenlive 0.x format
== Long term ==
** OpenShot, FlowBlade, PiTiVi...
* '''New features''' should be implemented after refactoring, or the code needs to be touched twice, which is not so much the point of it. Some great ideas (other points why to accomplish refactoring soon):
** EDL and other exchange formats (MLT module?)
** Write an OpenGL display. When this is done, Movit can be integrated.
* Effects
** Alternative timeline view specialised on editing transitions; see ''refactoring-doc/Timeline_TransitionView.svg'' in the refactoring branch
** UI for keyframes relative to end or in %
** Project clips effects, so e.g. colour grading is done only once on the clip in the project bin and not every time in the timeline
** Apply GEGL/G'MIC/Blender effects (MLT module)?
** Project clip effects. For example, you could add a color correction effect. Then, all occurences of the clip in timeline will have that effect, and a change to the effect will directly be reflected in timeline clips. The plan is to allow editing of project clips. Triggering the editing will open a new Timeline view with the clip, and the user can then drop and adjust effects in this timeline like in the project timeline. - JBM
* UI
** WebVfx editor for titles; the titler should be an SVG editor with effects and candies, so writing our own does not make sense. See [http://kdenlive.org/videos/retitler.html] for a demo on what WebVfx can achieve. (Original comment by JBM: The titler's code is currently quite broken and hard to fix. Using [https://github.com/rectalogic/webvfx webvfx] seems an interesting option, it would allow to create titles using HTML, javascript or QML. For those interested, I created a sample title with the webvfx module that can be viewed here: [http://kdenlive.org/videos/retitler.html Titler sample video]- JBM)
** Shortcut matching other editors (Avid, Apple, Adobe, Sony, Pinnacle etc) => Get Hot New Stuff sharing
 
** Scopes as MLT modules?
Alternative timeline layout (snapshot, just for demonstration; click for full size and see the SVG in the refactoring branch for infinite size):


* Alternative timeline view specialised on editing transitions (snapshot, just for demonstration; click for full size and see the SVG in the refactoring branch for infinite size):
[[File:Kdenlive Timeline TransitionView.png]]
[[File:Kdenlive Timeline TransitionView.png]]


= ARCHIVE: Refactoring branch =


This is an attempt to coordinate the work on the deep refactoring that began in 2012. If you want to work on some parts, leave a note here to know who is doing what. Design ideas can also be explained here.
More wishlist/ideas can be found on https://userbase.kde.org/Kdenlive/Ideas


=== Project Bin ===
= Documentation =
Done:
* Add clip to Bin
* Create clip using the list of available MLT producers
* Play Bin Clip in Monitor


In Progress:
* Workflow
* Manage clip zones - JBM
** What are the git branches used for
* Clip timeline and effects (will allow to open a project clip in a separate timeline and add effects to it) - JBM
* Code documentation
** give big-picture views (explain to someone new to the code what it does, why it is required, and who it interacts with)


Todo:
= Refactoring =
* Edit clip properties
* Add MLT Playlist, Slideshow and Title clip types
* Clip jobs


=== Monitors ===
* Break big classes into smaller ones (targetting the refactored architecture: Cutsomtrackview, Renderer...)
Done:
* Replace XML manipulations with MLT API calls
* Set to full screen (double click)
* Port UI to QML
* Switch between available modes (SDL / OpenGL / GLSL / QGraphicsScene)
* Overlay info messages
* Basic zone functionnality


In Progress:
The proposed architecture can be found in the [http://quickgit.kde.org/?p=kdenlive.git&a=tree&hb=35ec064a62cc3490a19b68928df580b1c99f8326 refactoring branch] in ''refactoring-doc/'' – find some snapshots here (not updated, just to get an impression):
* Manage several zones / markers, display overlay info - JBM


Todo:
[[File:KdenliveArchitectureModel.png]]
* Play / loop zone
* Keyboard shortcuts
* Add settings dialog option to select single / dual monitor config and default display format (SDL, OpenGL, GLSL)


=== Timeline ===
[[File:KdenliveArchitectureView.png]]
Done:
* Open basic MLT playlist


Todo:
See discussion [[Kdenlive/Redesign | here]]
* Add clip to timeline
* All clip operations (move, cut, ...) - framework is partially there
* Track operations
* Effects


=== Rendering ===
= Done! =
Todo:
* Should we use MLT presets?


=== Recording ===
* Port Kdenlive to KF5 (KDE Framework 5)
Todo:
* Write an OpenGL display. When this is done, Movit can be integrated.
* Add config dialog to select source
* Refactor ProjectManagement/Bin
* Add Multi consumer to save recording to file
* Project clips effects, so e.g. colour grading is done only once on the clip in the project bin and not every time in the timeline
* Port StopMotion widget, using the new Scene Mode so that we can use all QGraphicsView features.
* Render using MLT presets
 
* Duplicate Title clips
=== Titler ===
Todo:
* What to do with it? Full rewrite? Would [https://github.com/rectalogic/webvfx WebVfx] be an option? See discussion [[Kdenlive/Redesign | here]]
 
=== Scopes ===
Todo:
* Adjust them to the new framework

Latest revision as of 10:03, 29 April 2018

Last update in August 2015. also see our Kanboard

Wish list

  • Titler
    • Keep a simple text incrustation tool, but call a full featured SVG editor for complex designs
      • Base it on WebVFX (allowing to use HTML, javascript or QML) to avoid maintaing our own MLT module? Here is a small demo of what it can achieve
    • Support for subtitles (or MLT module)?
  • Timeline
    • Automatic composite for clips with alpha
    • Cross fades on same track (à la Shotcut)
    • Quick switch individual/global proxy/thumbnails
    • Synchronized tracks (ripple delete / spacer tool etc would keep track groups in sync)
    • Copy/paste across projects
  • Exports
    • Kdenlive 0.x format
    • OpenShot, FlowBlade, PiTiVi...
    • EDL and other exchange formats (MLT module?)
  • Effects
    • UI for keyframes relative to end or in %
    • Apply GEGL/G'MIC/Blender effects (MLT module)?
  • UI
    • Shortcut matching other editors (Avid, Apple, Adobe, Sony, Pinnacle etc) => Get Hot New Stuff sharing
    • Scopes as MLT modules?
  • Alternative timeline view specialised on editing transitions (snapshot, just for demonstration; click for full size and see the SVG in the refactoring branch for infinite size):


More wishlist/ideas can be found on https://userbase.kde.org/Kdenlive/Ideas

Documentation

  • Workflow
    • What are the git branches used for
  • Code documentation
    • give big-picture views (explain to someone new to the code what it does, why it is required, and who it interacts with)

Refactoring

  • Break big classes into smaller ones (targetting the refactored architecture: Cutsomtrackview, Renderer...)
  • Replace XML manipulations with MLT API calls
  • Port UI to QML

The proposed architecture can be found in the refactoring branch in refactoring-doc/ – find some snapshots here (not updated, just to get an impression):

See discussion here

Done!

  • Port Kdenlive to KF5 (KDE Framework 5)
  • Write an OpenGL display. When this is done, Movit can be integrated.
  • Refactor ProjectManagement/Bin
  • Project clips effects, so e.g. colour grading is done only once on the clip in the project bin and not every time in the timeline
  • Render using MLT presets
  • Duplicate Title clips