From b7ee18d081deef03f81129f2280fbd06ec2dcecb Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 14 Apr 2019 11:31:48 +0100 Subject: [PATCH] Better handling of GPU preview resizing --- openflexure_microscope/camera/pi.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/openflexure_microscope/camera/pi.py b/openflexure_microscope/camera/pi.py index 4a51ed3d..eed43cce 100644 --- a/openflexure_microscope/camera/pi.py +++ b/openflexure_microscope/camera/pi.py @@ -238,9 +238,16 @@ class StreamingCamera(BaseCamera): self.start_stream_recording() try: with self.lock: - self.camera.start_preview(fullscreen=fullscreen, window=window) + if not self.camera.preview: + logging.debug("Starting preview") + self.camera.start_preview(fullscreen=fullscreen, window=window) + else: + logging.debug("Resizing preview") + if window: + self.camera.preview.window = window + if fullscreen: + self.camera.preview.fullscreen = fullscreen self.state['preview_active'] = True - time.sleep(0.2) except picamera.exc.PiCameraMMALError as e: logging.error("Suppressed a MMALError in start_preview. Exception: {}".format(e)) except picamera.exc.PiCameraValueError as e: @@ -252,7 +259,6 @@ class StreamingCamera(BaseCamera): with self.lock: self.camera.stop_preview() self.state['preview_active'] = False - time.sleep(0.2) return True def start_recording(