class_docstr: VideoManager object for getting frames from video source for inference
  using multithreading for read and write frames.
class_docstr_tok: ["VideoManager","object","for","getting","frames","from","video","source","for","inference","using","multithreading","for","read","and","write","frames","."]
docstr: Start threads to read and write frames.
docstr_tok: ["Start","threads","to","read","and","write","frames","."]
code: def start(self):
      """
      Start threads to read and write frames.
      """
      self.put_thread = threading.Thread(
          target=self.put_fn,
          args=(),
          name="VidRead-Thread",
          daemon=True,
      )
      self.put_thread.start()
      self.get_thread = threading.Thread(
          target=self.get_fn,
          args=(),
          name="VidDisplay-Thread",
          daemon=True,
      )
      self.get_thread.start()
  
      return self
  
imports: import atexit
  import copy
  import queue
  import threading
  import time
  import cv2
  import slowfast.utils.logging
  from slowfast.visualization.utils import TaskInfo
label_desc: Use image node_id 8 for calling the ThreadVideoManager obj's underlying member method code with example usage: obj.start() and returns: self