import cv2 import os # Global state VIDEO_DIR = "data" video_files = [os.path.join(VIDEO_DIR, file) for file in sorted(os.listdir(VIDEO_DIR)) if file.endswith((".mp4", ".avi"))] video_index = 0 cap = None def get_next_video_frame(): global cap, video_index if not video_files: raise RuntimeError("No video files found in the 'data' directory.") if cap is None or not cap.isOpened(): cap = cv2.VideoCapture(video_files[video_index]) ret, frame = cap.read() if not ret: cap.release() video_index = (video_index + 1) % len(video_files) cap = cv2.VideoCapture(video_files[video_index]) ret, frame = cap.read() if not ret: raise RuntimeError(f"Cannot read video {video_files[video_index]}") return frame def reset_video_index(): global video_index video_index = 0