| Index: webrtc/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
|
| diff --git a/webrtc/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java b/webrtc/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
|
| index b55b50b96a7a1006f980ef7ab4c19a9ca85c2881..91bb39fbb7ec1651d6c075282184c81d26cb4878 100644
|
| --- a/webrtc/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
|
| +++ b/webrtc/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
|
| @@ -509,20 +509,8 @@ class CameraVideoCapturerTestFixtures {
|
| }
|
|
|
| @TargetApi(21)
|
| - public void updateMediaRecorder(boolean useSurfaceCapture)
|
| - throws InterruptedException, IOException {
|
| - final CapturerInstance capturerInstance = createCapturer(false /* initialize */);
|
| - final VideoTrackWithRenderer videoTrackWithRenderer =
|
| - createVideoTrackWithRenderer(capturerInstance.capturer);
|
| - // Wait for the camera to start so we can add and remove MediaRecorder.
|
| - assertTrue(videoTrackWithRenderer.rendererCallbacks.waitForNextFrameToRender() > 0);
|
| -
|
| - final String videoOutPath = Environment.getExternalStorageDirectory().getPath()
|
| - + "/chromium_tests_root/testmediarecorder.mp4";
|
| - File outputFile = new File(videoOutPath);
|
| -
|
| - // Create MediaRecorder object
|
| - MediaRecorder mediaRecorder = new MediaRecorder();
|
| + private static void prepareMediaRecorderForTests(
|
| + MediaRecorder mediaRecorder, File outputFile, boolean useSurfaceCapture) throws IOException {
|
| mediaRecorder.setVideoSource(
|
| useSurfaceCapture ? MediaRecorder.VideoSource.SURFACE : MediaRecorder.VideoSource.CAMERA);
|
| CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
|
| @@ -537,6 +525,28 @@ class CameraVideoCapturerTestFixtures {
|
| mediaRecorder.setVideoEncoder(profile.videoCodec);
|
| mediaRecorder.setOutputFile(outputFile.getPath());
|
| mediaRecorder.prepare();
|
| + }
|
| +
|
| + @TargetApi(21)
|
| + public void updateMediaRecorder(boolean useSurfaceCapture)
|
| + throws InterruptedException, IOException {
|
| + final CapturerInstance capturerInstance = createCapturer(false /* initialize */);
|
| + final VideoTrackWithRenderer videoTrackWithRenderer =
|
| + createVideoTrackWithRenderer(capturerInstance.capturer);
|
| + // Wait for the camera to start so we can add and remove MediaRecorder.
|
| + assertTrue(videoTrackWithRenderer.rendererCallbacks.waitForNextFrameToRender() > 0);
|
| +
|
| + final String videoOutPath = Environment.getExternalStorageDirectory().getPath()
|
| + + "/chromium_tests_root/testmediarecorder.mp4";
|
| + File outputFile = new File(videoOutPath);
|
| +
|
| + // Create MediaRecorder object
|
| + MediaRecorder mediaRecorder = new MediaRecorder();
|
| + if (useSurfaceCapture) {
|
| + // When using using surface capture, media recorder has to be prepared before adding it to the
|
| + // camera.
|
| + prepareMediaRecorderForTests(mediaRecorder, outputFile, useSurfaceCapture);
|
| + }
|
|
|
| // Add MediaRecorder to camera pipeline.
|
| final boolean[] addMediaRecorderSuccessful = new boolean[1];
|
| @@ -550,6 +560,7 @@ class CameraVideoCapturerTestFixtures {
|
| }
|
| @Override
|
| public void onMediaRecorderError(String errorDescription) {
|
| + Logging.e(TAG, errorDescription);
|
| addMediaRecorderSuccessful[0] = false;
|
| addBarrier.countDown();
|
| }
|
| @@ -561,6 +572,11 @@ class CameraVideoCapturerTestFixtures {
|
| assertTrue(addMediaRecorderSuccessful[0]);
|
|
|
| // Start MediaRecorder and wait for a few frames to capture.
|
| + if (!useSurfaceCapture) {
|
| + // When using using camera capture, media recorder has to be prepared after adding it to the
|
| + // camera.
|
| + prepareMediaRecorderForTests(mediaRecorder, outputFile, useSurfaceCapture);
|
| + }
|
| mediaRecorder.start();
|
| for (int i = 0; i < 5; i++) {
|
| assertTrue(videoTrackWithRenderer.rendererCallbacks.waitForNextFrameToRender() > 0);
|
|
|