diff --git a/common/polystar/common/frame_generators/__init__.py b/common/polystar/common/frame_generators/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/common/polystar/common/frame_generators/frames_generator_abc.py b/common/polystar/common/frame_generators/frames_generator_abc.py new file mode 100644 index 0000000000000000000000000000000000000000..a981a92e4fa8c413e75da61080f65e01cd7ea485 --- /dev/null +++ b/common/polystar/common/frame_generators/frames_generator_abc.py @@ -0,0 +1,10 @@ +from abc import ABC, abstractmethod +from typing import Generator + +from polystar.common.models.image import Image + + +class FrameGeneratorABC(ABC): + @abstractmethod + def generate(self) -> Generator[Image]: + pass diff --git a/common/polystar/common/frame_generators/video_frame_generator.py b/common/polystar/common/frame_generators/video_frame_generator.py index e28e7b7416adb0e79b5d70ea62492eb93a30d34c..605228ae0d9c7e88824bb2c7d495af43eadc7320 100644 --- a/common/polystar/common/frame_generators/video_frame_generator.py +++ b/common/polystar/common/frame_generators/video_frame_generator.py @@ -3,8 +3,10 @@ from pathlib import Path import cv2 import ffmpeg +from polystar.common.frame_generators.frames_generator_abc import FrameGeneratorABC -class VideoFrameGenerator: + +class VideoFrameGenerator(FrameGeneratorABC): def __init__(self, video_path: Path, desired_fps: int): self.video_path: Path = video_path self.desired_fps: int = desired_fps