| ... |
... |
@@ -14,9 +14,12 @@ |
|
14
|
14
|
## along with Gajim. If not, see <http://www.gnu.org/licenses/>.
|
|
15
|
15
|
|
|
16
|
16
|
import gi
|
|
|
17
|
+import logging
|
|
17
|
18
|
gi.require_version('Gst', '1.0')
|
|
18
|
19
|
from gi.repository import Gst
|
|
19
|
20
|
|
|
|
21
|
+log = logging.getLogger('gajim.c.multimedia_helpers')
|
|
|
22
|
+
|
|
20
|
23
|
|
|
21
|
24
|
class DeviceManager(object):
|
|
22
|
25
|
def __init__(self):
|
| ... |
... |
@@ -33,6 +36,8 @@ class DeviceManager(object): |
|
33
|
36
|
def detect_element(self, name, text, pipe='%s'):
|
|
34
|
37
|
if Gst.ElementFactory.find(name):
|
|
35
|
38
|
element = Gst.ElementFactory.make(name, '%spresencetest' % name)
|
|
|
39
|
+ if element is None:
|
|
|
40
|
+ log.warning('could not create %spresencetest', name)
|
|
36
|
41
|
if hasattr(element.props, 'device'):
|
|
37
|
42
|
element.set_state(Gst.State.READY)
|
|
38
|
43
|
devices = element.get_properties('device')
|
| ... |
... |
@@ -49,7 +54,7 @@ class DeviceManager(object): |
|
49
|
54
|
else:
|
|
50
|
55
|
self.devices[text] = pipe % name
|
|
51
|
56
|
else:
|
|
52
|
|
- print('element \'%s\' not found' % name)
|
|
|
57
|
+ log.info('element %s not found', name)
|
|
53
|
58
|
|
|
54
|
59
|
|
|
55
|
60
|
class AudioInputManager(DeviceManager):
|
| ... |
... |
@@ -108,4 +113,3 @@ class VideoOutputManager(DeviceManager): |
|
108
|
113
|
# ximagesink
|
|
109
|
114
|
self.detect_element('ximagesink', _('X Window System (without Xv)'))
|
|
110
|
115
|
self.detect_element('autovideosink', _('Autodetect'))
|
|
111
|
|
-
|