From 1ca1d63795ae4b42d0a74e2d9432d98c8075c98b Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 May 2014 21:16:18 +0000 Subject: [PATCH] FS-6524,FS-6494: the compiler for rpi seems to be strangely mis-optimizing this if/else block. Yes, its already set to this value, but without the else block, it 'magically' hits the if blocks above, unless you sleep, print a log, or add the else --- src/switch_core_media.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index f007a8e3ee..be6caf5247 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -3350,12 +3350,14 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s memset(&codec_fmtp, 0, sizeof(codec_fmtp)); if (zstr(map->rm_fmtp)) { - if (!strcasecmp(map->rm_encoding, "ilbc")) { + if (!strcasecmp(rm_encoding, "ilbc")) { codec_ms = 30; map_bit_rate = 13330; - } else if (!strcasecmp(map->rm_encoding, "isac")) { + } else if (!strcasecmp(rm_encoding, "isac")) { codec_ms = 30; map_bit_rate = 32000; + } else { + map_bit_rate = switch_known_bitrate((switch_payload_t)map->rm_pt); } } else { if ((switch_core_codec_parse_fmtp(map->rm_encoding, map->rm_fmtp, map->rm_rate, &codec_fmtp)) == SWITCH_STATUS_SUCCESS) {