X-Git-Url: https://git.slaskete.net/python-gstreamer-examples/blobdiff_plain/e54cedc5dd480d947f7051b50184f4bb355a841b..HEAD:/example1.py?ds=sidebyside diff --git a/example1.py b/example1.py index c3975f2..1d7cfa3 100755 --- a/example1.py +++ b/example1.py @@ -1,13 +1,14 @@ #!/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, time +import gi, time, signal gi.require_version('Gst', '1.0') from gi.repository import Gst @@ -31,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() + # We want a graceful shutdown on CTRL+C + def quit(self, *args): + 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)