Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Unified Diff: webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java

Issue 2273573003: Support for video file instead of camera and output video out to file (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing review comments, except unittesting Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
index 56d915f00adbf8b94d4e7ec7391d85ad6e974e41..b17775d71860c2949b2e2c1bc7ea5c3bff12a923 100644
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
@@ -149,8 +149,12 @@ public class ConnectActivity extends Activity {
CallActivity.EXTRA_LOOPBACK, false);
int runTimeMs = intent.getIntExtra(
CallActivity.EXTRA_RUNTIME, 0);
+ boolean overrideInput = intent.getBooleanExtra(
+ CallActivity.EXTRA_LOOPBACK, false);
+ boolean useValuesFromIntent = intent.getBooleanExtra(
+ CallActivity.EXTRA_USE_VALUES_FROM_INTENT, false);
String room = sharedPref.getString(keyprefRoom, "");
- connectToRoom(room, true, loopback, runTimeMs);
+ connectToRoom(room, true, loopback, useValuesFromIntent, runTimeMs);
}
}
@@ -195,7 +199,7 @@ public class ConnectActivity extends Activity {
startActivity(intent);
return true;
} else if (item.getItemId() == R.id.action_loopback) {
- connectToRoom(null, false, true, 0);
+ connectToRoom(null, false, true, false, 0);
return true;
} else {
return super.onOptionsItemSelected(item);
@@ -250,8 +254,43 @@ public class ConnectActivity extends Activity {
}
}
+ /**
+ * Get a value from the shared preference or from the intent, if it does not
+ * exist the default is used.
+ */
+ private String sharedPrefGetString(int attributeId, String intentName,
+ int defaultId, boolean useFromIntent) {
+ String defaultValue = getString(defaultId);
+ if (useFromIntent) {
+ String value = getIntent().getStringExtra(intentName);
+ if (value != null) {
+ return value;
+ }
+ return defaultValue;
+ } else {
+ String attributeName = getString(attributeId);
+ return sharedPref.getString(attributeName, defaultValue);
+ }
+ }
+
+ /**
+ * Get a value from the shared preference or from the intent, if it does not
+ * exist the default is used.
+ */
+ private boolean sharedPrefGetBoolean(int attributeId, String intentName,
+ int defaultId, boolean useFromIntent) {
+ boolean defaultValue = Boolean.valueOf(getString(defaultId));
+ if (useFromIntent) {
+ return getIntent().getBooleanExtra(intentName, defaultValue);
+ } else {
+ String attributeName = getString(attributeId);
+ return sharedPref.getBoolean(attributeName, defaultValue);
+ }
+ }
+
private void connectToRoom(
- String roomId, boolean commandLineRun, boolean loopback, int runTimeMs) {
+ String roomId, boolean commandLineRun, boolean loopback,
+ boolean useValuesFromIntent, int runTimeMs) {
this.commandLineRun = commandLineRun;
// roomId is random for loopback.
@@ -264,66 +303,99 @@ public class ConnectActivity extends Activity {
getString(R.string.pref_room_server_url_default));
// Video call enabled flag.
- boolean videoCallEnabled = sharedPref.getBoolean(keyprefVideoCallEnabled,
- Boolean.valueOf(getString(R.string.pref_videocall_default)));
+ boolean videoCallEnabled = sharedPrefGetBoolean(
+ R.string.pref_videocall_key,
+ CallActivity.EXTRA_VIDEO_CALL,
+ R.string.pref_videocall_default,
+ useValuesFromIntent);
// Use Camera2 option.
- boolean useCamera2 = sharedPref.getBoolean(keyprefCamera2,
- Boolean.valueOf(getString(R.string.pref_camera2_default)));
+ boolean useCamera2 = sharedPrefGetBoolean(
+ R.string.pref_camera2_key,
+ CallActivity.EXTRA_CAMERA2,
+ R.string.pref_camera2_default,
+ useValuesFromIntent);
// Get default codecs.
- String videoCodec = sharedPref.getString(keyprefVideoCodec,
- getString(R.string.pref_videocodec_default));
- String audioCodec = sharedPref.getString(keyprefAudioCodec,
- getString(R.string.pref_audiocodec_default));
+ String videoCodec = sharedPrefGetString(
+ R.string.pref_videocodec_key,
+ CallActivity.EXTRA_VIDEOCODEC,
+ R.string.pref_videocodec_default,
+ useValuesFromIntent);
+ String audioCodec = sharedPrefGetString(
+ R.string.pref_audiocodec_key,
+ CallActivity.EXTRA_AUDIOCODEC,
+ R.string.pref_audiocodec_default,
+ useValuesFromIntent);
// Check HW codec flag.
- boolean hwCodec = sharedPref.getBoolean(keyprefHwCodecAcceleration,
- Boolean.valueOf(getString(R.string.pref_hwcodec_default)));
+ boolean hwCodec = sharedPrefGetBoolean(
+ R.string.pref_hwcodec_key,
+ CallActivity.EXTRA_HWCODEC_ENABLED,
+ R.string.pref_hwcodec_default,
+ useValuesFromIntent);
// Check Capture to texture.
- boolean captureToTexture = sharedPref.getBoolean(keyprefCaptureToTexture,
- Boolean.valueOf(getString(R.string.pref_capturetotexture_default)));
+ boolean captureToTexture = sharedPrefGetBoolean(
+ R.string.pref_capturetotexture_key,
+ CallActivity.EXTRA_CAPTURETOTEXTURE_ENABLED,
+ R.string.pref_capturetotexture_default,
+ useValuesFromIntent);
// Check Disable Audio Processing flag.
- boolean noAudioProcessing = sharedPref.getBoolean(
- keyprefNoAudioProcessingPipeline,
- Boolean.valueOf(getString(R.string.pref_noaudioprocessing_default)));
+ boolean noAudioProcessing = sharedPrefGetBoolean(
+ R.string.pref_noaudioprocessing_key,
+ CallActivity.EXTRA_NOAUDIOPROCESSING_ENABLED,
+ R.string.pref_noaudioprocessing_default,
+ useValuesFromIntent);
// Check Disable Audio Processing flag.
- boolean aecDump = sharedPref.getBoolean(
- keyprefAecDump,
- Boolean.valueOf(getString(R.string.pref_aecdump_default)));
+ boolean aecDump = sharedPrefGetBoolean(
+ R.string.pref_aecdump_key,
+ CallActivity.EXTRA_AECDUMP_ENABLED,
+ R.string.pref_aecdump_default,
+ useValuesFromIntent);
// Check OpenSL ES enabled flag.
- boolean useOpenSLES = sharedPref.getBoolean(
- keyprefOpenSLES,
- Boolean.valueOf(getString(R.string.pref_opensles_default)));
+ boolean useOpenSLES = sharedPrefGetBoolean(
+ R.string.pref_opensles_key,
+ CallActivity.EXTRA_OPENSLES_ENABLED,
+ R.string.pref_opensles_default,
+ useValuesFromIntent);
// Check Disable built-in AEC flag.
- boolean disableBuiltInAEC = sharedPref.getBoolean(
- keyprefDisableBuiltInAec,
- Boolean.valueOf(getString(R.string.pref_disable_built_in_aec_default)));
+ boolean disableBuiltInAEC = sharedPrefGetBoolean(
+ R.string.pref_disable_built_in_aec_key,
+ CallActivity.EXTRA_DISABLE_BUILT_IN_AEC,
+ R.string.pref_disable_built_in_aec_default,
+ useValuesFromIntent);
// Check Disable built-in AGC flag.
- boolean disableBuiltInAGC = sharedPref.getBoolean(
- keyprefDisableBuiltInAgc,
- Boolean.valueOf(getString(R.string.pref_disable_built_in_agc_default)));
+ boolean disableBuiltInAGC = sharedPrefGetBoolean(
+ R.string.pref_disable_built_in_agc_key,
+ CallActivity.EXTRA_DISABLE_BUILT_IN_AGC,
+ R.string.pref_disable_built_in_agc_default,
+ useValuesFromIntent);
// Check Disable built-in NS flag.
- boolean disableBuiltInNS = sharedPref.getBoolean(
- keyprefDisableBuiltInNs,
- Boolean.valueOf(getString(R.string.pref_disable_built_in_ns_default)));
+ boolean disableBuiltInNS = sharedPrefGetBoolean(
+ R.string.pref_disable_built_in_ns_key,
+ CallActivity.EXTRA_DISABLE_BUILT_IN_NS,
+ R.string.pref_disable_built_in_ns_default,
+ useValuesFromIntent);
// Check Enable level control.
- boolean enableLevelControl = sharedPref.getBoolean(
- keyprefEnableLevelControl,
- Boolean.valueOf(getString(R.string.pref_enable_level_control_key)));
+ boolean enableLevelControl = sharedPrefGetBoolean(
+ R.string.pref_enable_level_control_key,
+ CallActivity.EXTRA_ENABLE_LEVEL_CONTROL,
+ R.string.pref_enable_level_control_key,
+ useValuesFromIntent);
// Get video resolution from settings.
int videoWidth = 0;
int videoHeight = 0;
- String resolution = sharedPref.getString(keyprefResolution,
+ String resolution = sharedPref.getString(
sakal 2016/10/05 13:28:41 Resolution is still always get from the settings,
mandermo 2016/10/07 11:33:41 Did misstake. Added so it can be provided on comma
+ keyprefResolution,
getString(R.string.pref_resolution_default));
String[] dimensions = resolution.split("[ x]+");
if (dimensions.length == 2) {
@@ -339,48 +411,73 @@ public class ConnectActivity extends Activity {
// Get camera fps from settings.
int cameraFps = 0;
- String fps = sharedPref.getString(keyprefFps,
- getString(R.string.pref_fps_default));
- String[] fpsValues = fps.split("[ x]+");
- if (fpsValues.length == 2) {
- try {
- cameraFps = Integer.parseInt(fpsValues[0]);
- } catch (NumberFormatException e) {
- Log.e(TAG, "Wrong camera fps setting: " + fps);
+ if (useValuesFromIntent) {
+ cameraFps = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_FPS, 0);
+ }
+ if (!useValuesFromIntent || cameraFps == 0) {
sakal 2016/10/05 13:28:41 !useValuesFromIntent is not needed here
mandermo 2016/10/07 11:33:41 Done.
+ String fps = sharedPref.getString(keyprefFps,
+ getString(R.string.pref_fps_default));
+ String[] fpsValues = fps.split("[ x]+");
+ if (fpsValues.length == 2) {
+ try {
+ cameraFps = Integer.parseInt(fpsValues[0]);
+ } catch (NumberFormatException e) {
+ Log.e(TAG, "Wrong camera fps setting: " + fps);
+ }
}
}
// Check capture quality slider flag.
- boolean captureQualitySlider = sharedPref.getBoolean(keyprefCaptureQualitySlider,
- Boolean.valueOf(getString(R.string.pref_capturequalityslider_default)));
+ boolean captureQualitySlider = sharedPrefGetBoolean(
+ R.string.pref_capturequalityslider_key,
+ CallActivity.EXTRA_VIDEO_CAPTUREQUALITYSLIDER_ENABLED,
+ R.string.pref_capturequalityslider_default,
+ useValuesFromIntent);
// Get video and audio start bitrate.
int videoStartBitrate = 0;
- String bitrateTypeDefault = getString(
- R.string.pref_maxvideobitrate_default);
- String bitrateType = sharedPref.getString(
- keyprefVideoBitrateType, bitrateTypeDefault);
- if (!bitrateType.equals(bitrateTypeDefault)) {
- String bitrateValue = sharedPref.getString(keyprefVideoBitrateValue,
- getString(R.string.pref_maxvideobitratevalue_default));
- videoStartBitrate = Integer.parseInt(bitrateValue);
+ if (useValuesFromIntent) {
+ videoStartBitrate = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_BITRATE, 0);
}
+ if (videoStartBitrate == 0) {
+ String bitrateTypeDefault = getString(
+ R.string.pref_maxvideobitrate_default);
+ String bitrateType = sharedPref.getString(
+ keyprefVideoBitrateType, bitrateTypeDefault);
+ if (!bitrateType.equals(bitrateTypeDefault)) {
+ String bitrateValue = sharedPref.getString(keyprefVideoBitrateValue,
+ getString(R.string.pref_maxvideobitratevalue_default));
+ videoStartBitrate = Integer.parseInt(bitrateValue);
+ }
+ }
+
int audioStartBitrate = 0;
- bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_default);
- bitrateType = sharedPref.getString(
- keyprefAudioBitrateType, bitrateTypeDefault);
- if (!bitrateType.equals(bitrateTypeDefault)) {
- String bitrateValue = sharedPref.getString(keyprefAudioBitrateValue,
- getString(R.string.pref_startaudiobitratevalue_default));
- audioStartBitrate = Integer.parseInt(bitrateValue);
+ if (useValuesFromIntent) {
+ audioStartBitrate = getIntent().getIntExtra(CallActivity.EXTRA_AUDIO_BITRATE, 0);
+ }
+ if (audioStartBitrate == 0) {
+ String bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_default);
+ String bitrateType = sharedPref.getString(
+ keyprefAudioBitrateType, bitrateTypeDefault);
+ if (!bitrateType.equals(bitrateTypeDefault)) {
+ String bitrateValue = sharedPref.getString(keyprefAudioBitrateValue,
+ getString(R.string.pref_startaudiobitratevalue_default));
+ audioStartBitrate = Integer.parseInt(bitrateValue);
+ }
}
// Check statistics display option.
- boolean displayHud = sharedPref.getBoolean(keyprefDisplayHud,
- Boolean.valueOf(getString(R.string.pref_displayhud_default)));
-
- boolean tracing = sharedPref.getBoolean(
- keyprefTracing, Boolean.valueOf(getString(R.string.pref_tracing_default)));
+ boolean displayHud = sharedPrefGetBoolean(
+ R.string.pref_displayhud_key,
+ CallActivity.EXTRA_DISPLAY_HUD,
+ R.string.pref_displayhud_default,
+ useValuesFromIntent);
+
+ boolean tracing = sharedPrefGetBoolean(
+ R.string.pref_tracing_key,
+ CallActivity.EXTRA_TRACING,
+ R.string.pref_tracing_default,
+ useValuesFromIntent);
// Start AppRTCDemo activity.
Log.d(TAG, "Connecting to room " + roomId + " at URL " + roomUrl);
@@ -416,6 +513,38 @@ public class ConnectActivity extends Activity {
intent.putExtra(CallActivity.EXTRA_CMDLINE, commandLineRun);
intent.putExtra(CallActivity.EXTRA_RUNTIME, runTimeMs);
+ if (useValuesFromIntent) {
+ if (getIntent().hasExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA)) {
+ String videoFileAsCamera = getIntent().getStringExtra(
+ CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA);
+ intent.putExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA,
+ videoFileAsCamera);
+ }
+
+ if (getIntent().hasExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE)) {
+ String saveRemoteVideoToFile = getIntent().getStringExtra(
+ CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE);
+ intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE,
+ saveRemoteVideoToFile);
+ }
+
+ if (getIntent().hasExtra(
+ CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH)) {
+ int videoOutWidth = getIntent().getIntExtra(
+ CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH, 0);
+ intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH,
+ videoOutWidth);
+ }
+
+ if (getIntent().hasExtra(
+ CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT)) {
+ int videoOutHeight = getIntent().getIntExtra(
+ CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT, 0);
+ intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT,
+ videoOutHeight);
+ }
+ }
+
startActivityForResult(intent, CONNECTION_REQUEST);
}
}
@@ -442,7 +571,7 @@ public class ConnectActivity extends Activity {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String roomId = ((TextView) view).getText().toString();
- connectToRoom(roomId, false, false, 0);
+ connectToRoom(roomId, false, false, false, 0);
}
};
@@ -460,7 +589,7 @@ public class ConnectActivity extends Activity {
private final OnClickListener connectListener = new OnClickListener() {
@Override
public void onClick(View view) {
- connectToRoom(roomEditText.getText().toString(), false, false, 0);
+ connectToRoom(roomEditText.getText().toString(), false, false, false, 0);
}
};
}

Powered by Google App Engine
This is Rietveld 408576698