def uri_schemes__get(self): dici = {} reg = gst.registry_get_default() plugins = reg.get_plugin_list() for plugin in plugins: features = reg.get_feature_list_by_plugin(plugin.get_name()) for feature in features: if isinstance(feature, gst.ElementFactory): try: if feature.get_uri_type(): import pdb; pdb.set_trace() protocols = feature.get_uri_protocols() for protocol in protocols: ## We want only be fallback, if there is another ## player for the uri dici[str(protocol)] = 150 except AttributeError, e: #FIXME: this is a work-a-round for pygst-bug #385841, # remove it as fast as possible continue return dici gives this: > /opt/elisa-player-ng/elisa/plugins/base/players/playbin_player.py(108)uri_schemes__get() -> protocols = feature.get_uri_protocols() (Pdb) dir(feature) ['__class__', '__cmp__', '__delattr__', '__dict__', '__doc__', '__gdoc__', '__getattribute__', '__gobject_init__', '__grefcount__', '__gstrefcount__', '__gtype__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'can_sink_caps', 'can_src_caps', 'chain', 'check_version', 'connect', 'connect_after', 'connect_object', 'connect_object_after', 'create', 'debug', 'default_error', 'disconnect', 'disconnect_by_func', 'emit', 'emit_stop_by_name', 'error', 'freeze_notify', 'get_author', 'get_data', 'get_description', 'get_element_type', 'get_klass', 'get_longname', 'get_name', 'get_name_prefix', 'get_num_pad_templates', 'get_parent', 'get_path_string', 'get_property', 'get_rank', 'get_static_pad_templates', 'get_uri_type', 'handler_block', 'handler_block_by_func', 'handler_disconnect', 'handler_is_connected', 'handler_unblock', 'handler_unblock_by_func', 'has_ancestor', 'info', 'load', 'log', 'notify', 'props', 'set_data', 'set_flag', 'set_name', 'set_name_prefix', 'set_parent', 'set_property', 'set_rank', 'stop_emission', 'thaw_notify', 'unparent', 'unset_flag', 'warning'] (Pdb)