init GStreamer on demand only
authorBoris Bobrov <breton@cynicmansion.ru>
Wed, 25 Feb 2015 06:20:02 +0000 (09:20 +0300)
committerBoris Bobrov <breton@cynicmansion.ru>
Wed, 25 Feb 2015 06:20:02 +0000 (09:20 +0300)
Closes-Bug: 5024

mediagoblin/media_types/tools.py

index c3b3a3f050205c0c97d460af1700bcafe491b8f5..3bc56e2c9ede9487ce26ca277242032d04ae6c63 100644 (file)
@@ -17,11 +17,6 @@ import logging
 
 from mediagoblin import mg_globals
 
-import gi
-gi.require_version('Gst', '1.0')
-from gi.repository import GObject, Gst, GstPbutils, GLib
-Gst.init(None)
-
 _log = logging.getLogger(__name__)
 
 
@@ -36,6 +31,13 @@ def discover(src):
     '''
     Discover properties about a media file
     '''
+    # GStreamer might be not installed, so it should not be initialized on
+    # import, or an exception will be raised.
+    import gi
+    gi.require_version('Gst', '1.0')
+    from gi.repository import GObject, Gst, GstPbutils, GLib
+    Gst.init(None)
+
     _log.info('Discovering {0}...'.format(src))
     uri = 'file://{0}'.format(src)
     discoverer = GstPbutils.Discoverer.new(60 * Gst.SECOND)