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

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: Fixed copyright header for start_loopback_stubbed_camera_saved_video_out.py 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 5a84c446299703cd30180865894945678649489b..80ea90f93a1f7a392b036115d21ea77c414c1793 100644
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java
@@ -144,8 +144,10 @@ public class ConnectActivity extends Activity {
if ("android.intent.action.VIEW".equals(intent.getAction()) && !commandLineRun) {
boolean loopback = intent.getBooleanExtra(CallActivity.EXTRA_LOOPBACK, false);
int runTimeMs = intent.getIntExtra(CallActivity.EXTRA_RUNTIME, 0);
+ 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);
}
}
@@ -190,7 +192,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);
@@ -243,8 +245,42 @@ public class ConnectActivity extends Activity {
}
}
- private void connectToRoom(
- String roomId, boolean commandLineRun, boolean loopback, int runTimeMs) {
+ /**
+ * 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,
+ boolean useValuesFromIntent, int runTimeMs) {
this.commandLineRun = commandLineRun;
// roomId is random for loopback.
@@ -256,112 +292,142 @@ public class ConnectActivity extends Activity {
keyprefRoomServerUrl, 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, getString(R.string.pref_resolution_default));
- String[] dimensions = resolution.split("[ x]+");
- if (dimensions.length == 2) {
- try {
- videoWidth = Integer.parseInt(dimensions[0]);
- videoHeight = Integer.parseInt(dimensions[1]);
- } catch (NumberFormatException e) {
- videoWidth = 0;
- videoHeight = 0;
- Log.e(TAG, "Wrong video resolution setting: " + resolution);
+ if (useValuesFromIntent) {
+ videoWidth = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_WIDTH, 0);
+ videoHeight = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_HEIGHT, 0);
+ }
+ if (videoWidth == 0 && videoHeight == 0) {
+ String resolution =
+ sharedPref.getString(keyprefResolution, getString(R.string.pref_resolution_default));
+ String[] dimensions = resolution.split("[ x]+");
+ if (dimensions.length == 2) {
+ try {
+ videoWidth = Integer.parseInt(dimensions[0]);
+ videoHeight = Integer.parseInt(dimensions[1]);
+ } catch (NumberFormatException e) {
+ videoWidth = 0;
+ videoHeight = 0;
+ Log.e(TAG, "Wrong video resolution setting: " + resolution);
+ }
}
}
// 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 (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) {
+ cameraFps = 0;
+ 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 displayHud = sharedPrefGetBoolean(R.string.pref_displayhud_key,
+ CallActivity.EXTRA_DISPLAY_HUD, R.string.pref_displayhud_default, useValuesFromIntent);
- boolean tracing = sharedPref.getBoolean(
- keyprefTracing, Boolean.valueOf(getString(R.string.pref_tracing_default)));
+ boolean tracing = sharedPrefGetBoolean(R.string.pref_tracing_key, CallActivity.EXTRA_TRACING,
+ R.string.pref_tracing_default, useValuesFromIntent);
// Start AppRTCMobile activity.
Log.d(TAG, "Connecting to room " + roomId + " at URL " + roomUrl);
@@ -395,6 +461,32 @@ 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);
}
}
@@ -424,7 +516,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);
}
};
@@ -442,7 +534,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