python: Add a Gst.init_python function to be called from plugins
authorThibault Saunier <tsaunier@igalia.com>
Tue, 28 Jun 2022 20:35:58 +0000 (16:35 -0400)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 8 Jul 2022 14:37:14 +0000 (14:37 +0000)
Plugins know that they will be initialized after Gst was initialized
so they can call the initialization function dedicated for the python
bindings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675>

subprojects/gst-python/examples/plugins/python/audioplot.py
subprojects/gst-python/examples/plugins/python/exampleTransform.py
subprojects/gst-python/examples/plugins/python/identity.py
subprojects/gst-python/examples/plugins/python/mixer.py
subprojects/gst-python/examples/plugins/python/py_audiotestsrc.py
subprojects/gst-python/examples/plugins/python/sinkelement.py
subprojects/gst-python/gi/overrides/Gst.py

index cf1032f..8747fee 100644 (file)
@@ -29,7 +29,7 @@ except ImportError:
     raise
 
 
-Gst.init(None)
+Gst.init_python()
 
 AUDIO_FORMATS = [f.strip() for f in
                  GstAudio.AUDIO_FORMATS_ALL.strip('{ }').split(',')]
index ed73904..d244acb 100755 (executable)
@@ -15,7 +15,7 @@ from gi.repository import Gst, GObject, GstBase, GstVideo
 
 import numpy as np
 
-Gst.init(None)
+Gst.init_python()
 FIXED_CAPS = Gst.Caps.from_string('video/x-raw,format=GRAY8,width=[1,2147483647],height=[1,2147483647]')
 
 class ExampleTransform(GstBase.BaseTransform):
index 0f42efc..23baf21 100644 (file)
@@ -16,7 +16,7 @@ import gi
 gi.require_version('GstBase', '1.0')
 
 from gi.repository import Gst, GObject, GstBase
-Gst.init(None)
+Gst.init_python()
 
 #
 # Simple Identity element created entirely in python
index 5d9aafe..846508a 100644 (file)
@@ -20,7 +20,7 @@ gi.require_version('GObject', '2.0')
 
 from gi.repository import Gst, GObject, GstBase
 
-Gst.init(None)
+Gst.init_python()
 
 try:
     from PIL import Image
index 5e5ef3b..3684d67 100644 (file)
@@ -22,6 +22,8 @@ except ImportError:
     Gst.error('py_audiotestsrc requires numpy')
     raise
 
+Gst.init_python()
+
 OCAPS = Gst.Caps.from_string (
         'audio/x-raw, format=F32LE, layout=interleaved, rate=44100, channels=2')
 
index 94281e4..249e9c0 100644 (file)
@@ -21,7 +21,7 @@
 #  $ gst-launch-1.0 videotestsrc ! pymysink://
 
 from gi.repository import Gst, GObject, GstBase
-Gst.init(None)
+Gst.init_python()
 
 #
 # Simple Sink element created entirely in python
index cef36d6..902f531 100644 (file)
@@ -755,7 +755,14 @@ def deinit():
     deinit_pygst()
     return real_deinit()
 
+def init_python():
+    if not Gst.is_initialized():
+        raise NotInitialized("Gst.init_python should never be called before GStreamer itself is initialized")
+
+    init_pygst()
+
 Gst.deinit = deinit
+Gst.init_python = init_python
 
 if not Gst.is_initialized():
     deinit_pygst()