Add adaptive rate algorithm setting
This commit is contained in:
parent
36e2f77076
commit
5a7ef0aab0
8 changed files with 237 additions and 196 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -28,3 +28,4 @@ submodules/externals/build/libvpx/x86
|
||||||
submodules/externals/build/libvpx/arm
|
submodules/externals/build/libvpx/arm
|
||||||
submodules/externals/build/openh264/arm
|
submodules/externals/build/openh264/arm
|
||||||
submodules/externals/build/openh264/x86
|
submodules/externals/build/openh264/x86
|
||||||
|
submodules/externals/build/cunit/CUnit/
|
||||||
|
|
|
@ -98,8 +98,10 @@
|
||||||
<string name="pref_media_encryption_key_zrtp">zrtp</string>
|
<string name="pref_media_encryption_key_zrtp">zrtp</string>
|
||||||
<string name="pref_background_mode_key">pref_background_mode_key</string>
|
<string name="pref_background_mode_key">pref_background_mode_key</string>
|
||||||
<string name="pref_codec_bitrate_limit_key">pref_codec_bitrate_limit_key</string>
|
<string name="pref_codec_bitrate_limit_key">pref_codec_bitrate_limit_key</string>
|
||||||
<string name="pref_adaptative_rate_control_key">pref_adaptative_rate_control_key</string>
|
<string name="pref_adaptive_rate_control_key">pref_adaptive_rate_control_key</string>
|
||||||
|
<string name="pref_adaptive_rate_algorithm_key">pref_adaptive_rate_algorithm</string>
|
||||||
|
<string name="pref_adaptive_rate_algorithm_simple_key">pref_adaptive_rate_algorithm_simple_key</string>
|
||||||
|
<string name="pref_adaptive_rate_algorithm_stateful_key">pref_adaptive_rate_algorithm_stateful_key</string>
|
||||||
|
|
||||||
<string name="push_reg_id_key">push_reg_id_key</string>
|
<string name="push_reg_id_key">push_reg_id_key</string>
|
||||||
<string name="push_sender_id_key">push_sender_id_key</string>
|
<string name="push_sender_id_key">push_sender_id_key</string>
|
||||||
|
|
|
@ -166,7 +166,13 @@
|
||||||
<string name="pref_audio_port_description">Audio port or port range (minport-maxport)</string>
|
<string name="pref_audio_port_description">Audio port or port range (minport-maxport)</string>
|
||||||
<string name="pref_incoming_call_timeout_title">Incoming call timeout (in seconds)</string>
|
<string name="pref_incoming_call_timeout_title">Incoming call timeout (in seconds)</string>
|
||||||
<string name="place_call_chooser">Place a call</string>
|
<string name="place_call_chooser">Place a call</string>
|
||||||
<string name="pref_adaptative_rate_control">Adaptative rate control</string>
|
<string name="pref_adaptive_rate_control">Adaptive rate control</string>
|
||||||
|
<string name="pref_adaptive_rate_algorithm">Adaptive rate algorithm</string>
|
||||||
|
<string-array name="adaptive_rate_algorithm_entries">
|
||||||
|
<item>Simple</item>
|
||||||
|
<item>Stateful</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<string name="pref_codec_bitrate_limit">Codec bitrate limit</string>
|
<string name="pref_codec_bitrate_limit">Codec bitrate limit</string>
|
||||||
|
|
||||||
<string-array name="limit_bitrate_entries">
|
<string-array name="limit_bitrate_entries">
|
||||||
|
|
|
@ -54,8 +54,14 @@
|
||||||
android:key="@string/pref_echo_canceller_calibration_key"/>
|
android:key="@string/pref_echo_canceller_calibration_key"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_adaptative_rate_control"
|
android:title="@string/pref_adaptive_rate_control"
|
||||||
android:key="@string/pref_adaptative_rate_control_key" />
|
android:key="@string/pref_adaptive_rate_control_key" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_adaptive_rate_algorithm"
|
||||||
|
android:key="@string/pref_adaptive_rate_algorithm_key"
|
||||||
|
android:entries="@array/adaptive_rate_algorithm_entries"
|
||||||
|
android:entryValues="@array/adaptive_rate_algorithm_entries" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:title="@string/pref_codec_bitrate_limit"
|
android:title="@string/pref_codec_bitrate_limit"
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.linphone.core.LinphoneAddress;
|
||||||
import org.linphone.core.LinphoneAuthInfo;
|
import org.linphone.core.LinphoneAuthInfo;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
import org.linphone.core.LinphoneAddress.TransportType;
|
import org.linphone.core.LinphoneAddress.TransportType;
|
||||||
|
import org.linphone.core.LinphoneCore.AdaptiveRateAlgorithm;
|
||||||
import org.linphone.core.LinphoneCore.FirewallPolicy;
|
import org.linphone.core.LinphoneCore.FirewallPolicy;
|
||||||
import org.linphone.core.LinphoneCore.MediaEncryption;
|
import org.linphone.core.LinphoneCore.MediaEncryption;
|
||||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||||
|
@ -1098,14 +1099,22 @@ public class LinphonePreferences {
|
||||||
return getConfig().getBool("app", "first_remote_provisioning", true);
|
return getConfig().getBool("app", "first_remote_provisioning", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAdaptativeRateControlEnabled() {
|
public boolean isAdaptiveRateControlEnabled() {
|
||||||
return getLc().isAdaptiveRateControlEnabled();
|
return getLc().isAdaptiveRateControlEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enableAdaptativeRateControl(boolean enabled) {
|
public void enableAdaptiveRateControl(boolean enabled) {
|
||||||
getLc().enableAdaptiveRateControl(enabled);
|
getLc().enableAdaptiveRateControl(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AdaptiveRateAlgorithm getAdaptiveRateAlgorithm() {
|
||||||
|
return getLc().getAdaptiveRateAlgorithm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdaptiveRateAlgorithm(AdaptiveRateAlgorithm alg) {
|
||||||
|
getLc().setAdaptiveRateAlgorithm(alg);
|
||||||
|
}
|
||||||
|
|
||||||
public int getCodecBitrateLimit() {
|
public int getCodecBitrateLimit() {
|
||||||
return getConfig().getInt("audio", "codec_bitrate_limit", 36);
|
return getConfig().getInt("audio", "codec_bitrate_limit", 36);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.util.List;
|
||||||
import org.linphone.LinphoneManager.EcCalibrationListener;
|
import org.linphone.LinphoneManager.EcCalibrationListener;
|
||||||
import org.linphone.core.LinphoneAddress;
|
import org.linphone.core.LinphoneAddress;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
|
import org.linphone.core.LinphoneCore.AdaptiveRateAlgorithm;
|
||||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||||
import org.linphone.core.LinphoneCore.MediaEncryption;
|
import org.linphone.core.LinphoneCore.MediaEncryption;
|
||||||
import org.linphone.core.LinphoneCoreException;
|
import org.linphone.core.LinphoneCoreException;
|
||||||
|
@ -441,9 +442,12 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
echoCalibration.setSummary(String.format(getString(R.string.ec_calibrated), mPrefs.getEchoCalibration()));
|
echoCalibration.setSummary(String.format(getString(R.string.ec_calibrated), mPrefs.getEchoCalibration()));
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckBoxPreference adaptativeRateControl = (CheckBoxPreference) findPreference(getString(R.string.pref_adaptative_rate_control_key));
|
CheckBoxPreference adaptiveRateControl = (CheckBoxPreference) findPreference(getString(R.string.pref_adaptive_rate_control_key));
|
||||||
adaptativeRateControl.setChecked(mPrefs.isAdaptativeRateControlEnabled());
|
adaptiveRateControl.setChecked(mPrefs.isAdaptiveRateControlEnabled());
|
||||||
|
|
||||||
|
ListPreference adaptiveRateAlgorithm = (ListPreference) findPreference(getString(R.string.pref_adaptive_rate_algorithm_key));
|
||||||
|
adaptiveRateAlgorithm.setSummary(String.valueOf(mPrefs.getAdaptiveRateAlgorithm()));
|
||||||
|
adaptiveRateAlgorithm.setValue(String.valueOf(mPrefs.getAdaptiveRateAlgorithm()));
|
||||||
|
|
||||||
ListPreference bitrateLimit = (ListPreference) findPreference(getString(R.string.pref_codec_bitrate_limit_key));
|
ListPreference bitrateLimit = (ListPreference) findPreference(getString(R.string.pref_codec_bitrate_limit_key));
|
||||||
bitrateLimit.setSummary(String.valueOf(mPrefs.getCodecBitrateLimit()));
|
bitrateLimit.setSummary(String.valueOf(mPrefs.getCodecBitrateLimit()));
|
||||||
|
@ -460,15 +464,28 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
findPreference(getString(R.string.pref_adaptative_rate_control_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_adaptive_rate_control_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
mPrefs.enableAdaptativeRateControl(enabled);
|
mPrefs.enableAdaptiveRateControl(enabled);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_adaptive_rate_algorithm_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
ListPreference listPreference = (ListPreference) preference;
|
||||||
|
int index = listPreference.findIndexOfValue((String)newValue);
|
||||||
|
|
||||||
|
mPrefs.setAdaptiveRateAlgorithm(AdaptiveRateAlgorithm.fromInt(index));
|
||||||
|
preference.setSummary(String.valueOf(mPrefs.getAdaptiveRateAlgorithm()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
findPreference(getString(R.string.pref_codec_bitrate_limit_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_codec_bitrate_limit_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 3b4ef4e2faa9b382df35579c0d9444ba8feac828
|
Subproject commit fa1c112cb33d2c0a42b351652a4779a8aea77c56
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7563ab148ae6c16ca7d0cfb00f5bde3dfe9cbb19
|
Subproject commit 0abc9efadc86737345690e63886f31880286a5ee
|
Loading…
Reference in a new issue