From: David Woodhouse Date: Sun, 25 Feb 2018 21:35:08 +0000 (+0100) Subject: Fix error handling when chime payloader not present X-Git-Tag: v0.9~69 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d2b877e4fb077ce55e06b9c78e5044b7a5c00543;p=pidgin-chime.git Fix error handling when chime payloader not present --- diff --git a/chat.c b/chat.c index 764bc25..8b1b96d 100644 --- a/chat.c +++ b/chat.c @@ -299,17 +299,16 @@ static void on_audio_state(ChimeCall *call, ChimeAudioState audio_state, struct GList *cands = g_list_append (NULL, cand); GList *codecs = g_list_append(NULL, purple_media_codec_new(97, "CHIME", PURPLE_MEDIA_AUDIO, 0)); - // g_object_set(codecs->data, "channels", 1, NULL); - // purple_media_codec_add_optional_parameter(codecs->data, "farstream-recv-profile", "rtpopusdepay ! opusdec"); - // purple_media_codec_add_optional_parameter(codecs->data, "farstream-send-profile", "opusenc bitrate=16000 bitrate-type=vbr dtx=1 ! rtpopuspay"); - #if 0 - purple_media_codec_add_optional_parameter(codecs->data, "sprop-stereo", "0"); - purple_media_codec_add_optional_parameter(codecs->data, "stereo", "0"); - purple_media_codec_add_optional_parameter(codecs->data, "usedtx", "1"); - purple_media_codec_add_optional_parameter(codecs->data, "maxplaybackrate", "16000"); - #endif + g_object_set(codecs->data, "channels", 1, NULL); + purple_media_add_remote_candidates(chat->media, "chime", name, cands); - purple_media_set_remote_codecs(chat->media, "chime", name, codecs); + if (!purple_media_set_remote_codecs(chat->media, "chime", name, codecs)) { + purple_media_error(chat->media, _("Error setting Chime OPUS codec\n")); + purple_media_end(chat->media, NULL, NULL); + chat->media = NULL; + chime_call_set_mute(chat->call, TRUE); + return; + } GstElement *pipeline = purple_media_manager_get_pipeline(mgr); GstElement *appsrc = gst_bin_get_by_name(GST_BIN(pipeline), srcname);