code: def setDevice(self, device): 
          
          print(self.pre, "setDevice :", device)
          
          if (not device and not self.device): # None can be passed as an argument when the device has not been set yet
              return
              
          if (self.device):
              if self.device == device:
                  print(self.pre, "setDevice : same device")
                  return
              
          if self.filterchain: # there's video already
              self.clearDevice()
          
          self.device = device
          self.video.setDevice(self.device) # inform the video widget so it can start drags
          
          # ManagedFilterChain.addViewPort accepts ViewPort instance
          self.filterchain = self.filterchain_group.get(_id = self.device._id)
          
          if self.filterchain:
              self.viewport.setXScreenNum(self.n_xscreen)
              self.viewport.setWindowId  (int(self.video.winId()))
              self.filterchain.addViewPort(self.viewport)
docs: Sets the video stream
          
          :param device:      A rather generic device class.  In this case DataModel.RTSPCameraDevice.