diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index c537ea521..0d423dd85 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -182,7 +182,19 @@ 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 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; + } + } } { @@ -486,12 +498,19 @@ 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; NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate]; 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"]); linphone_core_set_use_rfc2833_for_dtmf(lc, [self boolForKey:@"rfc_dtmf_preference"]); diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index f2144563a..1c2c7f9c2 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -963,6 +963,10 @@ static LinphoneCoreVTable linphonec_vtable = { } static int comp_call_id(const LinphoneCall* call , const char *callid) { + if (linphone_call_log_get_call_id(linphone_call_get_call_log(call)) == nil) { + ms_error ("no callid for call [%p]", call); + return 1; + } return strcmp(linphone_call_log_get_call_id(linphone_call_get_call_log(call)), callid); } diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index 8cb63f9c8..d0eb48067 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -586,7 +586,6 @@ static UICompositeViewDescription *compositeDescription = nil; [hiddenKeys addObject:@"battery_alert_button"]; #endif - [hiddenKeys addObject:@"audio_advanced_group"]; [hiddenKeys addObject:@"playback_gain_preference"]; [hiddenKeys addObject:@"microphone_gain_preference"]; diff --git a/Settings/InAppSettings.bundle/Audio.plist b/Settings/InAppSettings.bundle/Audio.plist index 5fa9900a1..6c57f74f1 100644 --- a/Settings/InAppSettings.bundle/Audio.plist +++ b/Settings/InAppSettings.bundle/Audio.plist @@ -188,6 +188,44 @@ IASKTextAlignment IASKUITextAlignmentRight + + DefaultValue + + Key + adaptive_rate_control_preference + Title + Adaptive rate control + 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 cf7f76b96..4384de768 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Audio.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Audio.strings @@ -41,4 +41,10 @@ "Playback gain" = "Playback gain"; /* Microphone gain */ -"Microphone gain" = "Microphone gain"; \ No newline at end of file +"Microphone gain" = "Microphone gain"; + +/* Adaptive rate control */ +"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 a86837e4a..c90dc9783 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings @@ -41,4 +41,10 @@ "Playback gain" = "Gain sortie"; /* Microphone gain */ -"Microphone gain" = "Gain microphone"; \ No newline at end of file +"Microphone gain" = "Gain microphone"; + +/* Adaptive rate control */ +"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 d1aeb96f3..2b325e3ae 100644 --- a/Settings/InAppSettings.bundle/ru.lproj/Audio.strings +++ b/Settings/InAppSettings.bundle/ru.lproj/Audio.strings @@ -41,4 +41,10 @@ "Playback gain" = "Усиление воспроизведения"; /* Microphone gain */ -"Microphone gain" = "Усиление микрофона"; \ No newline at end of file +"Microphone gain" = "Усиление микрофона"; + +/* Adaptive rate control */ +"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 170d97bda..e0d4ea2f7 100644 --- a/linphone.ldb/Contents.plist +++ b/linphone.ldb/Contents.plist @@ -17902,7 +17902,7 @@ Raison: %2$s change date - 2012-11-06T09:45:46Z + 2013-06-28T12:59:59Z changed values class @@ -17912,7 +17912,7 @@ Raison: %2$s flags 0 hash - d8b4f45bf8fca397a7f791bd55a61e1c + a03adeb7710ae8986354684bdcd69764 name Audio.strings @@ -18279,6 +18279,56 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Adaptive rate control + errors + + flags + 0 + key + Adaptive rate control + localizations + + en + Adaptive rate control + fr + Contrôle de débit + + 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 cf7f76b96..4384de768 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings @@ -41,4 +41,10 @@ "Playback gain" = "Playback gain"; /* Microphone gain */ -"Microphone gain" = "Microphone gain"; \ No newline at end of file +"Microphone gain" = "Microphone gain"; + +/* Adaptive rate control */ +"Adaptive rate control" = "Adaptive rate control"; + +/* Codec bitrate limit */ +"Codec bitrate limit" = "Codec bitrate limit"; diff --git a/submodules/bcg729 b/submodules/bcg729 index 1ad5aa5ab..136c165a6 160000 --- a/submodules/bcg729 +++ b/submodules/bcg729 @@ -1 +1 @@ -Subproject commit 1ad5aa5abdf23bb260595b07f0705c9ede1a37d2 +Subproject commit 136c165a611a2552a3f52b0669b47a1bce0ab989 diff --git a/submodules/liblinphone.xcodeproj/project.pbxproj b/submodules/liblinphone.xcodeproj/project.pbxproj index 59ab81863..378e612f0 100644 --- a/submodules/liblinphone.xcodeproj/project.pbxproj +++ b/submodules/liblinphone.xcodeproj/project.pbxproj @@ -3209,12 +3209,11 @@ linphone/mediastreamer2/include, linphone/oRTP/include, externals/gsm/, - externals/osip/include, - externals/exosip/include, externals/speex/include, externals/ffmpeg, external/ffmpeg/swscale, "../liblinphone-sdk/apple-darwin/include", + "../liblinphone-sdk/apple-darwin/include/opus", ); INSTALL_PATH = /usr/local/lib; LIBRARY_SEARCH_PATHS = ( @@ -3265,12 +3264,11 @@ linphone/mediastreamer2/include, linphone/oRTP/include, externals/gsm/, - externals/osip/include, - externals/exosip/include, externals/speex/include, externals/ffmpeg, external/ffmpeg/swscale, "../liblinphone-sdk/apple-darwin/include", + "../liblinphone-sdk/apple-darwin/include/opus", ); INSTALL_PATH = /usr/local/lib; LIBRARY_SEARCH_PATHS = ( @@ -3321,12 +3319,11 @@ linphone/mediastreamer2/include, linphone/oRTP/include, externals/gsm/, - externals/osip/include, - externals/exosip/include, externals/speex/include, externals/ffmpeg, external/ffmpeg/swscale, "../liblinphone-sdk/apple-darwin/include", + "../liblinphone-sdk/apple-darwin/include/opus", ); INSTALL_PATH = /usr/local/lib; LIBRARY_SEARCH_PATHS = ( diff --git a/submodules/linphone b/submodules/linphone index 6a033f8a6..8b674d05e 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 6a033f8a646a9d1621e5e6c0a8886ad687ed77a6 +Subproject commit 8b674d05e33a80261dde28930591ff37dc8938b4 diff --git a/submodules/msilbc b/submodules/msilbc index 32a39741b..d5a47655f 160000 --- a/submodules/msilbc +++ b/submodules/msilbc @@ -1 +1 @@ -Subproject commit 32a39741b64d74999134f5e6425609c4cfff5daf +Subproject commit d5a47655f3c7ac64864f9d3a61bb0166eb748b57 diff --git a/submodules/mssilk b/submodules/mssilk index 1d81e34d6..49f89d0cb 160000 --- a/submodules/mssilk +++ b/submodules/mssilk @@ -1 +1 @@ -Subproject commit 1d81e34d6e3234797a726f9e66fc02ac5f28a637 +Subproject commit 49f89d0cb2aaf676249c1b7cb0e545df78d2bf85