mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Local only processors for handling real time object processing."""
 | |
| 
 | |
| import logging
 | |
| from abc import ABC, abstractmethod
 | |
| 
 | |
| import numpy as np
 | |
| 
 | |
| from frigate.config import FrigateConfig
 | |
| 
 | |
| from ..types import DataProcessorMetrics
 | |
| 
 | |
| logger = logging.getLogger(__name__)
 | |
| 
 | |
| 
 | |
| class RealTimeProcessorApi(ABC):
 | |
|     @abstractmethod
 | |
|     def __init__(
 | |
|         self,
 | |
|         config: FrigateConfig,
 | |
|         metrics: DataProcessorMetrics,
 | |
|     ) -> None:
 | |
|         self.config = config
 | |
|         self.metrics = metrics
 | |
|         pass
 | |
| 
 | |
|     @abstractmethod
 | |
|     def process_frame(self, obj_data: dict[str, any], frame: np.ndarray) -> None:
 | |
|         """Processes the frame with object data.
 | |
|         Args:
 | |
|             obj_data (dict): containing data about focused object in frame.
 | |
|             frame (ndarray): full yuv frame.
 | |
| 
 | |
|         Returns:
 | |
|             None.
 | |
|         """
 | |
|         pass
 | |
| 
 | |
|     @abstractmethod
 | |
|     def handle_request(
 | |
|         self, topic: str, request_data: dict[str, any]
 | |
|     ) -> dict[str, any] | None:
 | |
|         """Handle metadata requests.
 | |
|         Args:
 | |
|             topic (str): topic that dictates what work is requested.
 | |
|             request_data (dict): containing data about requested change to process.
 | |
| 
 | |
|         Returns:
 | |
|             None if request was not handled, otherwise return response.
 | |
|         """
 | |
|         pass
 | |
| 
 | |
|     @abstractmethod
 | |
|     def expire_object(self, object_id: str) -> None:
 | |
|         """Handle objects that are no longer detected.
 | |
|         Args:
 | |
|             object_id (str): id of object that is no longer detected.
 | |
| 
 | |
|         Returns:
 | |
|             None.
 | |
|         """
 | |
|         pass
 |