def METHOD_NAME(self):
    """
        _render() is mostly meant to be a one-time initial drawing call to set up the
        Screen. Once interaction starts, the display updates have to be managed in
        _run(). The live preview is an extra-complex case.
    """
    num_frames = 0
    start_time = time.time()
    while True:
        frame = self.camera.read_video_stream()
        if frame is not None:
            status = self.decoder.add_image(frame)
            num_frames += 1
            decoder_fps = f"{num_frames / (time.time() - start_time):0.2f}"
            self.threads[0].decoder_fps = decoder_fps
            if status in (DecodeQRStatus.COMPLETE, DecodeQRStatus.INVALID):
                self.camera.stop_video_stream_mode()
                break
            if self.hw_inputs.check_for_low(HardwareButtonsConstants.KEY_RIGHT) or self.hw_inputs.check_for_low(HardwareButtonsConstants.KEY_LEFT):
                self.camera.stop_video_stream_mode()
                break