Compare commits
18 Commits
2013ccf627
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 53af41b181 | |||
| cd7cc426ae | |||
| 2537a5ffe4 | |||
| c6b285ae18 | |||
| 91165056d7 | |||
| 24dc67b8ca | |||
| 66d3fa6893 | |||
| a78ad45013 | |||
| f27061b0ef | |||
| bd1824a7ca | |||
| 4806c95095 | |||
| 16c841d14d | |||
| bfb9ed54d9 | |||
| 3ac725c2aa | |||
| b5a0811cbd | |||
| 1ac8cd04b3 | |||
| 203d036a92 | |||
| fa2ac22f9f |
927
croppa/main.py
927
croppa/main.py
File diff suppressed because it is too large
Load Diff
15
main.py
15
main.py
@@ -30,6 +30,10 @@ class Cv2BufferedCap:
|
||||
# Current position tracking
|
||||
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):
|
||||
"""Get frame at specific index - always accurate"""
|
||||
# Clamp frame number to valid range
|
||||
@@ -671,14 +675,9 @@ class MediaGrader:
|
||||
# Advance to next frame in this segment
|
||||
self.segment_current_frames[i] += 1
|
||||
|
||||
# Get the segment boundaries
|
||||
start_frame = self.segment_positions[i]
|
||||
end_frame = self.segment_end_positions[i]
|
||||
|
||||
# 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
|
||||
# Loop over the entire video, starting from the segment's initial position
|
||||
if self.segment_current_frames[i] >= self.total_frames:
|
||||
self.segment_current_frames[i] = 0
|
||||
|
||||
# Ensure we don't go beyond the video cache
|
||||
if self.segment_current_frames[i] < len(self.video_frame_cache):
|
||||
|
||||
Reference in New Issue
Block a user