/*.cbr*/ 0,
/*.sprop_maxcapturerate*/ 0,
/*.sprop_stereo*/ 0,
- /*.maxptime*/ 0,
- /*.minptime*/ 0,
+ /*.maxptime*/ 40,
+ /*.minptime*/ 10,
+ /*.ptime*/ 0,
+ /*.samplerate*/ 0
+};
+
+static opus_codec_settings_t default_codec_settings_8k = {
+ /*.useinbandfec */ 1,
+ /*.usedtx */ 1,
+ /*.maxaveragebitrate */ 14000,
+ /*.maxplaybackrate */ 8000,
+ /*.stereo*/ 0,
+ /*.cbr*/ 0,
+ /*.sprop_maxcapturerate*/ 8000,
+ /*.sprop_stereo*/ 0,
+ /*.maxptime*/ 120,
+ /*.minptime*/ 10,
/*.ptime*/ 0,
/*.samplerate*/ 0
};
for (x = 0; x < 3; x++) {
settings.ptime = mss / 1000;
- settings.maxptime = settings.ptime;
- settings.minptime = settings.ptime;
settings.samplerate = rate;
settings.stereo = 0;
dft_fmtp = gen_fmtp(&settings, pool);
mss = 10000;
rate = 8000;
+ settings = default_codec_settings_8k;
+
+ if (opus_prefs.maxaveragebitrate) {
+ settings.maxaveragebitrate = opus_prefs.maxaveragebitrate;
+ }
+ if (opus_prefs.maxplaybackrate) {
+ settings.maxplaybackrate = opus_prefs.maxplaybackrate;
+ }
+ if (opus_prefs.sprop_maxcapturerate) {
+ settings.sprop_maxcapturerate = opus_prefs.sprop_maxcapturerate;
+ }
+
for (x = 0; x < 3; x++) {
settings.stereo = 0;
settings.ptime = mss / 1000;
- settings.maxptime = settings.ptime;
- settings.minptime = settings.ptime;
settings.samplerate = rate;
dft_fmtp = gen_fmtp(&settings, pool);
if (x == 1) { /*20 ms * 3 = 60 ms */
int nb_frames;
settings.stereo = 0;
+ settings.ptime = mss * 3 / 1000;
dft_fmtp = gen_fmtp(&settings, pool);
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
116, /* the IANA code number */
for (nb_frames = 4; nb_frames <= 6; nb_frames++) {
/*20 ms * nb_frames = 80 ms , 100 ms , 120 ms */
settings.stereo = 0;
+ settings.ptime = mss * nb_frames / 1000;
dft_fmtp = gen_fmtp(&settings, pool);
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
116, /* the IANA code number */