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 get_frame(self):
      while self._frame is None:  # pragma: no cover - an init thing
          time.sleep(0.001)
      with self._lock:
          is_new = self._frame_is_new
          self._frame_is_new = False  # reset
          return self._frame, is_new
  
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 3 for calling the FrameCatcher obj's underlying member method code with example usage: obj.get_frame() and returns: self,  is_new