mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-08-13 13:47:36 +02:00
Add review item subscriber
This commit is contained in:
parent
60747268d2
commit
c169e766a5
@ -7,7 +7,7 @@ from .zmq_proxy import Publisher, Subscriber
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ReviewDataPublisher(Publisher[tuple[str, float]]):
|
class ReviewDataPublisher(Publisher): # update when typing improvement is added Publisher[tuple[str, float]]
|
||||||
"""Publishes review item data."""
|
"""Publishes review item data."""
|
||||||
|
|
||||||
topic_base = "review/"
|
topic_base = "review/"
|
||||||
|
@ -29,6 +29,7 @@ from frigate.comms.recordings_updater import (
|
|||||||
RecordingsDataSubscriber,
|
RecordingsDataSubscriber,
|
||||||
RecordingsDataTypeEnum,
|
RecordingsDataTypeEnum,
|
||||||
)
|
)
|
||||||
|
from frigate.comms.review_updater import ReviewDataSubscriber
|
||||||
from frigate.config import FrigateConfig
|
from frigate.config import FrigateConfig
|
||||||
from frigate.config.camera.camera import CameraTypeEnum
|
from frigate.config.camera.camera import CameraTypeEnum
|
||||||
from frigate.config.camera.updater import (
|
from frigate.config.camera.updater import (
|
||||||
@ -143,6 +144,7 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
self.recordings_subscriber = RecordingsDataSubscriber(
|
self.recordings_subscriber = RecordingsDataSubscriber(
|
||||||
RecordingsDataTypeEnum.recordings_available_through
|
RecordingsDataTypeEnum.recordings_available_through
|
||||||
)
|
)
|
||||||
|
self.review_subscriber = ReviewDataSubscriber("")
|
||||||
self.detection_subscriber = DetectionSubscriber(DetectionTypeEnum.video)
|
self.detection_subscriber = DetectionSubscriber(DetectionTypeEnum.video)
|
||||||
self.embeddings_responder = EmbeddingsResponder()
|
self.embeddings_responder = EmbeddingsResponder()
|
||||||
self.frame_manager = SharedMemoryFrameManager()
|
self.frame_manager = SharedMemoryFrameManager()
|
||||||
@ -249,6 +251,7 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
self._process_requests()
|
self._process_requests()
|
||||||
self._process_updates()
|
self._process_updates()
|
||||||
self._process_recordings_updates()
|
self._process_recordings_updates()
|
||||||
|
self._process_review_updates()
|
||||||
self._process_frame_updates()
|
self._process_frame_updates()
|
||||||
self._expire_dedicated_lpr()
|
self._expire_dedicated_lpr()
|
||||||
self._process_finalized()
|
self._process_finalized()
|
||||||
@ -523,6 +526,16 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
f"{camera} now has recordings available through {recordings_available_through_timestamp}"
|
f"{camera} now has recordings available through {recordings_available_through_timestamp}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _process_review_updates(self) -> None:
|
||||||
|
"""Process review updates."""
|
||||||
|
while True:
|
||||||
|
review_updates = self.review_subscriber.check_for_update()
|
||||||
|
|
||||||
|
if review_updates == None:
|
||||||
|
break
|
||||||
|
|
||||||
|
logger.info(f"revieved review update {review_updates}")
|
||||||
|
|
||||||
def _process_event_metadata(self):
|
def _process_event_metadata(self):
|
||||||
# Check for regenerate description requests
|
# Check for regenerate description requests
|
||||||
(topic, payload) = self.event_metadata_subscriber.check_for_update()
|
(topic, payload) = self.event_metadata_subscriber.check_for_update()
|
||||||
|
@ -166,7 +166,7 @@ class ReviewSegmentMaintainer(threading.Thread):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
self.detection_subscriber = DetectionSubscriber(DetectionTypeEnum.all)
|
self.detection_subscriber = DetectionSubscriber(DetectionTypeEnum.all)
|
||||||
self.review_publisher = ReviewDataPublisher()
|
self.review_publisher = ReviewDataPublisher("")
|
||||||
|
|
||||||
# manual events
|
# manual events
|
||||||
self.indefinite_events: dict[str, dict[str, Any]] = {}
|
self.indefinite_events: dict[str, dict[str, Any]] = {}
|
||||||
@ -196,7 +196,7 @@ class ReviewSegmentMaintainer(threading.Thread):
|
|||||||
"reviews",
|
"reviews",
|
||||||
json.dumps(review_update),
|
json.dumps(review_update),
|
||||||
)
|
)
|
||||||
self.review_publisher.publish(review_update)
|
self.review_publisher.publish(review_update, segment.camera)
|
||||||
self.requestor.send_data(
|
self.requestor.send_data(
|
||||||
f"{segment.camera}/review_status", segment.severity.value.upper()
|
f"{segment.camera}/review_status", segment.severity.value.upper()
|
||||||
)
|
)
|
||||||
@ -224,7 +224,7 @@ class ReviewSegmentMaintainer(threading.Thread):
|
|||||||
"reviews",
|
"reviews",
|
||||||
json.dumps(review_update),
|
json.dumps(review_update),
|
||||||
)
|
)
|
||||||
self.review_publisher.publish(review_update)
|
self.review_publisher.publish(review_update, segment.camera)
|
||||||
self.requestor.send_data(
|
self.requestor.send_data(
|
||||||
f"{segment.camera}/review_status", segment.severity.value.upper()
|
f"{segment.camera}/review_status", segment.severity.value.upper()
|
||||||
)
|
)
|
||||||
@ -246,7 +246,7 @@ class ReviewSegmentMaintainer(threading.Thread):
|
|||||||
"reviews",
|
"reviews",
|
||||||
json.dumps(review_update),
|
json.dumps(review_update),
|
||||||
)
|
)
|
||||||
self.review_publisher.publish(review_update)
|
self.review_publisher.publish(review_update, segment.camera)
|
||||||
self.requestor.send_data(f"{segment.camera}/review_status", "NONE")
|
self.requestor.send_data(f"{segment.camera}/review_status", "NONE")
|
||||||
self.active_review_segments[segment.camera] = None
|
self.active_review_segments[segment.camera] = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user