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)); |