def _find_voids( clip: VideoClip, diff_threshold: float, repetition_threshold: int ) -> List[Tuple[float, float]]: cuts: List[Tuple[float, float]] = [] last_used_frame = None last_used_frame_t = 0 num_similar = 0 with ui.ProgressBar(f"{clip.filename} - Processing frames", 1) as progress: for frame_t, frame in clip.iter_frames(with_times=True, logger=progress): if last_used_frame is None: last_used_frame = frame last_used_frame_t = frame_t continue diff = np.mean((frame - last_used_frame) ** 2) if diff < diff_threshold: # there are no signficant differences between this frame and the # last used frame num_similar += ( 1 # Count the number of frames in a row which are similar ) else: # there was a significant difference between the frames if num_similar > repetition_threshold: # there were enough differences in a row cuts.append((last_used_frame_t, frame_t)) # take note of this frame, and use it as reference for comparison last_used_frame = frame last_used_frame_t = frame_t num_similar = 0 return cuts