Description
get_video_frame() computes the seek position as min(frame_total, frame_number - 1). With the default frame_number=0, this becomes -1 (invalid frame index). For large requested frame numbers, it can also become frame_total (also invalid, since last valid frame is frame_total - 1). This causes intermittent failed reads (has_frame=False) and breaks callers that expect a valid first frame by default.
Severity: high
File: modules/capturer.py
Expected Behavior
The code should handle this case properly to avoid unexpected errors or degraded quality.
Description
get_video_frame()computes the seek position asmin(frame_total, frame_number - 1). With the defaultframe_number=0, this becomes-1(invalid frame index). For large requested frame numbers, it can also becomeframe_total(also invalid, since last valid frame isframe_total - 1). This causes intermittent failed reads (has_frame=False) and breaks callers that expect a valid first frame by default.Severity:
highFile:
modules/capturer.pyExpected Behavior
The code should handle this case properly to avoid unexpected errors or degraded quality.