Fixes for python3 + cleanups
[python-gstreamer-examples] / example1.py
index c2e6e6e216f21a75d0c74e22844d2cfa2769500a..5916bb4f4a7d3ed028a86744e37e04e4d6c563ac 100755 (executable)
@@ -1,20 +1,21 @@
 #!/usr/bin/env python
 # This is a reworked version of the example from Jono Bacon's Python+Gstreamer
 # primer: http://www.jonobacon.org/2006/08/28/getting-started-with-gstreamer-with-python/
 #!/usr/bin/env python
 # This is a reworked version of the example from Jono Bacon's Python+Gstreamer
 # primer: http://www.jonobacon.org/2006/08/28/getting-started-with-gstreamer-with-python/
-# 
+#
 # It uses Gstreamer 1.0, and replaces alsa with pulse for audio output, and
 # drops the use of the GTK main loop, since we're not bothered with a GUI
 # Info on porting python scripts to Gstreamer 1.0 can be found here:
 # https://wiki.ubuntu.com/Novacut/GStreamer1.0
 
 # It uses Gstreamer 1.0, and replaces alsa with pulse for audio output, and
 # drops the use of the GTK main loop, since we're not bothered with a GUI
 # Info on porting python scripts to Gstreamer 1.0 can be found here:
 # https://wiki.ubuntu.com/Novacut/GStreamer1.0
 
-from gi.repository import Gst
-import gobject
+import gi
+gi.require_version('Gst', '1.0')
+from gi.repository import Gst, GLib
 
 class Main:
   def __init__(self):
     # Initiate the pipeline
     Gst.init(None)
 
 class Main:
   def __init__(self):
     # Initiate the pipeline
     Gst.init(None)
-    self.pipeline = Gst.Pipeline("mypipeline")
+    self.pipeline = Gst.Pipeline()
 
     # Add an audiotestsrc element to the pipeline
     self.audiotestsrc = Gst.ElementFactory.make("audiotestsrc", "audio")
 
     # Add an audiotestsrc element to the pipeline
     self.audiotestsrc = Gst.ElementFactory.make("audiotestsrc", "audio")
@@ -32,5 +33,9 @@ class Main:
 
 # Create the pipelie and enter main loop, quit with ctrl+c
 start = Main()
 
 # Create the pipelie and enter main loop, quit with ctrl+c
 start = Main()
-mainloop = gobject.MainLoop()
-mainloop.run()
+mainloop = GLib.MainLoop()
+
+try:
+    mainloop.run()
+except KeyboardInterrupt:
+    exit(0)