def check_required_version(modulename): """ Checks if the installed module is the required version or more recent. Returns [None, None] if it's recent enough, else will return a list containing the strings of the required version and the installed version. This function does not check for the existence of the given module ! """ if modulename == "gtk": if list(gtk.pygtk_version) < _string_to_list(PYGTK_REQ): return [PYGTK_REQ, _version_to_string(gtk.pygtk_version)] if modulename == "pygst": if list(gst.get_pygst_version()) < _string_to_list(PYGST_REQ): return [PYGST_REQ, _version_to_string(gst.get_pygst_version())] if modulename == "cairo": import cairo if _string_to_list(cairo.cairo_version_string()) < _string_to_list(PYCAIRO_REQ): return [PYCAIRO_REQ, cairo.cairo_version_string()] if modulename == "gst": if list(gst.get_gst_version()) < _string_to_list(GST_REQ): return [GST_REQ, _version_to_string(gst.get_gst_version())] if modulename == "gnonlin": gnlver = gst.registry_get_default().find_plugin("gnonlin").get_version() if _string_to_list(gnlver) < _string_to_list(GNONLIN_REQ): return [GNONLIN_REQ, gnlver] return [None, None]
def check_required_version(modulename): """ Checks if the installed module is the required version or more recent. Returns [None, None] if it's recent enough, else will return a list containing the strings of the required version and the installed version. This function does not check for the existence of the given module ! """ if modulename == "gtk": if list(gtk.pygtk_version) < _string_to_list(PYGTK_REQ): return [PYGTK_REQ, _version_to_string(gtk.pygtk_version)] if modulename == "pygst": if list(gst.get_pygst_version()) < _string_to_list(PYGST_REQ): return [PYGST_REQ, _version_to_string(gst.get_pygst_version())] if modulename == "cairo": import cairo if _string_to_list( cairo.cairo_version_string()) < _string_to_list(PYCAIRO_REQ): return [PYCAIRO_REQ, cairo.cairo_version_string()] if modulename == "gst": if list(gst.get_gst_version()) < _string_to_list(GST_REQ): return [GST_REQ, _version_to_string(gst.get_gst_version())] if modulename == "gnonlin": gnlver = gst.registry_get_default().find_plugin( "gnonlin").get_version() if _string_to_list(gnlver) < _string_to_list(GNONLIN_REQ): return [GNONLIN_REQ, gnlver] return [None, None]
def gstreamer_info(): other = [] other.append('Python wrapper: gst-python %s' % ( '.'.join(map(str, gst.get_pygst_version())))) found_elements = [] missing_elements = [] for name, status in _gstreamer_check_elements(): if status: found_elements.append(name) else: missing_elements.append(name) other.append('Relevant elements:') other.append(' Found:') for element in found_elements: other.append(' %s' % element) if not found_elements: other.append(' none') other.append(' Not found:') for element in missing_elements: other.append(' %s' % element) if not missing_elements: other.append(' none') return { 'name': 'GStreamer', 'version': '.'.join(map(str, gst.get_gst_version())), 'path': os.path.dirname(gst.__file__), 'other': '\n'.join(other), }
def _newGhostPad(self, pad, track): pad_id = str(pad) if gst.get_pygst_version() < (0, 10, 14, 1): # in <= 0.10.14 there was a bug in basetransform (commit # 83f31c7194b96ec857d6695746dd8b3fcba1846a in gst-python) seek = gst.element_factory_make('identity') seek.props.silent = True else: seek = FixSeekStart(track) self.bin.add(seek) seek.sync_state_with_parent() pad.link(seek.get_pad('sink')) ghost = gst.GhostPad('src%d' % self.pad_num + str(id(pad)), seek.get_pad('src')) # FixSeekStart has template caps ANY. Setting seek.caps here we make it # so that ghost.get_caps() returns pad.get_caps() caps = pad.props.caps if caps is None: caps = pad.get_caps() seek.caps = caps ghost.set_active(True) self.ghosts[pad_id] = ghost self.seek_checkers[pad_id] = seek self.pad_num += 1 return ghost
def _newGhostPad(self, pad, track): pad_id = str(pad) if gst.get_pygst_version() < (0, 10, 14, 1): # in <= 0.10.14 there was a bug in basetransform (commit # 83f31c7194b96ec857d6695746dd8b3fcba1846a in gst-python) seek = gst.element_factory_make('identity') seek.props.silent = True else: seek = FixSeekStart(track) self.bin.add(seek) seek.set_state(gst.STATE_PLAYING) pad.link(seek.get_pad('sink')) ghost = gst.GhostPad('src%d' % self.pad_num + str(id(pad)), seek.get_pad('src')) # if the target pad has negotiated caps, set them on the ghost as well caps = pad.props.caps if caps is None: caps = pad.get_caps() if caps.is_fixed(): seek.get_pad("sink").set_caps(caps) ghost.set_caps(caps) ghost.set_active(True) self.ghosts[pad_id] = ghost self.seek_checkers[pad_id] = seek self.pad_num += 1 return ghost
def _newGhostPad(self, pad, track): pad_id = str(pad) if gst.get_pygst_version() < (0, 10, 14, 1): # in <= 0.10.14 there was a bug in basetransform (commit # 83f31c7194b96ec857d6695746dd8b3fcba1846a in gst-python) seek = gst.element_factory_make('identity') seek.props.silent = True else: seek = FixSeekStart(track) self.bin.add(seek) seek.sync_state_with_parent() pad.link_full(seek.get_pad('sink'), gst.PAD_LINK_CHECK_NOTHING) ghost = gst.GhostPad('src%d' % self.pad_num + str(id(pad)), seek.get_pad('src')) # FixSeekStart has template caps ANY. Setting seek.caps here we make it # so that ghost.get_caps() returns pad.get_caps() caps = pad.props.caps if caps is None: caps = pad.get_caps() seek.caps = caps ghost.set_active(True) self.ghosts[pad_id] = ghost self.seek_checkers[pad_id] = seek self.pad_num += 1 return ghost
def test_gstreamer_info(self): result = deps.gstreamer_info() self.assertEquals('GStreamer', result['name']) self.assertEquals('.'.join(map(str, gst.get_gst_version())), result['version']) self.assertIn('gst', result['path']) self.assertIn('Python wrapper: gst-python', result['other']) self.assertIn('.'.join(map(str, gst.get_pygst_version())), result['other']) self.assertIn('Relevant elements:', result['other'])
def test_gstreamer_info(self): result = deps.gstreamer_info() self.assertEquals("GStreamer", result["name"]) self.assertEquals(".".join(map(str, gst.get_gst_version())), result["version"]) self.assertIn("gst", result["path"]) self.assertIn("Python wrapper: gst-python", result["other"]) self.assertIn(".".join(map(str, gst.get_pygst_version())), result["other"]) self.assertIn("Relevant elements:", result["other"])
def test_gstreamer_info(self): result = deps.gstreamer_info() self.assertEquals('GStreamer', result['name']) self.assertEquals( '.'.join(map(str, gst.get_gst_version())), result['version']) self.assertIn('gst', result['path']) self.assertIn('Python wrapper: gst-python', result['other']) self.assertIn( '.'.join(map(str, gst.get_pygst_version())), result['other']) self.assertIn('Relevant elements:', result['other'])
def gstreamer_info(): other = [] other.append('Python wrapper: gst-python %s' % ('.'.join(map(str, gst.get_pygst_version())))) other.append('Relevant elements:') for name, status in _gstreamer_check_elements(): other.append(' %s: %s' % (name, 'OK' if status else 'not found')) return { 'name': 'GStreamer', 'version': '.'.join(map(str, gst.get_gst_version())), 'path': gst.__file__, 'other': '\n'.join(other), }
def gstreamer_info(): other = [] other.append('Python wrapper: gst-python %s' % ( '.'.join(map(str, gst.get_pygst_version())))) other.append('Relevant elements:') for name, status in _gstreamer_check_elements(): other.append(' %s: %s' % (name, 'OK' if status else 'not found')) return { 'name': 'GStreamer', 'version': '.'.join(map(str, gst.get_gst_version())), 'path': gst.__file__, 'other': '\n'.join(other), }
def _init_gst_version(gst_majorminor): def tup2version(tup): return '.'.join(map(str, tup)) if gst_majorminor not in GST_REQ: raise SystemExit('ERROR: Invalid FLU_GST_VERSION: %r (expected ' 'one of %r)' % (gst_majorminor, GST_REQ.keys())) pygst_req = GST_REQ[gst_majorminor]['gst-python'] gst_req = GST_REQ[gst_majorminor]['gstreamer'] try: import pygst pygst.require(gst_majorminor) import gst except ImportError: return False except AssertionError: return False try: gst_version = gst.get_gst_version() pygst_version = gst.get_pygst_version() except AttributeError: # get_foo_version() added in 0.10.4, fall back gst_version = gst.gst_version pygst_version = gst.pygst_version if gst_req[:2] != gst_version[:2]: raise SystemExit( 'ERROR: Expected GStreamer %s, but got incompatible %s' % (gst_majorminor, tup2version(gst_version[:2]))) if gst_version < gst_req: raise SystemExit( 'ERROR: GStreamer %s too old; install %s or newer' % (tup2version(gst_version), tup2version(gst_req))) if pygst_version < pygst_req: raise SystemExit( 'ERROR: gst-python %s too old; install %s or newer' % (tup2version(pygst_version), tup2version(pygst_req))) return True
def _init_gst_version(gst_majorminor): def tup2version(tup): return '.'.join(map(str, tup)) if gst_majorminor not in GST_REQ: raise SystemExit('ERROR: Invalid FLU_GST_VERSION: %r (expected ' 'one of %r)' % (gst_majorminor, GST_REQ.keys())) pygst_req = GST_REQ[gst_majorminor]['gst-python'] gst_req = GST_REQ[gst_majorminor]['gstreamer'] try: import pygst pygst.require(gst_majorminor) import gst except ImportError: return False except AssertionError: return False try: gst_version = gst.get_gst_version() pygst_version = gst.get_pygst_version() except AttributeError: # get_foo_version() added in 0.10.4, fall back gst_version = gst.gst_version pygst_version = gst.pygst_version if gst_req[:2] != gst_version[:2]: raise SystemExit( 'ERROR: Expected GStreamer %s, but got incompatible %s' % (gst_majorminor, tup2version(gst_version[:2]))) if gst_version < gst_req: raise SystemExit('ERROR: GStreamer %s too old; install %s or newer' % (tup2version(gst_version), tup2version(gst_req))) if pygst_version < pygst_req: raise SystemExit('ERROR: gst-python %s too old; install %s or newer' % (tup2version(pygst_version), tup2version(pygst_req))) return True