[Telepathy-commits] [multi-jingle/master] Also save the sinkpad so we can unlink it
Sjoerd Simons
sjoerd.simons at collabora.co.uk
Sat Jan 17 15:00:11 PST 2009
---
fs2.py | 14 ++++++++------
multi-jingle-client.py | 5 +++--
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/fs2.py b/fs2.py
index 551679e..04830e8 100644
--- a/fs2.py
+++ b/fs2.py
@@ -159,10 +159,11 @@ class ConferenceStream:
elif self.session.type == farsight.MEDIA_TYPE_AUDIO:
sink = gst.element_factory_make("autoaudiosink")
- self.add_sink(sink)
- self.conference.pipeline.add(sink)
+ sinkpad = sink.get_pad ("sink")
+ self.add_sink(sinkpad, sink)
+ self.conference.pipeline.add( sink)
sink.set_state(gst.STATE_PLAYING)
- pad.link(sink.get_pad("sink"))
+ pad.link(sinkpad)
def src_pad_added(self, stream, pad, codec):
self.src_pad_hook (self, stream, pad, codec)
@@ -170,11 +171,12 @@ class ConferenceStream:
def set_direction(self, direction):
self._fsstream.set_property("direction", direction)
- def add_sink(self, sink):
- self.sinks.append(sink)
+ def add_sink(self, sinkpad, sink):
+ self.sinks.append((sinkpad, sink))
def destroy(self):
- for sink in self.sinks:
+ for (sinkpad, sink) in self.sinks:
+ sinkpad.unlink (sinkpad, peer)
sink.set_locked_state(True)
sink.set_state(gst.STATE_NULL)
self.conference.pipeline.remove(sink)
diff --git a/multi-jingle-client.py b/multi-jingle-client.py
index 855a8d5..9af563e 100644
--- a/multi-jingle-client.py
+++ b/multi-jingle-client.py
@@ -189,12 +189,13 @@ class UI(gtk.Window):
frame.add(vsink)
frame.show_all()
- stream.add_sink (vsink.sink)
+ sinkpad = vsink.sink.get_pad("sink")
+ stream.add_sink(sinkpad, vsink.sink)
self.conference.pipeline.add(vsink.sink)
vsink.sink.set_state(gst.STATE_PLAYING)
- pad.link(vsink.sink.get_pad("sink"))
+ pad.link(sinkpad)
gtk.gdk.threads_leave()
--
1.5.6.5
More information about the Telepathy-commits
mailing list