Jump to content

SoK/2024/StatusReport/Ajay Chauhan: Difference between revisions

From KDE Community Wiki
Intincrab (talk | contribs)
No edit summary
Intincrab (talk | contribs)
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 5: Line 5:


# Add code to apply filters to the clips in the main tractor to achieve the desired aspect ratio.
# Add code to apply filters to the clips in the main tractor to achieve the desired aspect ratio.
# Modify the user interface to allow users to select the desired aspect ratio during export and invoke that filter when I choose one of the ratio
# Modify the user interface to allow users to select the desired aspect ratio during export and invoke that filter when they choose one of the aspect ratio.
# Ensure that the aspect ratio selected by the user is integrated into the final rendering profile
# Ensure that the aspect ratio selected by the user is integrated into the final rendering profile.




'''Weekly Progress:'''
'''Weekly Progress:'''


# Week 1-2:
# Week 1-3:
## Configured my local development environment and familiarize myself with the project structure.
## Set up my working build environment and familiarize myself with the project structure.
## Discussed with the mentor on how to implement the changes and what all files I should be looking at.
## Discussed with the mentor on how to implement this filter and identified relevant files and sections of the code that would be critical for the changes.
## Modifying the sceneList function,Implementation of Aspect Ratio Adjustment Functionality,
## Modifying the sceneList function,Implementing the aspect ratio adjustment functionality.
## Added calculateCropParameters function to compute crop dimensions based on input aspect ratios ( currently it handle only if the target aspect ratio is 1:1 square)
## Added calculateCropParameters function to compute crop dimensions based on input aspect ratios (currently it handle only if the target aspect ratio is 1:1 square).
## Prepared a [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466 draft merge request] to document the changes made
## Prepared a [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466 merge request] (new MR : https://invent.kde.org/multimedia/kdenlive/-/merge_requests/495) to document the changes made.
 
# Week 3-6:
## Added XML consumer and producer for handling crop filters, enabling video cropping to the desired ratio. [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466/diffs?commit_id=6bcceda23f47f92bebf2bb667b537461cc998a2d]
## Resolved the aspect ratio issue in the projectSceneList method, debugging the program to generate accurate XML for a given aspect ratio. [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466/diffs?commit_id=ce84acb0a9793fbfb08a9c504d04f95070c8d46a]
## Implemented QTemporaryFile for cross-platform handling of temporary files, replacing hardcoded temp paths [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466/diffs?commit_id=81a5967d1096bd0bb53b87240f3cd12108ed11d4]
## Added CropCalculator class and refactor code to use it for calculating crop parameters [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/466/diffs?commit_id=92b28b2ecc663f513c5ed85f05eb4405a1a0b2b4]
 
# Week 6-10:
## Implemented the GUI part of the project, added a ComboBox for selecting the aspect ratio.[https://invent.kde.org/multimedia/kdenlive/-/commit/462531906dcf062098ef12d25cbd5457531eb9c1?merge_request_iid=466]
## Fixed the tempFile creation in ProjectItemModel::sceneList for aspect ratio, which avoid creating unnecessary temporary files, the method now initialises an empty QTemporaryFile object. Then, if an aspect ratio change is wanted, the temporary file is set up with a specific file template and opened for writing.[https://invent.kde.org/multimedia/kdenlive/-/commit/193404224b21b278b78b33b37dfe4139d7caa8d7?merge_request_iid=466]
## Selected aspect ratio is retrieved from the combo box and passed to the setAspectRatio method of the RenderRequest object [https://invent.kde.org/multimedia/kdenlive/-/commit/6d08286acfbeccd0a99672e79b6fc25a7f1d8781?merge_request_iid=466]
 
# Extension Weeks 1-2:
## Profiles with width or height that are not a multiple of 2 cause crashes. Fixed the issue by ensuring that the video profile width and height are multiples of 2. [https://invent.kde.org/multimedia/kdenlive/-/commit/522518e94bd2459e408a7da3ad9c525d104e2644?merge_request_iid=466]
## I had issue with rebasing the project so I created a create a new fork branch from the current master and applied the changes [https://invent.kde.org/multimedia/kdenlive/-/merge_requests/495]
 
 
== Blog Posts ==
 
* [https://ajayslog.vercel.app/posts/season-of-kde-01/ Blog 01: Adding Multi-Format Rendering to Kdenlive]
* [https://ajayslog.vercel.app/posts/season-of-kde-02/ Blog 02: Season of KDE - Kdenlive]
 
== Contact ==
I am on Matrix as [https://matrix.to/#/@hisir:matrix.org @hisir:matrix.org].

Latest revision as of 08:47, 18 April 2024

Implement Multi-format Rendering to Kdenlive

Project Abstract:

Following are the deliverables:

  1. Add code to apply filters to the clips in the main tractor to achieve the desired aspect ratio.
  2. Modify the user interface to allow users to select the desired aspect ratio during export and invoke that filter when they choose one of the aspect ratio.
  3. Ensure that the aspect ratio selected by the user is integrated into the final rendering profile.


Weekly Progress:

  1. Week 1-3:
    1. Set up my working build environment and familiarize myself with the project structure.
    2. Discussed with the mentor on how to implement this filter and identified relevant files and sections of the code that would be critical for the changes.
    3. Modifying the sceneList function,Implementing the aspect ratio adjustment functionality.
    4. Added calculateCropParameters function to compute crop dimensions based on input aspect ratios (currently it handle only if the target aspect ratio is 1:1 square).
    5. Prepared a merge request (new MR : https://invent.kde.org/multimedia/kdenlive/-/merge_requests/495) to document the changes made.
  1. Week 3-6:
    1. Added XML consumer and producer for handling crop filters, enabling video cropping to the desired ratio. [1]
    2. Resolved the aspect ratio issue in the projectSceneList method, debugging the program to generate accurate XML for a given aspect ratio. [2]
    3. Implemented QTemporaryFile for cross-platform handling of temporary files, replacing hardcoded temp paths [3]
    4. Added CropCalculator class and refactor code to use it for calculating crop parameters [4]
  1. Week 6-10:
    1. Implemented the GUI part of the project, added a ComboBox for selecting the aspect ratio.[5]
    2. Fixed the tempFile creation in ProjectItemModel::sceneList for aspect ratio, which avoid creating unnecessary temporary files, the method now initialises an empty QTemporaryFile object. Then, if an aspect ratio change is wanted, the temporary file is set up with a specific file template and opened for writing.[6]
    3. Selected aspect ratio is retrieved from the combo box and passed to the setAspectRatio method of the RenderRequest object [7]
  1. Extension Weeks 1-2:
    1. Profiles with width or height that are not a multiple of 2 cause crashes. Fixed the issue by ensuring that the video profile width and height are multiples of 2. [8]
    2. I had issue with rebasing the project so I created a create a new fork branch from the current master and applied the changes [9]


Blog Posts

Contact

I am on Matrix as @hisir:matrix.org.