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

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

Issue 1286133002: Revert of AppRTCDemo: Render each video in a separate SurfaceView (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 4 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/CallActivity.java
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
index 2f19604a336b5fbdc493277e5f90c88c3f696bb9..d46f9a3d593837d5c647ef0b5f1e593005908016 100644
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
@@ -24,19 +24,18 @@
import android.net.Uri;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
-import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager.LayoutParams;
import android.widget.Toast;
-import org.webrtc.EglBase;
import org.webrtc.IceCandidate;
import org.webrtc.SessionDescription;
import org.webrtc.StatsReport;
-import org.webrtc.SurfaceViewRenderer;
-import org.webrtc.RendererCommon.ScalingType;
+import org.webrtc.VideoRenderer;
+import org.webrtc.VideoRendererGui;
+import org.webrtc.VideoRendererGui.ScalingType;
/**
* Activity for peer connection call setup, call waiting
@@ -110,11 +109,8 @@
private AppRTCClient appRtcClient;
private SignalingParameters signalingParameters;
private AppRTCAudioManager audioManager = null;
- private EglBase rootEglBase;
- private SurfaceViewRenderer localRender;
- private SurfaceViewRenderer remoteRender;
- private PercentFrameLayout localRenderLayout;
- private PercentFrameLayout remoteRenderLayout;
+ private VideoRenderer.Callbacks localRender;
+ private VideoRenderer.Callbacks remoteRender;
private ScalingType scalingType;
private Toast logToast;
private boolean commandLineRun;
@@ -128,6 +124,7 @@
private long callStartedTimeMs = 0;
// Controls
+ private GLSurfaceView videoView;
CallFragment callFragment;
HudFragment hudFragment;
@@ -157,29 +154,31 @@
scalingType = ScalingType.SCALE_ASPECT_FILL;
// Create UI controls.
- localRender = (SurfaceViewRenderer) findViewById(R.id.local_video_view);
- remoteRender = (SurfaceViewRenderer) findViewById(R.id.remote_video_view);
- localRenderLayout = (PercentFrameLayout) findViewById(R.id.local_video_layout);
- remoteRenderLayout = (PercentFrameLayout) findViewById(R.id.remote_video_layout);
+ videoView = (GLSurfaceView) findViewById(R.id.glview_call);
callFragment = new CallFragment();
hudFragment = new HudFragment();
+ // Create video renderers.
+ VideoRendererGui.setView(videoView, new Runnable() {
+ @Override
+ public void run() {
+ createPeerConnectionFactory();
+ }
+ });
+ remoteRender = VideoRendererGui.create(
+ REMOTE_X, REMOTE_Y,
+ REMOTE_WIDTH, REMOTE_HEIGHT, scalingType, false);
+ localRender = VideoRendererGui.create(
+ LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING,
+ LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true);
+
// Show/hide call control fragment on view click.
- View.OnClickListener listener = new View.OnClickListener() {
+ videoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toggleCallControlFragmentVisibility();
}
- };
- localRender.setOnClickListener(listener);
- remoteRender.setOnClickListener(listener);
-
- // Create video renderers.
- rootEglBase = new EglBase();
- localRender.init(rootEglBase.getContext());
- remoteRender.init(rootEglBase.getContext());
- localRender.setZOrderMediaOverlay(true);
- updateVideoView();
+ });
// Check for mandatory permissions.
for (String permission : MANDATORY_PERMISSIONS) {
@@ -243,19 +242,19 @@
// For command line execution run connection for <runTimeMs> and exit.
if (commandLineRun && runTimeMs > 0) {
- (new Handler()).postDelayed(new Runnable() {
+ videoView.postDelayed(new Runnable() {
public void run() {
disconnect();
}
}, runTimeMs);
}
- createPeerConnectionFactory();
}
// Activity interfaces
@Override
public void onPause() {
super.onPause();
+ videoView.onPause();
activityRunning = false;
if (peerConnectionClient != null) {
peerConnectionClient.stopVideoSource();
@@ -265,6 +264,7 @@
@Override
public void onResume() {
super.onResume();
+ videoView.onResume();
activityRunning = true;
if (peerConnectionClient != null) {
peerConnectionClient.startVideoSource();
@@ -279,12 +279,6 @@
logToast.cancel();
}
activityRunning = false;
- localRender.release();
- localRender = null;
- remoteRender.release();
- remoteRender = null;
- rootEglBase.release();
- rootEglBase = null;
}
// CallFragment.OnCallEvents interface implementation.
@@ -326,23 +320,19 @@
}
private void updateVideoView() {
- remoteRenderLayout.setPosition(REMOTE_X, REMOTE_Y, REMOTE_WIDTH, REMOTE_HEIGHT);
- remoteRender.setScalingType(scalingType);
- remoteRender.setMirror(false);
-
+ VideoRendererGui.update(remoteRender,
+ REMOTE_X, REMOTE_Y,
+ REMOTE_WIDTH, REMOTE_HEIGHT, scalingType, false);
if (iceConnected) {
- localRenderLayout.setPosition(
- LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED, LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED);
- localRender.setScalingType(ScalingType.SCALE_ASPECT_FIT);
+ VideoRendererGui.update(localRender,
+ LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED,
+ LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED,
+ ScalingType.SCALE_ASPECT_FIT, true);
} else {
- localRenderLayout.setPosition(
- LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING);
- localRender.setScalingType(scalingType);
- }
- localRender.setMirror(true);
-
- localRender.requestLayout();
- remoteRender.requestLayout();
+ VideoRendererGui.update(localRender,
+ LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING,
+ LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true);
+ }
}
private void startCall() {
@@ -400,7 +390,7 @@
Log.d(TAG, "Creating peer connection factory, delay=" + delta + "ms");
peerConnectionClient = PeerConnectionClient.getInstance();
peerConnectionClient.createPeerConnectionFactory(CallActivity.this,
- rootEglBase.getContext(), peerConnectionParameters,
+ VideoRendererGui.getEGLContext(), peerConnectionParameters,
CallActivity.this);
}
if (signalingParameters != null) {

Powered by Google App Engine
This is Rietveld 408576698