Philipp Hörist pushed to branch master at gajim / gajim
Commits: 21a9088e by lovetox at 2020-03-19T20:25:42+01:00 Fix pylint error
- - - - - ad3e2103 by lovetox at 2020-03-19T20:25:55+01:00 Refactor A/V dependency imports
- - - - -
9 changed files:
- gajim/common/app.py - gajim/common/helpers.py - gajim/common/jingle_rtp.py - gajim/common/modules/jingle.py - gajim/common/multimedia_helpers.py - gajim/dev/ipython_view.py - gajim/gtk/features.py - gajim/gtk/gstreamer.py - gajim/gtk/preferences.py
Changes:
===================================== gajim/common/app.py ===================================== @@ -198,6 +198,8 @@ _dependencies = { 'AVAHI': False, 'PYBONJOUR': False, 'FARSTREAM': False, + 'GST': False, + 'AV': False, 'GEOCLUE': False, 'UPNP': False, 'PYCURL': False, @@ -248,28 +250,28 @@ def detect_dependencies(): except Exception: pass
- # FARSTREAM try: - if os.name == 'nt': - root_path = Path(sys.executable).parents[1] - fs_plugin_path = str(root_path / 'lib' / 'farstream-0.2') - gst_plugin_path = str(root_path / 'lib' / 'gstreamer-1.0') - os.environ['FS_PLUGIN_PATH'] = fs_plugin_path - os.environ['GST_PLUGIN_PATH'] = gst_plugin_path - gi.require_version('Farstream', '0.2') - from gi.repository import Farstream gi.require_version('Gst', '1.0') from gi.repository import Gst - try: - Gst.init(None) - conference = Gst.ElementFactory.make('fsrtpconference', None) - conference.new_session(Farstream.MediaType.AUDIO) - except Exception as error: - log('gajim').info(error) + _dependencies['GST'] = True + except Exception: + pass + + try: + gi.require_version('Farstream', '0.2') + from gi.repository import Farstream _dependencies['FARSTREAM'] = True - except (ImportError, ValueError): + except Exception: pass
+ try: + Gst.init(None) + conference = Gst.ElementFactory.make('fsrtpconference', None) + conference.new_session(Farstream.MediaType.AUDIO) + _dependencies['AV'] = True + except Exception as error: + log('gajim').info(error) + # GEOCLUE try: gi.require_version('Geoclue', '2.0')
===================================== gajim/common/helpers.py ===================================== @@ -1048,7 +1048,7 @@ def update_optional_features(account=None): features.append(nbxmpp.NS_BOOKMARKS_2 + '+notify') elif app.connections[account_].get_module('Bookmarks').using_bookmark_1: features.append(nbxmpp.NS_BOOKMARKS + '+notify') - if app.is_installed('FARSTREAM'): + if app.is_installed('AV'): features.append(nbxmpp.NS_JINGLE_RTP) features.append(nbxmpp.NS_JINGLE_RTP_AUDIO) features.append(nbxmpp.NS_JINGLE_RTP_VIDEO)
===================================== gajim/common/jingle_rtp.py ===================================== @@ -21,10 +21,15 @@ import socket from collections import deque
import nbxmpp -from gi.repository import Farstream -from gi.repository import Gst + from gi.repository import GLib
+try: + from gi.repository import Farstream + from gi.repository import Gst +except Exception: + pass + from gajim.common import app from gajim.common.i18n import _ from gajim.common.jingle_transport import JingleTransportICEUDP
===================================== gajim/common/modules/jingle.py ===================================== @@ -43,8 +43,7 @@ from gajim.common.jingle_session import JingleStates from gajim.common.jingle_ft import JingleFileTransfer from gajim.common.jingle_transport import JingleTransportSocks5 from gajim.common.jingle_transport import JingleTransportIBB -if app.is_installed('FARSTREAM'): - from gajim.common.jingle_rtp import JingleAudio, JingleVideo +from gajim.common.jingle_rtp import JingleAudio, JingleVideo
logger = logging.getLogger('gajim.c.m.jingle')
===================================== gajim/common/multimedia_helpers.py ===================================== @@ -16,11 +16,12 @@
import logging
-import gi -gi.require_version('Gst', '1.0') -from gi.repository import Gst # pylint: disable=wrong-import-position +try: + from gi.repository import Gst +except Exception: + pass
-from gajim.common.i18n import _ # pylint: disable=wrong-import-position +from gajim.common.i18n import _
log = logging.getLogger('gajim.c.multimedia_helpers')
===================================== gajim/dev/ipython_view.py ===================================== @@ -69,13 +69,12 @@ from gi.repository import GObject from gi.repository import GLib from gi.repository import Pango
-import IPython - from pygments.token import Token -# pylint: disable=ungrouped-imports + +import IPython from IPython.core.displayhook import DisplayHook from IPython.core.display_trap import DisplayTrap -# pylint: enable=ungrouped-imports +
class MyPromptDisplayHook(DisplayHook):
===================================== gajim/gtk/features.py ===================================== @@ -91,7 +91,7 @@ class FeaturesDialog(Gtk.Dialog):
return [ Feature(_('Audio / Video'), - app.is_installed('FARSTREAM'), + app.is_installed('AV'), _('Enables Gajim to provide Audio and Video chats'), _('Requires: gir1.2-farstream-0.2, gir1.2-gstreamer-1.0, ' 'gstreamer1.0-libav, gstreamer1.0-plugins-ugly'),
===================================== gajim/gtk/gstreamer.py ===================================== @@ -1,9 +1,17 @@ from typing import Tuple, Optional
-from gi.repository import Gst from gi.repository import Gtk
-def create_gtk_widget() -> Tuple[Optional[Gst.Element], Optional[Gtk.Widget], Optional[str]]: +try: + from gi.repository import Gst +except Exception: + pass + + +def create_gtk_widget() -> Tuple[Optional[Gst.Element], + Optional[Gtk.Widget], + Optional[str]]: + gtkglsink = Gst.ElementFactory.make('gtkglsink', None) if gtkglsink is not None: glsinkbin = Gst.ElementFactory.make('glsinkbin', None)
===================================== gajim/gtk/preferences.py ===================================== @@ -19,6 +19,11 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Pango
+try: + from gi.repository import Gst +except Exception: + pass + from gajim.common import app from gajim.common import configpaths from gajim.common import helpers @@ -28,6 +33,9 @@ from gajim.common.nec import NetworkEvent from gajim.common.i18n import _ from gajim.common.i18n import ngettext from gajim.common.helpers import open_file +from gajim.common.multimedia_helpers import AudioInputManager +from gajim.common.multimedia_helpers import AudioOutputManager +from gajim.common.multimedia_helpers import VideoInputManager
from gajim.chat_control_base import ChatControlBase
@@ -40,14 +48,6 @@ from gajim.gtk.sounds import ManageSounds from gajim.gtk.const import ControlType from gajim.gtk import gstreamer
-try: - from gajim.common.multimedia_helpers import AudioInputManager, AudioOutputManager - from gajim.common.multimedia_helpers import VideoInputManager - from gi.repository import Gst # pylint: disable=ungrouped-imports - HAS_GST = True -except (ImportError, ValueError): - HAS_GST = False - if app.is_installed('GSPELL'): from gi.repository import Gspell # pylint: disable=ungrouped-imports
@@ -358,7 +358,7 @@ class Preferences(Gtk.ApplicationWindow): if config == value: combobox.set_active(index)
- if HAS_GST and app.is_installed('FARSTREAM'): + if app.is_installed('AV'): create_av_combobox('audio_input', AudioInputManager().get_devices()) create_av_combobox('audio_output', AudioOutputManager().get_devices()) create_av_combobox('video_input', VideoInputManager().get_devices())
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/ff739a0ca05f76db620ee452c01957aa...