changeset 88ce17cd9d82 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=88ce17cd9d82 description: Merge local changes.
diffstat:
src/common/jingle_rtp.py | 45 ++++++++++++++++++++++++--------------------- src/common/jingle_session.py | 2 +- src/common/multimedia_helpers.py | 6 ++---- 3 files changed, 27 insertions(+), 26 deletions(-)
diffs (137 lines):
diff -r 5295eaad5f00 -r 88ce17cd9d82 src/common/jingle_rtp.py --- a/src/common/jingle_rtp.py Sun Nov 29 23:06:49 2009 +0100 +++ b/src/common/jingle_rtp.py Sun Nov 29 23:08:17 2009 +0100 @@ -19,6 +19,7 @@
import xmpp import farsight, gst +from glib import GError
import gajim
@@ -35,12 +36,12 @@ self._dtmf_running = False self.farsight_media = {'audio': farsight.MEDIA_TYPE_AUDIO, 'video': farsight.MEDIA_TYPE_VIDEO}[media] - self.got_codecs = False
self.candidates_ready = False # True when local candidates are prepared
self.callbacks['session-initiate'] += [self.__on_remote_codecs] self.callbacks['content-add'] += [self.__on_remote_codecs] + self.callbacks['description-info'] += [self.__on_remote_codecs] self.callbacks['content-accept'] += [self.__on_remote_codecs, self.__on_content_accept] self.callbacks['session-accept'] += [self.__on_remote_codecs, @@ -177,8 +178,6 @@ """ Get peer codecs from what we get from peer """ - if self.got_codecs: - return
codecs = [] for codec in content.getTag('description').iterTags('payload-type'): @@ -197,7 +196,6 @@ # glib.GError: There was no intersection between the remote codecs and # the local ones self.p2pstream.set_remote_codecs(codecs) - self.got_codecs = True
def iter_codecs(self): codecs = self.p2psession.get_property('codecs') @@ -252,18 +250,21 @@ self.p2psession.set_codec_preferences(codecs)
# the local parts + # TODO: Add queues? try: - self.sink = gst.parse_bin_from_description(gajim.config.get('audio_output_device'), True) - except: + src_bin = gst.parse_bin_from_description('%s ! audioconvert' + % gajim.config.get('audio_input_device'), True) + except GError: + self.session.connection.dispatch('ERROR', (_("Audio configuration error"), + _("Couldn't setup audio input. Check your audio configuration."))) + + try: + self.sink = gst.parse_bin_from_description('audioconvert ! %s' + % gajim.config.get('audio_output_device'), True) + except GError: self.session.connection.dispatch('ERROR', (_("Audio configuration error"), _("Couldn't setup audio output. Check your audio configuration.")))
- try: - src_bin = gst.parse_bin_from_description(gajim.config.get('audio_input_device'), True) - except: - self.session.connection.dispatch('ERROR', (_("Audio configuration error"), - _("Couldn't setup audio input. Check your audio configuration."))) - self.mic_volume = src_bin.get_by_name('gajim_vol') self.mic_volume.set_property('volume', 1)
@@ -291,24 +292,26 @@
# the local parts try: - src_bin = gst.parse_bin_from_description(gajim.config.get('video_input_device'), True) - except: + src_bin = gst.parse_bin_from_description('%s ! videoscale ! ffmpegcolorspace' + % gajim.config.get('video_input_device'), True) + except GError: self.session.connection.dispatch('ERROR', (_("Video configuration error"), _("Couldn't setup video input. Check your video configuration."))) - caps = gst.element_factory_make('capsfilter') - caps.set_property('caps', gst.caps_from_string('video/x-raw-yuv, width=320, height=240')) + #caps = gst.element_factory_make('capsfilter') + #caps.set_property('caps', gst.caps_from_string('video/x-raw-yuv, width=320, height=240'))
- self.pipeline.add(src_bin, caps) - src_bin.link(caps) + self.pipeline.add(src_bin)#, caps) + #src_bin.link(caps)
try: - self.sink = gst.parse_bin_from_description(gajim.config.get('video_output_device'), True) - except: + self.sink = gst.parse_bin_from_description('videoscale ! ffmpegcolorspace ! %s' + % gajim.config.get('video_output_device'), True) + except GError: self.session.connection.dispatch('ERROR', (_("Video configuration error"), _("Couldn't setup video output. Check your video configuration."))) self.pipeline.add(self.sink)
- caps.get_pad('src').link(self.p2psession.get_property('sink-pad')) + src_bin.get_pad('src').link(self.p2psession.get_property('sink-pad')) self.p2pstream.connect('src-pad-added', self._on_src_pad_added)
# The following is needed for farsight to process ICE requests: diff -r 5295eaad5f00 -r 88ce17cd9d82 src/common/jingle_session.py --- a/src/common/jingle_session.py Sun Nov 29 23:06:49 2009 +0100 +++ b/src/common/jingle_session.py Sun Nov 29 23:08:17 2009 +0100 @@ -21,7 +21,7 @@ # * security preconditions # * actions: # - content-modify -# - description-info, session-info +# - session-info # - security-info # - transport-accept, transport-reject # - Tie-breaking diff -r 5295eaad5f00 -r 88ce17cd9d82 src/common/multimedia_helpers.py --- a/src/common/multimedia_helpers.py Sun Nov 29 23:06:49 2009 +0100 +++ b/src/common/multimedia_helpers.py Sun Nov 29 23:08:17 2009 +0100 @@ -78,11 +78,9 @@ self.detect_element('videotestsrc', _('Video test'), '%s is-live=true') # Auto src - self.detect_element('autovideosrc', _('Autodetect'), - '%s ! videoscale ! ffmpegcolorspace') + self.detect_element('autovideosrc', _('Autodetect')) # V4L2 src ; TODO: Figure out why it doesn't work - self.detect_element('v4l2src', _('V4L2: %s'), - '%s ! videoscale ! ffmpegcolorspace') + self.detect_element('v4l2src', _('V4L2: %s')) # Funny things, just to test... # self.devices['GOOM'] = 'audiotestsrc ! goom' # self.devices['screen'] = 'ximagesrc'