From 5080b2d7814ccd4ffe4ac0d3d14ef9f87eae5264 Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Mon, 9 Nov 2020 21:00:06 -0600 Subject: [PATCH] ensure some valid thumbnail is available --- frigate/object_processing.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frigate/object_processing.py b/frigate/object_processing.py index 9615103dc..6f075fc89 100644 --- a/frigate/object_processing.py +++ b/frigate/object_processing.py @@ -78,7 +78,8 @@ class TrackedObject(): } self.frame = None self._snapshot_jpg_time = 0 - self._snapshot_jpg = None + ret, jpg = cv2.imencode('.jpg', np.zeros((300,300,3), np.uint8)) + self._snapshot_jpg = jpg.tobytes() # start the score history self.score_history = [self.obj_data['score']] @@ -164,6 +165,12 @@ class TrackedObject(): def snapshot_jpg(self): if self._snapshot_jpg_time == self.thumbnail_data['frame_time']: return self._snapshot_jpg + + if not self.thumbnail_data['frame_time'] in self.thumbnail_frames: + logger.error(f"Unable to create thumbnail for {self.obj_data['id']}") + logger.error(f"Looking for frame_time of {self.thumbnail_data['frame_time']}") + logger.error(f"Thumbnail frames: {','.join([str(k) for k in self.thumbnail_frames.keys()])}") + return self._snapshot_jpg # TODO: crop first to avoid converting the entire frame? snapshot_config = self.camera_config.snapshots