Avoid warning about gi.require_version not being called
authorThibault Saunier <tsaunier@gnome.org>
Mon, 8 Feb 2016 10:30:08 +0000 (11:30 +0100)
committerThibault Saunier <tsaunier@gnome.org>
Mon, 8 Feb 2016 10:30:08 +0000 (11:30 +0100)
gi/overrides/GstPbutils.py
plugin/gstpythonplugin.c

index db16baf..f5b107c 100644 (file)
 from ..overrides import override as override_
 from ..importer import modules
 
-from gi.repository import Gst
+import gi
+gi.require_version('Gst', '1.0')
+
+from gi.repository import Gst  # noqa
 
 GstPbutils = modules['GstPbutils']._introspection_module
 __all__ = []
 
+
 def override(cls):
     name = cls.__name__
     globals()[name] = override_(cls)
@@ -39,6 +43,7 @@ def override(cls):
 
     return cls
 
+
 @override
 class EncodingVideoProfile(GstPbutils.EncodingVideoProfile):
     def __init__(self, format, preset=None, restriction=None, presence=0):
@@ -51,6 +56,7 @@ class EncodingVideoProfile(GstPbutils.EncodingVideoProfile):
         self.set_restriction(restriction)
         self.set_presence(presence)
 
+
 @override
 class EncodingAudioProfile(GstPbutils.EncodingAudioProfile):
     def __init__(self, format, preset=None, restriction=None, presence=0):
@@ -63,6 +69,7 @@ class EncodingAudioProfile(GstPbutils.EncodingAudioProfile):
         self.set_restriction(restriction)
         self.set_presence(presence)
 
+
 @override
 class EncodingContainerProfile(GstPbutils.EncodingContainerProfile):
     def __init__(self, name, description, format, preset=None):
index eb40388..f3b713d 100644 (file)
@@ -211,7 +211,7 @@ static gboolean
 plugin_init (GstPlugin * plugin)
 {
   PyGILState_STATE state;
-  PyObject *gst, *dict, *pyplugin;
+  PyObject *gi, *require_version, *args, *gst, *dict, *pyplugin;
   gboolean we_initialized = FALSE;
   GModule *libpython;
   gpointer has_python = NULL;
@@ -260,6 +260,21 @@ plugin_init (GstPlugin * plugin)
     return FALSE;
   }
 
+  gi = PyImport_ImportModule ("gi");
+  if (!gi) {
+    g_critical ("can't find gi");
+    return FALSE;
+  }
+
+
+  require_version = PyObject_GetAttrString (gi, (char *) "require_version");
+  args = PyTuple_Pack (2, PyUnicode_FromString ("Gst"),
+      PyUnicode_FromString ("1.0"));
+  PyObject_CallObject (require_version, args);
+  Py_DECREF (require_version);
+  Py_DECREF (args);
+  Py_DECREF (gi);
+
   gst = PyImport_ImportModule ("gi.repository.Gst");
   if (!gst) {
     g_critical ("can't find gi.repository.Gst");