summaryrefslogtreecommitdiff
path: root/tests/examples/rtp/server-alsasrc-PCMA.py
diff options
context:
space:
mode:
authorHenning Heinold <henning@itconsulting-heinold.de>2014-11-10 22:34:39 +0100
committerTim-Philipp Müller <tim@centricular.com>2014-11-17 00:23:13 +0000
commit8aa263006865584b5dcc05378d18ff052e6f188e (patch)
treec2261829f0e36d51e4f741c360b509bd91af3d0b /tests/examples/rtp/server-alsasrc-PCMA.py
parent0b36fe59e1725ffa2905b3aac5f424b1299791c6 (diff)
examples: port python rtp PCMA client/server tests to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=739930
Diffstat (limited to 'tests/examples/rtp/server-alsasrc-PCMA.py')
-rwxr-xr-xtests/examples/rtp/server-alsasrc-PCMA.py80
1 files changed, 44 insertions, 36 deletions
diff --git a/tests/examples/rtp/server-alsasrc-PCMA.py b/tests/examples/rtp/server-alsasrc-PCMA.py
index 2caf0b985..37276a4a9 100755
--- a/tests/examples/rtp/server-alsasrc-PCMA.py
+++ b/tests/examples/rtp/server-alsasrc-PCMA.py
@@ -1,13 +1,15 @@
-#! /usr/bin/env python
+#! /usr/bin/env python
+
+import gi
+import sys
+gi.require_version('Gst', '1.0')
+from gi.repository import GObject, Gst
-import gobject, pygst
-pygst.require("0.10")
-import gst
#gst-launch -v rtpbin name=rtpbin audiotestsrc ! audioconvert ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_0 \
# rtpbin.send_rtp_src_0 ! udpsink port=10000 host=xxx.xxx.xxx.xxx \
# rtpbin.send_rtcp_src_0 ! udpsink port=10001 host=xxx.xxx.xxx.xxx sync=false async=false \
-# udpsrc port=10002 ! rtpbin.recv_rtcp_sink_0
+# udpsrc port=10002 ! rtpbin.recv_rtcp_sink_0
DEST_HOST = '127.0.0.1'
@@ -17,74 +19,80 @@ AUDIO_PAY = 'rtppcmapay'
RTP_SEND_PORT = 5002
RTCP_SEND_PORT = 5003
-RTCP_RECV_PORT = 5007
+RTCP_RECV_PORT = 5007
+
+GObject.threads_init()
+Gst.init(sys.argv)
# the pipeline to hold everything
-pipeline = gst.Pipeline('rtp_server')
+pipeline = Gst.Pipeline('rtp_server')
# the pipeline to hold everything
-audiosrc = gst.element_factory_make(AUDIO_SRC, 'audiosrc')
-audioconv = gst.element_factory_make('audioconvert', 'audioconv')
-audiores = gst.element_factory_make('audioresample', 'audiores')
+audiosrc = Gst.ElementFactory.make(AUDIO_SRC, 'audiosrc')
+audioconv = Gst.ElementFactory.make('audioconvert', 'audioconv')
+audiores = Gst.ElementFactory.make('audioresample', 'audiores')
# the pipeline to hold everything
-audioenc = gst.element_factory_make(AUDIO_ENC, 'audioenc')
-audiopay = gst.element_factory_make(AUDIO_PAY, 'audiopay')
+audioenc = Gst.ElementFactory.make(AUDIO_ENC, 'audioenc')
+audiopay = Gst.ElementFactory.make(AUDIO_PAY, 'audiopay')
# add capture and payloading to the pipeline and link
pipeline.add(audiosrc, audioconv, audiores, audioenc, audiopay)
-res = gst.element_link_many(audiosrc, audioconv, audiores, audioenc, audiopay)
+audiosrc.link(audioconv)
+audioconv.link(audiores)
+audiores.link(audioenc)
+audioenc.link(audiopay)
# the rtpbin element
-rtpbin = gst.element_factory_make('rtpbin', 'rtpbin')
+rtpbin = Gst.ElementFactory.make('rtpbin', 'rtpbin')
-pipeline.add(rtpbin)
+pipeline.add(rtpbin)
# the udp sinks and source we will use for RTP and RTCP
-rtpsink = gst.element_factory_make('udpsink', 'rtpsink')
+rtpsink = Gst.ElementFactory.make('udpsink', 'rtpsink')
rtpsink.set_property('port', RTP_SEND_PORT)
rtpsink.set_property('host', DEST_HOST)
-rtcpsink = gst.element_factory_make('udpsink', 'rtcpsink')
+rtcpsink = Gst.ElementFactory.make('udpsink', 'rtcpsink')
rtcpsink.set_property('port', RTCP_SEND_PORT)
rtcpsink.set_property('host', DEST_HOST)
# no need for synchronisation or preroll on the RTCP sink
rtcpsink.set_property('async', False)
-rtcpsink.set_property('sync', False)
+rtcpsink.set_property('sync', False)
-rtcpsrc = gst.element_factory_make('udpsrc', 'rtcpsrc')
+rtcpsrc = Gst.ElementFactory.make('udpsrc', 'rtcpsrc')
rtcpsrc.set_property('port', RTCP_RECV_PORT)
-pipeline.add(rtpsink, rtcpsink, rtcpsrc)
+pipeline.add(rtpsink, rtcpsink, rtcpsrc)
# now link all to the rtpbin, start by getting an RTP sinkpad for session 0
-sinkpad = gst.Element.get_request_pad(rtpbin, 'send_rtp_sink_0')
-srcpad = gst.Element.get_static_pad(audiopay, 'src')
-lres = gst.Pad.link(srcpad, sinkpad)
+sinkpad = Gst.Element.get_request_pad(rtpbin, 'send_rtp_sink_0')
+srcpad = Gst.Element.get_static_pad(audiopay, 'src')
+lres = Gst.Pad.link(srcpad, sinkpad)
# get the RTP srcpad that was created when we requested the sinkpad above and
# link it to the rtpsink sinkpad
-srcpad = gst.Element.get_static_pad(rtpbin, 'send_rtp_src_0')
-sinkpad = gst.Element.get_static_pad(rtpsink, 'sink')
-lres = gst.Pad.link(srcpad, sinkpad)
+srcpad = Gst.Element.get_static_pad(rtpbin, 'send_rtp_src_0')
+sinkpad = Gst.Element.get_static_pad(rtpsink, 'sink')
+lres = Gst.Pad.link(srcpad, sinkpad)
# get an RTCP srcpad for sending RTCP to the receiver
-srcpad = gst.Element.get_request_pad(rtpbin, 'send_rtcp_src_0')
-sinkpad = gst.Element.get_static_pad(rtcpsink, 'sink')
-lres = gst.Pad.link(srcpad, sinkpad)
+srcpad = Gst.Element.get_request_pad(rtpbin, 'send_rtcp_src_0')
+sinkpad = Gst.Element.get_static_pad(rtcpsink, 'sink')
+lres = Gst.Pad.link(srcpad, sinkpad)
# we also want to receive RTCP, request an RTCP sinkpad for session 0 and
# link it to the srcpad of the udpsrc for RTCP
-srcpad = gst.Element.get_static_pad(rtcpsrc, 'src')
-sinkpad = gst.Element.get_request_pad(rtpbin, 'recv_rtcp_sink_0')
-lres = gst.Pad.link(srcpad, sinkpad)
+srcpad = Gst.Element.get_static_pad(rtcpsrc, 'src')
+sinkpad = Gst.Element.get_request_pad(rtpbin, 'recv_rtcp_sink_0')
+lres = Gst.Pad.link(srcpad, sinkpad)
# set the pipeline to playing
-gst.Element.set_state(pipeline, gst.STATE_PLAYING)
+Gst.Element.set_state(pipeline, Gst.State.PLAYING)
# we need to run a GLib main loop to get the messages
-mainloop = gobject.MainLoop()
-mainloop.run()
+mainloop = GObject.MainLoop()
+mainloop.run()
-gst.Element.set_state(pipeline, gst.STATE_NULL)
+Gst.Element.set_state(pipeline, Gst.State.NULL)