diff --git a/src/mod/codecs/mod_opus/mod_opus.c b/src/mod/codecs/mod_opus/mod_opus.c index 959311b58b..e5ff41e6b4 100644 --- a/src/mod/codecs/mod_opus/mod_opus.c +++ b/src/mod/codecs/mod_opus/mod_opus.c @@ -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; }