class_docstr: Thread to keep reading the frame data from stdout. This is
  useful when streaming from a webcam. Otherwise, if the user code
  does not grab frames fast enough, the buffer will fill up, leading
  to lag, and ffmpeg can also stall (experienced on Linux). The
  get_frame() method always returns the last available image.
code: def __init__(self, gen):
      self._gen = gen
      self._frame = None
      self._frame_is_new = False
      self._lock = threading.RLock()
      threading.Thread.__init__(self)
      self.daemon = (
          True  # do not let this thread hold up Python shutdown
      )
      self._should_stop = False
      self.start()
  
imports: import re
  import sys
  import time
  import logging
  import platform
  import threading
  import subprocess
  import imageio_ffmpeg
  import numpy
  from ..core import Format, image_as_uint
label_desc: Use image node_id 1 to create a new FrameCatcher object from inherited base classes: threading with example: obj = FrameCatcher(gen)