"""Base class for frame extraction processors."""

from abc import abstractmethod
from mini_videorag.core.processor import BaseVideoProcessor


class BaseFrameExtractionProcessor(BaseVideoProcessor):
    """
    Abstract base class for frame extraction processors.

    Frame extraction processors extract frames from video files
    and save them to a specified directory. This is needed by
    processors like content_safety, brand_detection, etc.
    """

    @property
    def name(self) -> str:
        """Processor name."""
        return "frame_extraction"

    @property
    def requires_video(self) -> bool:
        """Frame extraction requires video frames."""
        return True

    @property
    @abstractmethod
    def provider(self) -> str:
        """Provider name for this implementation."""
