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";