diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m
index fa433395b..86f5a5bb0 100644
--- a/Classes/LinphoneCoreSettingsStore.m
+++ b/Classes/LinphoneCoreSettingsStore.m
@@ -184,6 +184,17 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
[self transformCodecsToKeys: linphone_core_get_audio_codecs(lc)];
[self transformCodecsToKeys: linphone_core_get_video_codecs(lc)];
[self setBool:linphone_core_adaptive_rate_control_enabled(lc) forKey:@"adaptive_rate_control_preference"];
+ LpConfig *config = linphone_core_get_config(lc);
+ [self setInteger:lp_config_get_int(config, "audio", "codec_bitrate_limit", 32) forKey:@"audio_codec_bitrate_limit_preference"];
+
+ PayloadType *pt;
+ const MSList *elem;
+ for (elem=linphone_core_get_audio_codecs(lc);elem!=NULL;elem=elem->next){
+ pt=(PayloadType*)elem->data;
+ if ((strcmp(pt->mime_type, "opus") == 0) || (strcmp(pt->mime_type, "mpeg4-generic") == 0)) {
+ pt->normal_bitrate = [self integerForKey:@"audio_codec_bitrate_limit_preference"] * 1000;
+ }
+ }
}
{
@@ -487,6 +498,9 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
pt=(PayloadType*)elem->data;
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
linphone_core_enable_payload_type(lc,pt,[self boolForKey: pref]);
+ if ((strcmp(pt->mime_type, "opus") == 0) || (strcmp(pt->mime_type, "mpeg4-generic") == 0)) {
+ pt->normal_bitrate = [self integerForKey:@"audio_codec_bitrate_limit_preference"] * 1000;
+ }
}
for (elem=linphone_core_get_video_codecs(lc);elem!=NULL;elem=elem->next){
pt=(PayloadType*)elem->data;
@@ -494,6 +508,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_core_enable_payload_type(lc,pt,[self boolForKey: pref]);
}
+ LpConfig *config = linphone_core_get_config(lc);
+ lp_config_set_int(config, "audio", "codec_bitrate_limit", [self integerForKey:@"audio_codec_bitrate_limit_preference"]);
linphone_core_enable_adaptive_rate_control(lc, [self boolForKey:@"adaptive_rate_control_preference"]);
linphone_core_set_use_info_for_dtmf(lc, [self boolForKey:@"sipinfo_dtmf_preference"]);
diff --git a/Settings/InAppSettings.bundle/Audio.plist b/Settings/InAppSettings.bundle/Audio.plist
index a7d91efac..6c57f74f1 100644
--- a/Settings/InAppSettings.bundle/Audio.plist
+++ b/Settings/InAppSettings.bundle/Audio.plist
@@ -198,6 +198,34 @@
Type
PSToggleSwitchSpecifier
+
+ DefaultValue
+ 32
+ Key
+ audio_codec_bitrate_limit_preference
+ Title
+ Codec bitrate limit
+ Titles
+
+ 10 kbits/s
+ 15 kbits/s
+ 20 kbits/s
+ 32 kbits/s
+ 64 kbits/s
+ 128 kbits/s
+
+ Type
+ PSMultiValueSpecifier
+ Values
+
+ 10
+ 15
+ 20
+ 32
+ 64
+ 128
+
+
diff --git a/Settings/InAppSettings.bundle/en.lproj/Audio.strings b/Settings/InAppSettings.bundle/en.lproj/Audio.strings
index 313420848..4384de768 100644
--- a/Settings/InAppSettings.bundle/en.lproj/Audio.strings
+++ b/Settings/InAppSettings.bundle/en.lproj/Audio.strings
@@ -44,4 +44,7 @@
"Microphone gain" = "Microphone gain";
/* Adaptive rate control */
-"Adaptive rate control" = "Adaptive rate control";
\ No newline at end of file
+"Adaptive rate control" = "Adaptive rate control";
+
+/* Codec bitrate limit */
+"Codec bitrate limit" = "Codec bitrate limit";
diff --git a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
index 2b73797e4..c90dc9783 100644
--- a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
+++ b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings
@@ -44,4 +44,7 @@
"Microphone gain" = "Gain microphone";
/* Adaptive rate control */
-"Adaptive rate control" = "Contrôle de débit";
\ No newline at end of file
+"Adaptive rate control" = "Contrôle de débit";
+
+/* Codec bitrate limit */
+"Codec bitrate limit" = "Limite de débit du codec";
diff --git a/Settings/InAppSettings.bundle/ru.lproj/Audio.strings b/Settings/InAppSettings.bundle/ru.lproj/Audio.strings
index 2bd5ee497..2b325e3ae 100644
--- a/Settings/InAppSettings.bundle/ru.lproj/Audio.strings
+++ b/Settings/InAppSettings.bundle/ru.lproj/Audio.strings
@@ -44,4 +44,7 @@
"Microphone gain" = "Усиление микрофона";
/* Adaptive rate control */
-"Adaptive rate control" = "Adaptive rate control";
\ No newline at end of file
+"Adaptive rate control" = "Adaptive rate control";
+
+/* Codec bitrate limit */
+"Codec bitrate limit" = "Codec bitrate limit";
diff --git a/linphone.ldb/Contents.plist b/linphone.ldb/Contents.plist
index 9e3fd2fd2..e0d4ea2f7 100644
--- a/linphone.ldb/Contents.plist
+++ b/linphone.ldb/Contents.plist
@@ -17902,7 +17902,7 @@ Raison: %2$s
change date
- 2013-06-26T10:38:34Z
+ 2013-06-28T12:59:59Z
changed values
class
@@ -17912,7 +17912,7 @@ Raison: %2$s
flags
0
hash
- 3d30b341d7d52a2764e5683a2ca348c1
+ a03adeb7710ae8986354684bdcd69764
name
Audio.strings
@@ -18304,6 +18304,31 @@ Raison: %2$s
snapshots
+
+ change date
+ 2001-01-01T00:00:00Z
+ changed values
+
+ class
+ BLStringKeyObject
+ comment
+ Codec bitrate limit
+ errors
+
+ flags
+ 0
+ key
+ Codec bitrate limit
+ localizations
+
+ en
+ Codec bitrate limit
+ fr
+ Limite de débit du codec
+
+ snapshots
+
+
old objects
diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
index 313420848..4384de768 100644
--- a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
+++ b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings
@@ -44,4 +44,7 @@
"Microphone gain" = "Microphone gain";
/* Adaptive rate control */
-"Adaptive rate control" = "Adaptive rate control";
\ No newline at end of file
+"Adaptive rate control" = "Adaptive rate control";
+
+/* Codec bitrate limit */
+"Codec bitrate limit" = "Codec bitrate limit";