Compare commits

..

18 Commits

Author SHA1 Message Date
53af41b181 Have ; add track points to each instance rather than pause 2025-11-27 08:12:31 +01:00
cd7cc426ae Loop segments 2025-11-26 14:30:51 +01:00
2537a5ffe4 Add attribute delegation to Cv2BufferedCap for improved access to VideoCapture methods 2025-11-26 14:24:10 +01:00
c6b285ae18 Fix sometimes overwriting existing edited videos 2025-11-10 20:06:16 +01:00
91165056d7 Now actually do the thing the previous commit claims to do 2025-11-04 12:30:44 +01:00
24dc67b8ca Make shift right click put down track point on the position of the previous track point 2025-11-04 12:22:56 +01:00
66d3fa6893 Invert 90 2025-10-20 21:07:49 +02:00
a78ad45013 Make region interesting frame (or interesting region I guess?) 2025-10-20 21:06:30 +02:00
f27061b0ef Add "go to next interesting frame" button 2025-10-20 19:25:04 +02:00
bd1824a7ca Remove spammy prints 2025-09-26 19:44:17 +02:00
4806c95095 Shift 1-2 to go to markers 2025-09-26 19:41:07 +02:00
16c841d14d Remove some retard 2025-09-26 19:39:59 +02:00
bfb9ed54d9 Bigger template aoe 2025-09-26 19:39:53 +02:00
3ac725c2aa Enhance template selection logic in VideoEditor to handle current frame matches
This commit updates the template selection logic in the VideoEditor to correctly identify and utilize templates that start at the current frame. The changes include additional checks to remove or use templates based on their start frames, improving the efficiency and accuracy of template management during video editing sessions.
2025-09-26 19:38:45 +02:00
b5a0811cbd Enhance template management in VideoEditor by including template images
This commit updates the template management system in the VideoEditor to store template images alongside their start frames and regions. The changes include modifications to the loading and saving processes, ensuring that template images are recreated when needed. Additionally, the logic for adding and retrieving templates has been refined to accommodate the new structure, improving the overall efficiency and clarity of template handling during video editing sessions.
2025-09-26 19:35:13 +02:00
1ac8cd04b3 Refactor template management in VideoEditor to simplify template structure
This commit updates the template management system in the VideoEditor by transitioning from a dictionary-based structure to a list of tuples. The new structure simplifies the handling of templates, focusing on start frames and regions without the need for template IDs or counters. Additionally, the loading and saving of templates have been streamlined, enhancing clarity and efficiency in template operations during video editing sessions.
2025-09-26 19:33:52 +02:00
203d036a92 Remove all templates on C 2025-09-26 19:14:00 +02:00
fa2ac22f9f Refactor video scaling logic in VideoEditor to improve display handling
This commit updates the video scaling logic to ensure that videos are scaled down to fit the screen bounds instead of resizing the window. The previous logic for window resizing has been removed, streamlining the display process and enhancing the user experience during video editing sessions. The changes also include adjustments to maintain the aspect ratio of the video while scaling.
2025-09-26 19:04:54 +02:00
2 changed files with 734 additions and 260 deletions

File diff suppressed because it is too large Load Diff

15
main.py
View File

@@ -29,6 +29,10 @@ class Cv2BufferedCap:
# Current position tracking # Current position tracking
self.current_frame = 0 self.current_frame = 0
def __getattr__(self, name):
"""Delegate unknown attributes to underlying cv2.VideoCapture"""
return getattr(self.cap, name)
def get_frame(self, frame_number): def get_frame(self, frame_number):
"""Get frame at specific index - always accurate""" """Get frame at specific index - always accurate"""
@@ -671,14 +675,9 @@ class MediaGrader:
# Advance to next frame in this segment # Advance to next frame in this segment
self.segment_current_frames[i] += 1 self.segment_current_frames[i] += 1
# Get the segment boundaries # Loop over the entire video, starting from the segment's initial position
start_frame = self.segment_positions[i] if self.segment_current_frames[i] >= self.total_frames:
end_frame = self.segment_end_positions[i] self.segment_current_frames[i] = 0
# Loop within the segment bounds
if self.segment_current_frames[i] > end_frame:
# Loop back to start of segment
self.segment_current_frames[i] = start_frame
# Ensure we don't go beyond the video cache # Ensure we don't go beyond the video cache
if self.segment_current_frames[i] < len(self.video_frame_cache): if self.segment_current_frames[i] < len(self.video_frame_cache):