From 5362ab0dba8941a1d8dd969a94e1775fc4977097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 9 Nov 2011 23:51:13 +0200 Subject: [PATCH] Always send and accept video_rtp/rtcp components when using the google transport Because the other side could be invisible, it's not possible to reliably know if the other side of a Google transport is Gabble or one of Google's clients. So always send the candidates with both types. --- src/jingle-media-rtp.c | 7 +------ src/jingle-transport-google.c | 10 +++++++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/jingle-media-rtp.c b/src/jingle-media-rtp.c index 5b1a977..0f569ef 100644 --- a/src/jingle-media-rtp.c +++ b/src/jingle-media-rtp.c @@ -329,17 +329,12 @@ static void transport_created (GabbleJingleContent *content, GabbleJingleMediaRtp *self = GABBLE_JINGLE_MEDIA_RTP (content); GabbleJingleMediaRtpPrivate *priv = self->priv; GabbleJingleTransportGoogle *gtrans = NULL; - JingleDialect dialect; if (GABBLE_IS_JINGLE_TRANSPORT_GOOGLE (transport)) { gtrans = GABBLE_JINGLE_TRANSPORT_GOOGLE (transport); - dialect = gabble_jingle_session_get_dialect (content->session); - if (priv->media_type == JINGLE_MEDIA_TYPE_VIDEO && - (JINGLE_IS_GOOGLE_DIALECT (dialect) || - gabble_jingle_session_peer_has_quirk (content->session, - QUIRK_GOOGLE_WEBMAIL_CLIENT))) + if (priv->media_type == JINGLE_MEDIA_TYPE_VIDEO) { jingle_transport_google_set_component_name (gtrans, "video_rtp", 1); jingle_transport_google_set_component_name (gtrans, "video_rtcp", 2); diff --git a/src/jingle-transport-google.c b/src/jingle-transport-google.c index 934dbab..075fc49 100644 --- a/src/jingle-transport-google.c +++ b/src/jingle-transport-google.c @@ -261,7 +261,11 @@ parse_candidates (GabbleJingleTransportIface *obj, break; if (!g_hash_table_lookup_extended (priv->component_names, name, - NULL, NULL)) + NULL, NULL) && + (strcmp (name, "rtp") || !g_hash_table_lookup_extended ( + priv->component_names, "video_rtp", NULL, NULL)) && + (strcmp (name, "rtcp") || !g_hash_table_lookup_extended ( + priv->component_names, "video_rtcp", NULL, NULL))) { DEBUG ("component name %s unknown to this transport", name); continue; @@ -520,6 +524,10 @@ group_and_transmit_candidates (GabbleJingleTransportGoogle *transport, if (name) { transmit_candidates (transport, name, cands->data); + if (!strcmp (name, "video_rtp")) + transmit_candidates (transport, "rtp", cands->data); + else if (!strcmp (name, "video_rtcp")) + transmit_candidates (transport, "rtcp", cands->data); } else { -- 1.7.7