From c1584918f3e06fc0092d4daac1a18620d174e8c9 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Fri, 20 Apr 2012 16:15:25 +0200
Subject: [PATCH] add screen sharing ability by choosing Screen in video input
 device.

---
 src/common/jingle_rtp.py         | 11 ++++++++---
 src/common/multimedia_helpers.py |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/common/jingle_rtp.py b/src/common/jingle_rtp.py
index 4e552dbb1b..628349665a 100644
--- a/src/common/jingle_rtp.py
+++ b/src/common/jingle_rtp.py
@@ -364,9 +364,13 @@ class JingleVideo(JingleRTPContent):
         JingleRTPContent.setup_stream(self, self._on_src_pad_added)
 
         # the local parts
+        if gajim.config.get('video_input_device').startswith('ximagesrc'):
+            colorspace = 'rgb'
+        else:
+            colorspace = 'yuv'
         if gajim.config.get('video_framerate'):
-            framerate = 'videorate ! video/x-raw-yuv,framerate=%s ! ' % \
-                gajim.config.get('video_framerate')
+            framerate = 'videorate ! video/x-raw-%s,framerate=%s ! ' % \
+                (colorspace, gajim.config.get('video_framerate'))
         else:
             framerate = ''
         try:
@@ -374,7 +378,8 @@ class JingleVideo(JingleRTPContent):
         except:
             w = h = None
         if w and h:
-            video_size = 'video/x-raw-yuv,width=%s,height=%s ! ' % (w, h)
+            video_size = 'video/x-raw-%s,width=%s,height=%s ! ' % (colorspace,
+                w, h)
         else:
             video_size = ''
         self.src_bin = self.make_bin_from_config('video_input_device',
diff --git a/src/common/multimedia_helpers.py b/src/common/multimedia_helpers.py
index 6aabbfb3da..157f0abe3a 100644
--- a/src/common/multimedia_helpers.py
+++ b/src/common/multimedia_helpers.py
@@ -95,7 +95,7 @@ class VideoInputManager(DeviceManager):
         self.detect_element('v4l2src', _('V4L2: %s'))
         # Funny things, just to test...
         # self.devices['GOOM'] = 'audiotestsrc ! goom'
-        # self.devices['screen'] = 'ximagesrc'
+        self.detect_element('ximagesrc', _('Screen'))
 
 
 class VideoOutputManager(DeviceManager):
-- 
GitLab