X-Git-Url: https://git.slaskete.net/python-gstreamer-examples/blobdiff_plain/2da3df6c3227bf894baa8410917f6150a280025f..02565d3145b9c03a575b9c3959ebd4ab61287ba4:/example1.py diff --git a/example1.py b/example1.py index d69135a..ad21708 100755 --- a/example1.py +++ b/example1.py @@ -1,23 +1,22 @@ #!/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/ -# +# This is a reworked version gstreamer example 1 from Jono Bacon's Python and +# 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 - -import gi +import gi, time, signal gi.require_version('Gst', '1.0') from gi.repository import Gst -import gobject 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") @@ -33,7 +32,16 @@ class Main: # Set the pipeline to the playing state self.pipeline.set_state(Gst.State.PLAYING) -# Create the pipelie and enter main loop, quit with ctrl+c -start = Main() -mainloop = gobject.MainLoop() -mainloop.run() + # We want a graceful shutdown on CTRL+C + def quit(signal, frame): + print("stopping") + exit(0) + + # Trap SIGINT + signal.signal(signal.SIGINT, quit) + +# Create the pipeline and enter main loop, quit with ctrl+c + +Main() +while True: + time.sleep(0.001)