Chromium Code Reviews| Index: webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java |
| diff --git a/webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java b/webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java |
| index 85052ea3e28be26b2c5262f30d2ee09694706aa8..176992bf43967ab72990c922bfc72d55c431f73e 100644 |
| --- a/webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java |
| +++ b/webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java |
| @@ -20,7 +20,9 @@ import android.test.InstrumentationTestCase; |
| import android.test.suitebuilder.annotation.SmallTest; |
| import android.util.Log; |
| +import org.webrtc.Camera1Enumerator; |
| import org.webrtc.Camera2Enumerator; |
| +import org.webrtc.CameraEnumerator; |
| import org.webrtc.EglBase; |
| import org.webrtc.IceCandidate; |
| import org.webrtc.MediaCodecVideoEncoder; |
| @@ -28,6 +30,7 @@ import org.webrtc.PeerConnection; |
| import org.webrtc.PeerConnectionFactory; |
| import org.webrtc.SessionDescription; |
| import org.webrtc.StatsReport; |
| +import org.webrtc.VideoCapturer; |
| import org.webrtc.VideoRenderer; |
| import java.util.LinkedList; |
| @@ -241,7 +244,9 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| PeerConnectionClient createPeerConnectionClient( |
| MockRenderer localRenderer, MockRenderer remoteRenderer, |
| - PeerConnectionParameters peerConnectionParameters, EglBase.Context eglContext) { |
| + PeerConnectionParameters peerConnectionParameters, |
| + VideoCapturer videoCapturer, |
| + EglBase.Context eglContext) { |
| List<PeerConnection.IceServer> iceServers = |
| new LinkedList<PeerConnection.IceServer>(); |
| SignalingParameters signalingParameters = new SignalingParameters( |
| @@ -256,7 +261,9 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| client.setPeerConnectionFactoryOptions(options); |
| client.createPeerConnectionFactory( |
| getInstrumentation().getTargetContext(), peerConnectionParameters, this); |
| - client.createPeerConnection(eglContext, localRenderer, remoteRenderer, signalingParameters); |
| + client.createPeerConnection( |
| + eglContext, localRenderer, remoteRenderer, |
| + videoCapturer, signalingParameters); |
| client.createOffer(); |
| return client; |
| } |
| @@ -268,55 +275,64 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| true, /* loopback */ |
| false, /* tracing */ |
| // Video codec parameters. |
| - true, /* useCamera2 */ |
| 0, /* videoWidth */ |
| 0, /* videoHeight */ |
| 0, /* videoFps */ |
| 0, /* videoStartBitrate */ |
| "", /* videoCodec */ |
| true, /* videoCodecHwAcceleration */ |
| - false, /* captureToToTexture */ |
| // Audio codec parameters. |
| 0, /* audioStartBitrate */ |
| "OPUS", /* audioCodec */ |
| false, /* noAudioProcessing */ |
| false, /* aecDump */ |
| - false /* useOpenSLES */, |
| - false /* disableBuiltInAEC */, |
| - false /* disableBuiltInAGC */, |
| - false /* disableBuiltInNS */, |
| + false, /* useOpenSLES */ |
| + false, /* disableBuiltInAEC */ |
| + false, /* disableBuiltInAGC */ |
| + false, /* disableBuiltInNS */ |
| false /* enableLevelControl */); |
| + |
| return peerConnectionParameters; |
| } |
| - private PeerConnectionParameters createParametersForVideoCall( |
| - String videoCodec, boolean captureToTexture) { |
| + private VideoCapturer createVideoCapturer(boolean captureToTexture) { |
| final boolean useCamera2 = captureToTexture && Camera2Enumerator.isSupported(); |
|
sakal
2016/10/05 13:28:42
isSupported now takes context as a parameter, plea
|
| + CameraEnumerator enumerator; |
| + if (useCamera2) { |
| + enumerator = new Camera2Enumerator(getInstrumentation().getTargetContext()); |
| + } else { |
| + enumerator = new Camera1Enumerator(captureToTexture); |
| + } |
| + String deviceName = enumerator.getDeviceNames()[0]; |
| + return enumerator.createCapturer(deviceName, null); |
| + } |
| + |
| + private PeerConnectionParameters createParametersForVideoCall( |
| + String videoCodec) { |
| PeerConnectionParameters peerConnectionParameters = |
| new PeerConnectionParameters( |
| true, /* videoCallEnabled */ |
| true, /* loopback */ |
| false, /* tracing */ |
| // Video codec parameters. |
| - useCamera2, /* useCamera2 */ |
| 0, /* videoWidth */ |
| 0, /* videoHeight */ |
| 0, /* videoFps */ |
| 0, /* videoStartBitrate */ |
| videoCodec, /* videoCodec */ |
| true, /* videoCodecHwAcceleration */ |
| - captureToTexture, /* captureToToTexture */ |
| // Audio codec parameters. |
| 0, /* audioStartBitrate */ |
| "OPUS", /* audioCodec */ |
| false, /* noAudioProcessing */ |
| false, /* aecDump */ |
| - false /* useOpenSLES */, |
| - false /* disableBuiltInAEC */, |
| - false /* disableBuiltInAGC */, |
| - false /* disableBuiltInNS */, |
| + false, /* useOpenSLES */ |
| + false, /* disableBuiltInAEC */ |
| + false, /* disableBuiltInAGC */ |
| + false, /* disableBuiltInNS */ |
| false /* enableLevelControl */); |
| + |
| return peerConnectionParameters; |
| } |
| @@ -343,7 +359,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME); |
| pcClient = createPeerConnectionClient( |
| localRenderer, new MockRenderer(0, null), |
| - createParametersForVideoCall(VIDEO_CODEC_VP8, false), null); |
| + createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), null); |
| // Wait for local SDP and ice candidates set events. |
| assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |
| @@ -360,7 +377,10 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.d(TAG, "testSetLocalOfferMakesVideoFlowLocally Done."); |
| } |
| - private void doLoopbackTest(PeerConnectionParameters parameters, boolean decodeToTexure) |
| + private void doLoopbackTest( |
| + PeerConnectionParameters parameters, |
| + VideoCapturer videoCapturer, |
| + boolean decodeToTexure) |
|
sakal
2016/10/05 13:28:42
nit: can you fix the typo in the parameter name
mandermo
2016/10/07 11:33:41
Done.
|
| throws InterruptedException { |
| loopback = true; |
| MockRenderer localRenderer = null; |
| @@ -372,7 +392,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| } else { |
| Log.d(TAG, "testLoopback for audio."); |
| } |
| - pcClient = createPeerConnectionClient(localRenderer, remoteRenderer, parameters, |
| + pcClient = createPeerConnectionClient(localRenderer, remoteRenderer, |
| + parameters, videoCapturer, |
| decodeToTexure ? eglBase.getEglBaseContext() : null); |
| // Wait for local SDP, rename it to answer and set as remote SDP. |
| @@ -404,22 +425,27 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| @SmallTest |
| public void testLoopbackAudio() throws InterruptedException { |
| - doLoopbackTest(createParametersForAudioCall(), false); |
| + doLoopbackTest(createParametersForAudioCall(), null, false); |
| } |
| @SmallTest |
| public void testLoopbackVp8() throws InterruptedException { |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, false), false); |
| + doLoopbackTest( |
| + createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), false); |
| } |
| @SmallTest |
| public void testLoopbackVp9() throws InterruptedException { |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP9, false), false); |
| + doLoopbackTest( |
| + createParametersForVideoCall(VIDEO_CODEC_VP9), |
| + createVideoCapturer(false), false); |
| } |
| @SmallTest |
| public void testLoopbackH264() throws InterruptedException { |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264, false), false); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264), |
| + createVideoCapturer(false), false); |
| } |
| @SmallTest |
| @@ -428,7 +454,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.i(TAG, "Decode to textures is not supported, requires SDK version 19."); |
| return; |
| } |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, false), true); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), true); |
| } |
| @SmallTest |
| @@ -437,7 +464,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.i(TAG, "Decode to textures is not supported, requires SDK version 19."); |
| return; |
| } |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP9, false), true); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP9), |
| + createVideoCapturer(false), true); |
| } |
| @SmallTest |
| @@ -446,7 +474,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.i(TAG, "Decode to textures is not supported, requires SDK version 19."); |
| return; |
| } |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264, false), true); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264), |
| + createVideoCapturer(false), true); |
| } |
| @SmallTest |
| @@ -461,7 +490,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.i(TAG, "VP8 encode to textures is not supported."); |
| return; |
| } |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, true), true); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(true), true); |
| } |
| // Test that a call can be setup even if the EGL context used during initialization is |
| @@ -475,11 +505,12 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| } |
| loopback = true; |
| - PeerConnectionParameters parameters = createParametersForVideoCall(VIDEO_CODEC_VP8, true); |
| + PeerConnectionParameters parameters = createParametersForVideoCall(VIDEO_CODEC_VP8); |
| MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_RENDERER_NAME); |
| MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME); |
| pcClient = createPeerConnectionClient( |
| - localRenderer, remoteRenderer, parameters, eglBase.getEglBaseContext()); |
| + localRenderer, remoteRenderer, parameters, createVideoCapturer(true), |
| + eglBase.getEglBaseContext()); |
| // Wait for local SDP, rename it to answer and set as remote SDP. |
| assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |
| @@ -520,7 +551,8 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| Log.i(TAG, "H264 encode to textures is not supported."); |
| return; |
| } |
| - doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264, true), true); |
| + doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_H264), |
| + createVideoCapturer(true), true); |
| } |
| @@ -535,7 +567,9 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME); |
| pcClient = createPeerConnectionClient( |
| - localRenderer, remoteRenderer, createParametersForVideoCall(VIDEO_CODEC_VP8, false), null); |
| + localRenderer, remoteRenderer, |
| + createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), null); |
| // Wait for local SDP, rename it to answer and set as remote SDP. |
| assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |
| @@ -582,7 +616,9 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME); |
| pcClient = createPeerConnectionClient( |
| - localRenderer, remoteRenderer, createParametersForVideoCall(VIDEO_CODEC_VP8, false), null); |
| + localRenderer, remoteRenderer, |
| + createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), null); |
| // Wait for local SDP, rename it to answer and set as remote SDP. |
| assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |
| @@ -630,7 +666,9 @@ public class PeerConnectionClientTest extends InstrumentationTestCase |
| MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE_RENDERER_NAME); |
| pcClient = createPeerConnectionClient( |
| - localRenderer, remoteRenderer, createParametersForVideoCall(VIDEO_CODEC_VP8, false), null); |
| + localRenderer, remoteRenderer, |
| + createParametersForVideoCall(VIDEO_CODEC_VP8), |
| + createVideoCapturer(false), null); |
| // Wait for local SDP, rename it to answer and set as remote SDP. |
| assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |