def __init__(self, *args): WindowSource.__init__(self, *args) #client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) if not self.encoding_client_options: #old clients can only use 420P: def_csc_modes = ("YUV420P") else: #default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") #0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) for x in ("vpx", "x264"): if x in self.SERVER_CORE_ENCODINGS: self._encoders[x] = self.video_encode self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = None self._csc_encoder = None self._video_encoder = None self._lock = Lock( ) #to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] self._video_pipeline_helper.may_init()
def __init__(self, *args): WindowSource.__init__(self, *args) # client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) if not self.encoding_client_options: # old clients can only use 420P: def_csc_modes = "YUV420P" else: # default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") # 0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) for x in ("vpx", "x264"): if x in self.SERVER_CORE_ENCODINGS: self._encoders[x] = self.video_encode self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = None self._csc_encoder = None self._video_encoder = None self._lock = Lock() # to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] self._video_pipeline_helper.may_init()
def __init__(self, *args): WindowSource.__init__(self, *args) #client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) self.video_reinit = self.encoding_options.get("video_reinit", False) if not self.encoding_client_options: #old clients can only use 420P: def_csc_modes = ("YUV420P") else: #default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") #0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) self.video_encodings = ("vp8", "vp9", "h264") for x in self.video_encodings: if x in self.server_core_encodings: self._encoders[x] = self.video_encode #these constraints get updated with real values #when we construct the video pipeline: self.min_w = 1 self.min_h = 1 self.max_w = 16384 self.max_h = 16384 self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = (1, 1) self._csc_encoder = None self._video_encoder = None self._lock = Lock( ) #to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] self.video_helper = getVideoHelper() if self.encoding_options.get("proxy.video", False): #if we "proxy video", we will modify the video helper to add #new encoders, so we must make a deep copy to preserve the original: self.video_helper = getVideoHelper().clone(deep=True) #enabling video proxy: try: self.parse_proxy_video() except: log.error("failed to parse proxy video", exc_info=True)
def __init__(self, *args): WindowSource.__init__(self, *args) #client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) self.video_reinit = self.encoding_options.get("video_reinit", False) if not self.encoding_client_options: #old clients can only use 420P: def_csc_modes = ("YUV420P") else: #default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") #0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) self.video_encodings = ("vp8", "vp9", "h264") for x in self.video_encodings: if x in self.server_core_encodings: self._encoders[x] = self.video_encode #these constraints get updated with real values #when we construct the video pipeline: self.min_w = 1 self.min_h = 1 self.max_w = 16384 self.max_h = 16384 self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = (1, 1) self._csc_encoder = None self._video_encoder = None self._lock = Lock() #to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] self.video_helper = getVideoHelper() if self.encoding_options.get("proxy.video", False): #if we "proxy video", we will modify the video helper to add #new encoders, so we must make a deep copy to preserve the original: self.video_helper = getVideoHelper().clone(deep=True) #enabling video proxy: try: self.parse_proxy_video() except: log.error("failed to parse proxy video", exc_info=True)
def __init__(self, *args): WindowSource.__init__(self, *args) #client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) self.video_reinit = self.encoding_options.get("video_reinit", False) if not self.encoding_client_options: #old clients can only use 420P: def_csc_modes = ("YUV420P", ) else: #default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") #0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) self.video_encodings = ("vp8", "vp9", "h264") for x in self.video_encodings: if x in self.server_core_encodings: self._encoders[x] = self.video_encode #these constraints get updated with real values #when we construct the video pipeline: self.min_w = 1 self.min_h = 1 self.max_w = 16384 self.max_h = 16384 self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = (1, 1) self._csc_encoder = None self._video_encoder = None self._lock = Lock( ) #to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] WindowVideoSource._video_helper.may_init()
def __init__(self, *args): WindowSource.__init__(self, *args) #client uses uses_swscale (has extra limits on sizes) self.uses_swscale = self.encoding_options.get("uses_swscale", True) self.uses_csc_atoms = self.encoding_options.get("csc_atoms", False) self.video_scaling = self.encoding_options.get("video_scaling", False) self.video_reinit = self.encoding_options.get("video_reinit", False) if not self.encoding_client_options: #old clients can only use 420P: def_csc_modes = ("YUV420P", ) else: #default for newer clients that don't specify "csc_modes": def_csc_modes = ("YUV420P", "YUV422P", "YUV444P") #0.10 onwards should have specified csc_modes: self.csc_modes = self.encoding_options.get("csc_modes", def_csc_modes) self.video_encodings = ("vp8", "vp9", "h264") for x in self.video_encodings: if x in self.server_core_encodings: self._encoders[x] = self.video_encode #these constraints get updated with real values #when we construct the video pipeline: self.min_w = 1 self.min_h = 1 self.max_w = 16384 self.max_h = 16384 self.width_mask = 0xFFFF self.height_mask = 0xFFFF self.actual_scaling = (1, 1) self._csc_encoder = None self._video_encoder = None self._lock = Lock() #to ensure we serialize access to the encoder and its internals self.last_pipeline_params = None self.last_pipeline_scores = [] WindowVideoSource._video_helper.may_init()