]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix for FS-9313
authorChristian Hoene <christian.hoene@symonics.com>
Thu, 30 Jun 2016 12:04:25 +0000 (14:04 +0200)
committerChristian Hoene <christian.hoene@symonics.com>
Thu, 30 Jun 2016 12:04:25 +0000 (14:04 +0200)
src/mod/codecs/mod_opus/mod_opus.c

index 959311b58bd19aa07408afe782d2b77dd44f12e6..e5ff41e6b4b2013f8e7fead90410295fd48293fc 100644 (file)
@@ -244,11 +244,14 @@ static switch_status_t switch_opus_fmtp_parse(const char *fmtp, switch_codec_fmt
 
                                                if (!strcasecmp(data, "stereo")) {
                                                        codec_settings->stereo = atoi(arg);
-                                                       codec_fmtp->stereo = codec_settings->stereo;
+                                                       if(codec_settings->stereo)
+                                                               codec_fmtp->stereo = 1;
                                                }
 
                                                if (!strcasecmp(data, "sprop-stereo")) {
                                                        codec_settings->sprop_stereo = atoi(arg);
+                                                       if(codec_settings->sprop_stereo)
+                                                               codec_fmtp->stereo = 1;
                                                }
 
                                                if (!strcasecmp(data, "maxaveragebitrate")) {
@@ -629,7 +632,7 @@ static switch_status_t switch_opus_init(switch_codec_t *codec, switch_codec_flag
                        }
                }
 
-               context->decoder_object = opus_decoder_create(dec_samplerate, (!context->codec_settings.sprop_stereo ? codec->implementation->number_of_channels : 2), &err);
+               context->decoder_object = opus_decoder_create(dec_samplerate, codec->implementation->number_of_channels, &err);
 
                switch_set_flag(codec, SWITCH_CODEC_FLAG_HAS_PLC);
 
@@ -727,7 +730,7 @@ static switch_status_t switch_opus_decode(switch_codec_t *codec,
                return SWITCH_STATUS_FALSE;
        }
 
-       frame_samples = *decoded_data_len / 2 / (!context->codec_settings.sprop_stereo ? codec->implementation->number_of_channels : 2);
+       frame_samples = *decoded_data_len / 2 / codec->implementation->number_of_channels);
        frame_size = frame_samples - (frame_samples % (codec->implementation->actual_samples_per_second / 400));
 
        if (*flag & SFF_PLC) {
@@ -828,7 +831,7 @@ static switch_status_t switch_opus_decode(switch_codec_t *codec,
                return SWITCH_STATUS_GENERR;
        }
 
-       *decoded_data_len = samples * 2 * (!context->codec_settings.sprop_stereo ? codec->implementation->number_of_channels : 2);
+       *decoded_data_len = samples * 2 * codec->implementation->number_of_channels;
 
        return SWITCH_STATUS_SUCCESS;
 }