Add an option to enable level control to Android AppRTC Demo.

BUG=webrtc:6152
R=magjed@webrtc.org

Review URL: https://codereview.webrtc.org/2193753002 .

Cr-Commit-Position: refs/heads/master@{#13572}
This commit is contained in:
Sami Kalliomaki
2016-07-29 14:08:12 +02:00
parent 737336d37a
commit 0e4bffbed0
7 changed files with 39 additions and 4 deletions

View File

@ -138,6 +138,10 @@
<string name="pref_disable_built_in_ns_default">false</string> <string name="pref_disable_built_in_ns_default">false</string>
<string name="pref_built_in_ns_not_available">Hardware NS is not available</string> <string name="pref_built_in_ns_not_available">Hardware NS is not available</string>
<string name="pref_enable_level_control_key">enable_level_control_preference</string>
<string name="pref_enable_level_control_title">Enable level control.</string>
<string name="pref_enable_level_control_default">false</string>
<string name="pref_miscsettings_key">misc_settings_key</string> <string name="pref_miscsettings_key">misc_settings_key</string>
<string name="pref_miscsettings_title">Miscellaneous settings.</string> <string name="pref_miscsettings_title">Miscellaneous settings.</string>

View File

@ -135,6 +135,11 @@
android:title="@string/pref_disable_built_in_ns_title" android:title="@string/pref_disable_built_in_ns_title"
android:dialogTitle="@string/pref_disable_built_in_ns_dlg" android:dialogTitle="@string/pref_disable_built_in_ns_dlg"
android:defaultValue="@string/pref_disable_built_in_ns_default" /> android:defaultValue="@string/pref_disable_built_in_ns_default" />
<CheckBoxPreference
android:key="@string/pref_enable_level_control_key"
android:title="@string/pref_enable_level_control_title"
android:defaultValue="@string/pref_enable_level_control_default" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory

View File

@ -88,6 +88,8 @@ public class CallActivity extends Activity
"org.appspot.apprtc.DISABLE_BUILT_IN_AGC"; "org.appspot.apprtc.DISABLE_BUILT_IN_AGC";
public static final String EXTRA_DISABLE_BUILT_IN_NS = public static final String EXTRA_DISABLE_BUILT_IN_NS =
"org.appspot.apprtc.DISABLE_BUILT_IN_NS"; "org.appspot.apprtc.DISABLE_BUILT_IN_NS";
public static final String EXTRA_ENABLE_LEVEL_CONTROL =
"org.appspot.apprtc.ENABLE_LEVEL_CONTROL";
public static final String EXTRA_DISPLAY_HUD = public static final String EXTRA_DISPLAY_HUD =
"org.appspot.apprtc.DISPLAY_HUD"; "org.appspot.apprtc.DISPLAY_HUD";
public static final String EXTRA_TRACING = "org.appspot.apprtc.TRACING"; public static final String EXTRA_TRACING = "org.appspot.apprtc.TRACING";
@ -253,7 +255,8 @@ public class CallActivity extends Activity
intent.getBooleanExtra(EXTRA_OPENSLES_ENABLED, false), intent.getBooleanExtra(EXTRA_OPENSLES_ENABLED, false),
intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_AEC, false), intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_AEC, false),
intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_AGC, false), intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_AGC, false),
intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_NS, false)); intent.getBooleanExtra(EXTRA_DISABLE_BUILT_IN_NS, false),
intent.getBooleanExtra(EXTRA_ENABLE_LEVEL_CONTROL, false));
commandLineRun = intent.getBooleanExtra(EXTRA_CMDLINE, false); commandLineRun = intent.getBooleanExtra(EXTRA_CMDLINE, false);
runTimeMs = intent.getIntExtra(EXTRA_RUNTIME, 0); runTimeMs = intent.getIntExtra(EXTRA_RUNTIME, 0);

View File

@ -73,6 +73,7 @@ public class ConnectActivity extends Activity {
private String keyprefDisableBuiltInAec; private String keyprefDisableBuiltInAec;
private String keyprefDisableBuiltInAgc; private String keyprefDisableBuiltInAgc;
private String keyprefDisableBuiltInNs; private String keyprefDisableBuiltInNs;
private String keyprefEnableLevelControl;
private String keyprefDisplayHud; private String keyprefDisplayHud;
private String keyprefTracing; private String keyprefTracing;
private String keyprefRoomServerUrl; private String keyprefRoomServerUrl;
@ -107,6 +108,7 @@ public class ConnectActivity extends Activity {
keyprefDisableBuiltInAec = getString(R.string.pref_disable_built_in_aec_key); keyprefDisableBuiltInAec = getString(R.string.pref_disable_built_in_aec_key);
keyprefDisableBuiltInAgc = getString(R.string.pref_disable_built_in_agc_key); keyprefDisableBuiltInAgc = getString(R.string.pref_disable_built_in_agc_key);
keyprefDisableBuiltInNs = getString(R.string.pref_disable_built_in_ns_key); keyprefDisableBuiltInNs = getString(R.string.pref_disable_built_in_ns_key);
keyprefEnableLevelControl = getString(R.string.pref_enable_level_control_key);
keyprefDisplayHud = getString(R.string.pref_displayhud_key); keyprefDisplayHud = getString(R.string.pref_displayhud_key);
keyprefTracing = getString(R.string.pref_tracing_key); keyprefTracing = getString(R.string.pref_tracing_key);
keyprefRoomServerUrl = getString(R.string.pref_room_server_url_key); keyprefRoomServerUrl = getString(R.string.pref_room_server_url_key);
@ -313,6 +315,11 @@ public class ConnectActivity extends Activity {
keyprefDisableBuiltInNs, keyprefDisableBuiltInNs,
Boolean.valueOf(getString(R.string.pref_disable_built_in_ns_default))); Boolean.valueOf(getString(R.string.pref_disable_built_in_ns_default)));
// Check Enable level control.
boolean enableLevelControl = sharedPref.getBoolean(
keyprefEnableLevelControl,
Boolean.valueOf(getString(R.string.pref_enable_level_control_key)));
// Get video resolution from settings. // Get video resolution from settings.
int videoWidth = 0; int videoWidth = 0;
int videoHeight = 0; int videoHeight = 0;
@ -401,6 +408,7 @@ public class ConnectActivity extends Activity {
intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_AEC, disableBuiltInAEC); intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_AEC, disableBuiltInAEC);
intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_AGC, disableBuiltInAGC); intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_AGC, disableBuiltInAGC);
intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_NS, disableBuiltInNS); intent.putExtra(CallActivity.EXTRA_DISABLE_BUILT_IN_NS, disableBuiltInNS);
intent.putExtra(CallActivity.EXTRA_ENABLE_LEVEL_CONTROL, enableLevelControl);
intent.putExtra(CallActivity.EXTRA_AUDIO_BITRATE, audioStartBitrate); intent.putExtra(CallActivity.EXTRA_AUDIO_BITRATE, audioStartBitrate);
intent.putExtra(CallActivity.EXTRA_AUDIOCODEC, audioCodec); intent.putExtra(CallActivity.EXTRA_AUDIOCODEC, audioCodec);
intent.putExtra(CallActivity.EXTRA_DISPLAY_HUD, displayHud); intent.putExtra(CallActivity.EXTRA_DISPLAY_HUD, displayHud);

View File

@ -80,6 +80,7 @@ public class PeerConnectionClient {
private static final String AUDIO_AUTO_GAIN_CONTROL_CONSTRAINT= "googAutoGainControl"; private static final String AUDIO_AUTO_GAIN_CONTROL_CONSTRAINT= "googAutoGainControl";
private static final String AUDIO_HIGH_PASS_FILTER_CONSTRAINT = "googHighpassFilter"; private static final String AUDIO_HIGH_PASS_FILTER_CONSTRAINT = "googHighpassFilter";
private static final String AUDIO_NOISE_SUPPRESSION_CONSTRAINT = "googNoiseSuppression"; private static final String AUDIO_NOISE_SUPPRESSION_CONSTRAINT = "googNoiseSuppression";
private static final String AUDIO_LEVEL_CONTROL_CONSTRAINT = "levelControl";
private static final String MAX_VIDEO_WIDTH_CONSTRAINT = "maxWidth"; private static final String MAX_VIDEO_WIDTH_CONSTRAINT = "maxWidth";
private static final String MIN_VIDEO_WIDTH_CONSTRAINT = "minWidth"; private static final String MIN_VIDEO_WIDTH_CONSTRAINT = "minWidth";
private static final String MAX_VIDEO_HEIGHT_CONSTRAINT = "maxHeight"; private static final String MAX_VIDEO_HEIGHT_CONSTRAINT = "maxHeight";
@ -162,6 +163,7 @@ public class PeerConnectionClient {
public final boolean disableBuiltInAEC; public final boolean disableBuiltInAEC;
public final boolean disableBuiltInAGC; public final boolean disableBuiltInAGC;
public final boolean disableBuiltInNS; public final boolean disableBuiltInNS;
public final boolean enableLevelControl;
public PeerConnectionParameters( public PeerConnectionParameters(
boolean videoCallEnabled, boolean loopback, boolean tracing, boolean useCamera2, boolean videoCallEnabled, boolean loopback, boolean tracing, boolean useCamera2,
@ -169,7 +171,8 @@ public class PeerConnectionClient {
int videoStartBitrate, String videoCodec, boolean videoCodecHwAcceleration, int videoStartBitrate, String videoCodec, boolean videoCodecHwAcceleration,
boolean captureToTexture, int audioStartBitrate, String audioCodec, boolean captureToTexture, int audioStartBitrate, String audioCodec,
boolean noAudioProcessing, boolean aecDump, boolean useOpenSLES, boolean noAudioProcessing, boolean aecDump, boolean useOpenSLES,
boolean disableBuiltInAEC, boolean disableBuiltInAGC, boolean disableBuiltInNS) { boolean disableBuiltInAEC, boolean disableBuiltInAGC, boolean disableBuiltInNS,
boolean enableLevelControl) {
this.videoCallEnabled = videoCallEnabled; this.videoCallEnabled = videoCallEnabled;
this.useCamera2 = useCamera2; this.useCamera2 = useCamera2;
this.loopback = loopback; this.loopback = loopback;
@ -189,6 +192,7 @@ public class PeerConnectionClient {
this.disableBuiltInAEC = disableBuiltInAEC; this.disableBuiltInAEC = disableBuiltInAEC;
this.disableBuiltInAGC = disableBuiltInAGC; this.disableBuiltInAGC = disableBuiltInAGC;
this.disableBuiltInNS = disableBuiltInNS; this.disableBuiltInNS = disableBuiltInNS;
this.enableLevelControl = enableLevelControl;
} }
} }
@ -455,6 +459,11 @@ public class PeerConnectionClient {
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair( audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
AUDIO_NOISE_SUPPRESSION_CONSTRAINT , "false")); AUDIO_NOISE_SUPPRESSION_CONSTRAINT , "false"));
} }
if (peerConnectionParameters.enableLevelControl) {
Log.d(TAG, "Enabling level control.");
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
AUDIO_LEVEL_CONTROL_CONSTRAINT, "true"));
}
// Create SDP constraints. // Create SDP constraints.
sdpMediaConstraints = new MediaConstraints(); sdpMediaConstraints = new MediaConstraints();
sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair( sdpMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair(

View File

@ -46,6 +46,7 @@ public class SettingsActivity extends Activity
private String keyprefDisableBuiltInAEC; private String keyprefDisableBuiltInAEC;
private String keyprefDisableBuiltInAGC; private String keyprefDisableBuiltInAGC;
private String keyprefDisableBuiltInNS; private String keyprefDisableBuiltInNS;
private String keyprefEnableLevelControl;
private String keyPrefRoomServerUrl; private String keyPrefRoomServerUrl;
private String keyPrefDisplayHud; private String keyPrefDisplayHud;
@ -74,6 +75,7 @@ public class SettingsActivity extends Activity
keyprefDisableBuiltInAEC = getString(R.string.pref_disable_built_in_aec_key); keyprefDisableBuiltInAEC = getString(R.string.pref_disable_built_in_aec_key);
keyprefDisableBuiltInAGC = getString(R.string.pref_disable_built_in_agc_key); keyprefDisableBuiltInAGC = getString(R.string.pref_disable_built_in_agc_key);
keyprefDisableBuiltInNS = getString(R.string.pref_disable_built_in_ns_key); keyprefDisableBuiltInNS = getString(R.string.pref_disable_built_in_ns_key);
keyprefEnableLevelControl = getString(R.string.pref_enable_level_control_key);
keyPrefRoomServerUrl = getString(R.string.pref_room_server_url_key); keyPrefRoomServerUrl = getString(R.string.pref_room_server_url_key);
keyPrefDisplayHud = getString(R.string.pref_displayhud_key); keyPrefDisplayHud = getString(R.string.pref_displayhud_key);
@ -115,6 +117,7 @@ public class SettingsActivity extends Activity
updateSummaryB(sharedPreferences, keyprefDisableBuiltInAEC); updateSummaryB(sharedPreferences, keyprefDisableBuiltInAEC);
updateSummaryB(sharedPreferences, keyprefDisableBuiltInAGC); updateSummaryB(sharedPreferences, keyprefDisableBuiltInAGC);
updateSummaryB(sharedPreferences, keyprefDisableBuiltInNS); updateSummaryB(sharedPreferences, keyprefDisableBuiltInNS);
updateSummaryB(sharedPreferences, keyprefEnableLevelControl);
updateSummary(sharedPreferences, keyPrefRoomServerUrl); updateSummary(sharedPreferences, keyPrefRoomServerUrl);
updateSummaryB(sharedPreferences, keyPrefDisplayHud); updateSummaryB(sharedPreferences, keyPrefDisplayHud);
@ -192,6 +195,7 @@ public class SettingsActivity extends Activity
|| key.equals(keyprefDisableBuiltInAEC) || key.equals(keyprefDisableBuiltInAEC)
|| key.equals(keyprefDisableBuiltInAGC) || key.equals(keyprefDisableBuiltInAGC)
|| key.equals(keyprefDisableBuiltInNS) || key.equals(keyprefDisableBuiltInNS)
|| key.equals(keyprefEnableLevelControl)
|| key.equals(keyPrefDisplayHud)) { || key.equals(keyPrefDisplayHud)) {
updateSummaryB(sharedPreferences, key); updateSummaryB(sharedPreferences, key);
} }

View File

@ -285,7 +285,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase
false /* useOpenSLES */, false /* useOpenSLES */,
false /* disableBuiltInAEC */, false /* disableBuiltInAEC */,
false /* disableBuiltInAGC */, false /* disableBuiltInAGC */,
false /* disableBuiltInNS */); false /* disableBuiltInNS */,
false /* enableLevelControl */);
return peerConnectionParameters; return peerConnectionParameters;
} }
@ -315,7 +316,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase
false /* useOpenSLES */, false /* useOpenSLES */,
false /* disableBuiltInAEC */, false /* disableBuiltInAEC */,
false /* disableBuiltInAGC */, false /* disableBuiltInAGC */,
false /* disableBuiltInNS */); false /* disableBuiltInNS */,
false /* enableLevelControl */);
return peerConnectionParameters; return peerConnectionParameters;
} }