class_docstr:     This is an auxiliary class that enables Live Video Streaming for caer with minimalistic latency, and at the expense
      of little to no additional computational requirements.
      
      The basic idea behind it is to tracks and save the salient feature array for the given number of frames and then uses these anchor point to cancel out all perturbations relative to it for the incoming frames in the queue. This class relies heavily on **Threaded Queue mode** for error-free & ultra-fast frame handling.
  
  Args:
      source (int): Source path for the video. If ``source=0``, the default camera device is used. For 
          multiple external camera devices, use incremented values. For eg: ``source=1`` represents the second camera device on your system.
docstr: Source must either be an integer (0, 1, 2 etc) or a path to a video file
code: def __init__(self, source=0):
      r"""
      Source must either be an integer (0, 1, 2 etc) or a path to a video file
      """
      if isinstance(source, str):
          raise ValueError(
              "Expected an integer. Got a filepath. LiveVideoStream is for live streams only"
          )
  
      # Initializing the video stream
      self.stream = cv.VideoCapture(source)
      self.ret, self.frame = self.stream.read()
  
      self.width = int(self.stream.get(cv.CAP_PROP_FRAME_WIDTH))
      self.height = int(self.stream.get(cv.CAP_PROP_FRAME_HEIGHT))
      self.res = (self.width, self.height)
  
      self.fps = math.ceil(self.stream.get(FPS))
  
      # Initializing the thread name
      self.thread_name = "DefaultVideoStream"
  
      # Boolean to check whether stream should be killed
      self.kill_stream = False
  
file_path: caer/caer/video/livestream.py
imports: from threading import Thread
  import math
  import cv2
  from .constants import FPS
label_desc: Use image node_id 1 to create a new LiveStream object  with example: obj = LiveStream(source)