[Telepathy-commits] [mingle/master] Add a preview frame

Sjoerd Simons sjoerd at luon.net
Tue Dec 2 07:54:17 PST 2008


---
 mingle-client.py |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/mingle-client.py b/mingle-client.py
index c811126..62b6a7b 100644
--- a/mingle-client.py
+++ b/mingle-client.py
@@ -89,12 +89,35 @@ class UI(gtk.Window):
 
         self.label = gtk.Label("Waiting for other participants...")
         self.label.set_size_request(self.WIDTH, self.HEIGHT)
+
+        self.preview_frame = gtk.Frame("Local Preview")
+        self.preview_frame.set_size_request(self.WIDTH, self.HEIGHT)
+
+        self.hbox.add(self.preview_frame)
         self.hbox.add(self.label)
         self.conference = conference
         self.set_title(jid.userhost())
 
         self.show_all()
 
+    def add_video_preview (self, session):
+        gtk.gdk.threads_enter()
+
+        pad = session.source.tee.get_pad("src%d")
+
+        vsink = VideoSink(self.conference)
+        session.source.add(vsink.sink)
+
+        vsink.sink.set_property("sync", False)
+
+        pad.link(vsink.sink.get_pad("sink"))
+        vsink.sink.set_state(gst.STATE_PLAYING)
+
+        self.preview_frame.add(vsink)
+        vsink.show_all()
+
+        gtk.gdk.threads_leave()
+
     def add_output(self, name):
         gtk.gdk.threads_enter()
         if self.label:
@@ -338,6 +361,12 @@ class Muc:
             self.conference.get_session("video", farsight.MEDIA_TYPE_VIDEO)
             self.conference.get_session("audio", farsight.MEDIA_TYPE_AUDIO)
 
+
+        session = self.conference.get_session("video",
+            farsight.MEDIA_TYPE_VIDEO)
+        self.ui.add_video_preview(session)
+
+
         for (jid, stanza) in self.mingle_presences.iteritems():
             deferreds.append (self.add_participant(jid, stanza))
 
-- 
1.5.6.5




More information about the Telepathy-commits mailing list