]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
try to be back compat with the more logical yet incorrect sdp format for opus
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 16 Apr 2013 14:25:02 +0000 (09:25 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 16 Apr 2013 14:25:02 +0000 (09:25 -0500)
src/switch_core_media.c

index 6287a694dec55682ce1a101733af82f443911ec1..ffb542d88c10a12c6eaef9a6dbdb79573a8accdf 100644 (file)
@@ -2692,7 +2692,12 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
                                a_engine->codec_params.channels = mmap->rm_params ? atoi(mmap->rm_params) : 1;
 
                                if (!strcasecmp((char *) mmap->rm_encoding, "opus")) {
-                                       a_engine->codec_params.adv_channels = 2; /* IKR ???*/
+                                       if (a_engine->codec_params.channels == 1) {
+                                               switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Invald SDP for opus.  Don't ask.. but it needs a /2\n");
+                                               a_engine->codec_params.adv_channels = 1;
+                                       } else {
+                                               a_engine->codec_params.adv_channels = 2; /* IKR ???*/
+                                       }
                                        if (!zstr((char *) mmap->rm_fmtp) && switch_stristr("stereo=1", (char *) mmap->rm_fmtp)) {
                                                a_engine->codec_params.channels = 2;
                                        } else {