Commit Graph

152 Commits

Author SHA1 Message Date
79aa51a21c Refactor display dimension calculations in VideoEditor
This commit simplifies the calculation of display dimensions by utilizing the transformed display frame directly, eliminating redundant width and height calculations based on rotation and crop. It enhances the overall efficiency of the display handling process, ensuring accurate scaling and improved performance during video editing.
2025-09-16 15:07:00 +02:00
5637a9a3e0 Refactor motion tracking and display transformation in VideoEditor
This commit enhances the motion tracking logic by refining how the crop center is adjusted based on tracked points. It introduces a new method, transform_point_for_display, which applies cropping, rotation, and zoom transformations to video coordinates for accurate screen positioning. Additionally, it removes redundant motion tracking offset calculations, streamlining the overall crop and display handling process, thereby improving the user experience during video editing.
2025-09-16 14:47:49 +02:00
81f17953f7 Enhance crop application with motion tracking in VideoEditor
This commit updates the crop functionality to incorporate motion tracking offsets, ensuring that the crop center aligns with tracked points when motion tracking is enabled. It also refines the handling of crop adjustments and display offsets, improving the overall user experience during video editing. Additionally, the key mappings for expanding crop dimensions have been corrected for clarity in user interactions.
2025-09-16 14:43:46 +02:00
04d914834e Refactor crop and motion tracking logic in VideoEditor
This commit simplifies the crop application process by removing unnecessary motion tracking offset calculations in certain areas. It enhances the distance calculation for tracking point removal by switching from screen to video coordinates, improving reliability. Additionally, it updates the HJKL key mapping to ensure visual directions correspond correctly to the current video rotation, enhancing user interaction during editing.
2025-09-16 14:38:48 +02:00
4960812cba Enhance motion tracking functionality in VideoEditor
This commit updates the MotionTracker class to improve the offset calculation for centering crops on tracked points. It modifies the user interaction for adding and removing tracking points, allowing for nearby points to be removed with a right-click. Additionally, it introduces a method to map HJKL keys to directions based on the current rotation, enhancing the crop adjustment experience. The VideoEditor class has been updated to apply these changes, ensuring a more intuitive and responsive editing workflow.
2025-09-16 14:35:42 +02:00
0b007b572e Fix deserialization of tracking points in MotionTracker: convert string keys to integers for proper handling of frame numbers. This ensures accurate data loading from dictionaries during the deserialization process. 2025-09-16 14:30:48 +02:00
f111571601 Add MotionTracker class for enhanced motion tracking in VideoEditor
This commit introduces the MotionTracker class, which manages motion tracking points for crop and pan operations. It allows users to add, remove, and clear tracking points, as well as interpolate positions based on these points. The VideoEditor class has been updated to integrate motion tracking functionality, including user interactions for adding tracking points and toggling tracking on and off. Additionally, the display now reflects motion tracking status and visualizes tracking points on the canvas, improving the editing experience.
2025-09-16 14:26:44 +02:00
5baa2572ea Add Cv2BufferedCap class for efficient video frame handling in VideoEditor
This commit introduces the Cv2BufferedCap class, which provides a buffered wrapper around cv2.VideoCapture. It implements frame caching with LRU eviction to optimize frame retrieval and reduce latency during video playback. The VideoEditor class has been updated to utilize this new class, enhancing performance and simplifying frame management. Unused frame cache methods have been removed to streamline the codebase.
2025-09-16 13:35:55 +02:00
c7c092d3f3 Implement frame caching in VideoEditor: add methods for managing frame cache with LRU eviction, improving playback performance by reducing frame retrieval time. Clear cache when switching videos to optimize memory usage. 2025-09-16 13:29:09 +02:00
f0d540be27 Add refresh_progress_data method in ProjectView and update VideoEditor to call it on state save. This ensures progress data is up-to-date when the editor state changes, enhancing user experience and project management. 2025-09-16 10:06:44 +02:00
c8dfcca954 Refactor thumbnail caching in ProjectView: store original thumbnails by video path instead of size, allowing for on-demand resizing. This change optimizes thumbnail generation and improves performance by reducing redundant processing. 2025-09-16 10:05:09 +02:00
b9cf9f0125 Update keyboard shortcuts in ProjectView: correct functionality for adjusting items per row, swapping the actions for 'Q' and 'Y' to improve user navigation and experience. Revise instructions to reflect these changes. 2025-09-16 10:04:00 +02:00
b8899004f3 Refactor ProjectView to improve thumbnail layout and item display: set default items per row to 2, implement dynamic thumbnail size calculation, and update keyboard shortcuts for adjusting items per row. Enhance thumbnail caching mechanism to optimize performance and maintain aspect ratio during resizing. 2025-09-16 10:02:53 +02:00
8c4663c4ef Remove unnecessary mouse interaction handling in VideoEditor when in project view mode, streamlining the mouse callback functionality. 2025-09-16 09:56:50 +02:00
9dd0c837b4 Update keyboard shortcuts in ProjectView: add 'q' for quitting and refine instructions for user navigation. Enhance VideoEditor to handle quit action, improving overall user experience. 2025-09-16 09:54:16 +02:00
c56b012246 Enhance ProjectView responsiveness: dynamically adjust canvas size and layout based on actual window dimensions, improving thumbnail placement and visibility. Update calculations for text positioning and item display to ensure consistent user experience across varying window sizes. 2025-09-16 09:48:11 +02:00
46f4441357 Improve thumbnail handling in ProjectView: add bounds checking for thumbnail placement on canvas and adjust resizing logic to prevent exceeding canvas dimensions. Update thumbnail size constraints for resizing operations to ensure minimum size limits. 2025-09-16 09:46:14 +02:00
d60828d787 Refactor thumbnail layout and navigation in ProjectView: dynamically calculate items per row based on window width and thumbnail size, and add keyboard shortcuts for resizing thumbnails. Update instructions to reflect new functionality. 2025-09-16 09:43:01 +02:00
cfd919a377 Enhance VideoEditor functionality: implement loading of saved state when opening videos, ensuring continuity in user experience across sessions. 2025-09-16 09:37:30 +02:00
d235fa693e Update filename display logic and improve video editor behavior: increase filename length limit and adjust text rendering properties. Maintain project view when switching to video editor, enhancing user interface fluidity. 2025-09-16 09:36:49 +02:00
97e4a140eb Add project view functionality to VideoEditor: implement video browsing with thumbnails, progress tracking, and keyboard navigation. Toggle between project and editor modes, enhancing user experience. 2025-09-16 09:35:32 +02:00
ae2b156b87 Refactor VideoEditor initialization: load first video and state after attribute setup, validate cut markers, and streamline default value assignments 2025-09-15 18:38:38 +02:00
01aaa36eb0 Add caching for video transformations to improve performance during auto-repeat seeking
???
2025-09-15 18:34:04 +02:00
83b40af001 Fix rendering....... 2025-09-08 20:47:55 +02:00
1a086f9362 Decringe 2025-09-08 20:43:07 +02:00
8f77960183 Fix rendering again........ 2025-09-08 20:39:26 +02:00
d6af05b6db Fix rendering AGAIN 2025-09-08 20:36:15 +02:00
76245b3adc Fix loading variables quote on quote....... 2025-09-08 20:26:15 +02:00
6559310adc Fix rendering again 2025-09-08 20:24:59 +02:00
01ea25168a refactor(main.py): simplify memory usage calculation and streamline video safety checks 2025-09-08 18:57:50 +02:00
fc0aa1317b Fix up segmented mode to loop their video segment 2025-09-08 17:54:56 +02:00
a6886a8ab8 Save when navigate 2025-09-08 17:36:00 +02:00
4d4cba9876 Implement fullscreen 2025-09-08 17:34:50 +02:00
0847ea1abd Remove some garbage code 2025-09-08 17:14:09 +02:00
37e9e99f64 Fix the rendering errors 2025-09-08 17:03:01 +02:00
15382b8fe7 Some fucking bullshit 2025-09-08 17:02:23 +02:00
9763597af8 feat(main.py): track display updates and optimize video rendering process 2025-09-08 16:27:55 +02:00
4d60526952 refactor(main.py): optimize video processing by seeking once and reading sequentially to improve performance 2025-09-08 16:23:37 +02:00
87ead9189f fix(main.py): replace 'n' with 'b' for save and render commands to avoid confusion 2025-09-08 10:23:42 +02:00
1e1a886766 fix(main.py): correct key binding and add debug check for render video 2025-09-08 09:31:41 +02:00
34179e5922 refactor(main.py): simplify render video logic and improve filename handling 2025-09-08 08:40:38 +02:00
f9272e76eb feat(cleaner): add directory for video name cleaning with CLI tool and registry entry 2025-09-08 08:40:13 +02:00
1a05963c31 fix(main.py): reset zoom factor to 1.0 and save state when crop is cleared 2025-09-08 00:49:21 +02:00
3a8f8d26d3 feat(main.py): add file overwrite handling for video editor 2025-09-08 00:42:00 +02:00
56d6e04b48 refactor(main.py): simplify video rendering process by reusing existing method and reducing redundant code 2025-09-08 00:40:00 +02:00
6efbfa0c11 refactor(main.py): update video rendering to handle asynchronous rendering and improve debug logging 2025-09-08 00:37:04 +02:00
d1b26fe8b4 refactor(main.py): add debug prints and validate cut markers against video length 2025-09-08 00:36:37 +02:00
1da8efc528 feat(main.py): add synchronous video rendering method for overwrite operations 2025-09-08 00:32:48 +02:00
0dbf82f76b refactor(main.py): add state saving on crop and marker changes to ensure consistent state management 2025-09-08 00:30:21 +02:00
4651ba51f1 refactor(main.py): simplify filename generation logic and update user instructions 2025-09-08 00:28:32 +02:00