SoK/2024/StatusReport/aisuneko: Difference between revisions
< SoK | 2024/StatusReport
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
Following are the deliverables: | Following are the deliverables: | ||
# Implement a graphical editor for keyframe curves | # Implement a graphical editor for keyframe curves | ||
## Modify upstream animation-related code of MLT, Kdenlive's backend, to | ## ''Modify upstream animation-related code of MLT, Kdenlive's backend, to add a custom "bezier" keyframe type enabling fine-grained control of the keyframe curve'' (NOT IMPLEMENTED, will save for work beyond SoK24) | ||
## Build a GUI alongside the existing keyframe timeline view, allowing users to edit | ## Build a GUI alongside the existing keyframe timeline view, allowing users to edit curves in keyframing | ||
# Integrate [https://github.com/mltframework/mlt/commit/a7597aa1ae8c178f6dd0cb98475aef57ea306734 the rest] of MLT's new keyframe types and corresponding menu items into Kdenlive and the above GUI | # Integrate [https://github.com/mltframework/mlt/commit/a7597aa1ae8c178f6dd0cb98475aef57ea306734 the rest] of MLT's new keyframe types and corresponding menu items into Kdenlive and the above GUI | ||
Revision as of 04:56, 29 March 2024
Enable editing of keyframe curves and advanced keyframe types in Kdenlive
Project Abstract:
Following are the deliverables:
- Implement a graphical editor for keyframe curves
- Modify upstream animation-related code of MLT, Kdenlive's backend, to add a custom "bezier" keyframe type enabling fine-grained control of the keyframe curve (NOT IMPLEMENTED, will save for work beyond SoK24)
- Build a GUI alongside the existing keyframe timeline view, allowing users to edit curves in keyframing
- Integrate the rest of MLT's new keyframe types and corresponding menu items into Kdenlive and the above GUI
Weekly Progress:
- Weeks 1-3:
- Set up build environment and familiarize myself with the project workflow
- Spent time reading through related code in Kdenlive & MLT's codebase; Took some notes regarding MLT's keyframing structure and GUI ideas while discussing certain details with my mentor
- Gave some thought on what changes should be made (and how) in Kdenlive and MLT to reach the above goals
- As a starting point, refactored code associated with keyframe types and made minor functionality changes to Kdenlive
- Submitted a pull request which is now merged
- Weeks 4-5: Took a break during Chinese Lunar New Year vacation while busy with certain personal affairs. Thinking about next steps in the meantime
- Week 6:
- Created a new widget class for the keyframe curve editor; managed to insert it into existing GUI before implementing other functionalities.
- Opened a draft pull request including my changes made so far. Currently stuck due to difficulty in understanding existing keyframing architecture in Kdenlive
- Week 7:
- Made more progress in building the UI for the curve editor. Started working on implementing actual functions and connecting the widget with existing components
- Published a blog post documenting my current progress (though a bit late)
- Weeks 8-9:
- Completed most of the main functions (such as specific behavior for canvas interaction (eg. dragging and clicking) and integration with existing widgets). A demo video of the curve editor widget could be found here
- Started refactoring code added so far in the project as well as fixing major bugs
- Opened another draft pull request to track recent changes