Revert of Support adding and removing MediaRecorder to camera 2 session. (patchset #5 id:80001 of https://codereview.webrtc.org/2833773003/ )
Reason for revert:
Breaks external bot
Original issue's description:
> Support adding and removing MediaRecorder to camera 2 session.
>
> Camera 1 API is not supported.
>
> BUG=b/36684011
>
> Review-Url: https://codereview.webrtc.org/2833773003
> Cr-Commit-Position: refs/heads/master@{#17901}
> Committed: https://chromium.googlesource.com/external/webrtc/+/2fc04769faec0031a202963eaeb602420a082c07
TBR=sakal@webrtc.org,glaznev@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=b/36684011
Review-Url: https://codereview.webrtc.org/2844233002
Cr-Original-Commit-Position: refs/heads/master@{#17905}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 6702739862e292f3556a9e63c71367f49c3895b4
diff --git a/sdk/android/api/org/webrtc/Camera1Capturer.java b/sdk/android/api/org/webrtc/Camera1Capturer.java
index f2a813f..fba5711 100644
--- a/sdk/android/api/org/webrtc/Camera1Capturer.java
+++ b/sdk/android/api/org/webrtc/Camera1Capturer.java
@@ -10,8 +10,11 @@
package org.webrtc;
+import org.webrtc.CameraEnumerationAndroid.CaptureFormat;
+
import android.content.Context;
-import android.media.MediaRecorder;
+
+import java.util.List;
public class Camera1Capturer extends CameraCapturer {
private final boolean captureToTexture;
@@ -26,11 +29,8 @@
@Override
protected void createCameraSession(CameraSession.CreateSessionCallback createSessionCallback,
CameraSession.Events events, Context applicationContext,
- SurfaceTextureHelper surfaceTextureHelper, MediaRecorder mediaRecorder, String cameraName,
- int width, int height, int framerate) {
- if (mediaRecorder != null) {
- throw new RuntimeException("MediaRecoder is not supported for camera 1.");
- }
+ SurfaceTextureHelper surfaceTextureHelper, String cameraName, int width, int height,
+ int framerate) {
Camera1Session.create(createSessionCallback, events, captureToTexture, applicationContext,
surfaceTextureHelper, Camera1Enumerator.getCameraIndex(cameraName), width, height,
framerate);
diff --git a/sdk/android/api/org/webrtc/Camera2Capturer.java b/sdk/android/api/org/webrtc/Camera2Capturer.java
index 769a94a..7718f5a 100644
--- a/sdk/android/api/org/webrtc/Camera2Capturer.java
+++ b/sdk/android/api/org/webrtc/Camera2Capturer.java
@@ -13,7 +13,6 @@
import android.annotation.TargetApi;
import android.content.Context;
import android.hardware.camera2.CameraManager;
-import android.media.MediaRecorder;
@TargetApi(21)
public class Camera2Capturer extends CameraCapturer {
@@ -30,9 +29,9 @@
@Override
protected void createCameraSession(CameraSession.CreateSessionCallback createSessionCallback,
CameraSession.Events events, Context applicationContext,
- SurfaceTextureHelper surfaceTextureHelper, MediaRecorder mediaRecoder, String cameraName,
- int width, int height, int framerate) {
+ SurfaceTextureHelper surfaceTextureHelper, String cameraName, int width, int height,
+ int framerate) {
Camera2Session.create(createSessionCallback, events, applicationContext, cameraManager,
- surfaceTextureHelper, mediaRecoder, cameraName, width, height, framerate);
+ surfaceTextureHelper, cameraName, width, height, framerate);
}
}
diff --git a/sdk/android/api/org/webrtc/CameraVideoCapturer.java b/sdk/android/api/org/webrtc/CameraVideoCapturer.java
index be9d669..283d5d1 100644
--- a/sdk/android/api/org/webrtc/CameraVideoCapturer.java
+++ b/sdk/android/api/org/webrtc/CameraVideoCapturer.java
@@ -10,8 +10,6 @@
package org.webrtc;
-import android.media.MediaRecorder;
-
/**
* Base interface for camera1 and camera2 implementations. Extends VideoCapturer with a
* switchCamera() function. Also provides subinterfaces for handling camera events, and a helper
@@ -62,32 +60,6 @@
void switchCamera(CameraSwitchHandler switchEventsHandler);
/**
- * MediaRecorder add/remove handler - one of these functions are invoked with the result of
- * addMediaRecorderToCamera() or removeMediaRecorderFromCamera calls.
- * The callback may be called on an arbitrary thread.
- */
- public interface MediaRecorderHandler {
- // Invoked on success.
- void onMediaRecorderSuccess();
-
- // Invoked on failure, e.g. camera is stopped or any exception happens.
- void onMediaRecorderError(String errorDescription);
- }
-
- /**
- * Add MediaRecorder to camera pipeline. This can only be called while the camera is running.
- * Once MediaRecorder is added to camera pipeline camera switch is not allowed.
- * This function can be called from any thread.
- */
- void addMediaRecorderToCamera(MediaRecorder mediaRecorder, MediaRecorderHandler resultHandler);
-
- /**
- * Remove MediaRecorder from camera pipeline. This can only be called while the camera is running.
- * This function can be called from any thread.
- */
- void removeMediaRecorderFromCamera(MediaRecorderHandler resultHandler);
-
- /**
* Helper class to log framerate and detect if the camera freezes. It will run periodic callbacks
* on the SurfaceTextureHelper thread passed in the ctor, and should only be operated from that
* thread.
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java b/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
index 6b6b18d..a752cf0 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
@@ -25,7 +25,6 @@
import android.support.test.filters.LargeTest;
import android.support.test.filters.MediumTest;
import android.support.test.filters.SmallTest;
-import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.junit.After;
@@ -245,12 +244,6 @@
fixtures.cameraEventsInvoked();
}
- @Test
- @MediumTest
- public void testUpdateMediaRecorder() throws InterruptedException, IOException {
- fixtures.updateMediaRecorder(true /* useSurfaceCapture */);
- }
-
// Test what happens when attempting to call e.g. switchCamera() after camera has been stopped.
@Test
@MediumTest
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java b/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
index b55b50b..8f2babc 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
@@ -15,13 +15,7 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import android.annotation.TargetApi;
import android.content.Context;
-import android.media.CamcorderProfile;
-import android.media.MediaRecorder;
-import android.os.Environment;
-import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -508,95 +502,6 @@
disposeVideoTrackWithRenderer(videoTrackWithRenderer);
}
- @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();
- mediaRecorder.setVideoSource(
- useSurfaceCapture ? MediaRecorder.VideoSource.SURFACE : MediaRecorder.VideoSource.CAMERA);
- CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
- profile.videoCodec = MediaRecorder.VideoEncoder.H264;
- profile.videoBitRate = 2500000;
- profile.videoFrameWidth = 640;
- profile.videoFrameHeight = 480;
- mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
- mediaRecorder.setVideoFrameRate(profile.videoFrameRate);
- mediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
- mediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
- mediaRecorder.setVideoEncoder(profile.videoCodec);
- mediaRecorder.setOutputFile(outputFile.getPath());
- mediaRecorder.prepare();
-
- // Add MediaRecorder to camera pipeline.
- final boolean[] addMediaRecorderSuccessful = new boolean[1];
- final CountDownLatch addBarrier = new CountDownLatch(1);
- CameraVideoCapturer.MediaRecorderHandler addMediaRecorderHandler =
- new CameraVideoCapturer.MediaRecorderHandler() {
- @Override
- public void onMediaRecorderSuccess() {
- addMediaRecorderSuccessful[0] = true;
- addBarrier.countDown();
- }
- @Override
- public void onMediaRecorderError(String errorDescription) {
- addMediaRecorderSuccessful[0] = false;
- addBarrier.countDown();
- }
- };
- capturerInstance.capturer.addMediaRecorderToCamera(mediaRecorder, addMediaRecorderHandler);
- // Wait until MediaRecoder has been added.
- addBarrier.await();
- // Check result.
- assertTrue(addMediaRecorderSuccessful[0]);
-
- // Start MediaRecorder and wait for a few frames to capture.
- mediaRecorder.start();
- for (int i = 0; i < 5; i++) {
- assertTrue(videoTrackWithRenderer.rendererCallbacks.waitForNextFrameToRender() > 0);
- }
- mediaRecorder.stop();
-
- // Remove MediaRecorder from camera pipeline.
- final boolean[] removeMediaRecorderSuccessful = new boolean[1];
- final CountDownLatch removeBarrier = new CountDownLatch(1);
- CameraVideoCapturer.MediaRecorderHandler removeMediaRecorderHandler =
- new CameraVideoCapturer.MediaRecorderHandler() {
- @Override
- public void onMediaRecorderSuccess() {
- removeMediaRecorderSuccessful[0] = true;
- removeBarrier.countDown();
- }
- @Override
- public void onMediaRecorderError(String errorDescription) {
- removeMediaRecorderSuccessful[0] = false;
- removeBarrier.countDown();
- }
- };
- capturerInstance.capturer.removeMediaRecorderFromCamera(removeMediaRecorderHandler);
- // Wait until MediaRecoder has been removed.
- removeBarrier.await();
- // Check result.
- assertTrue(removeMediaRecorderSuccessful[0]);
- // Ensure that frames are received after removing MediaRecorder.
- assertTrue(videoTrackWithRenderer.rendererCallbacks.waitForNextFrameToRender() > 0);
- // Check that recorded file contains some data.
- assertTrue(outputFile.length() > 0);
-
- disposeCapturer(capturerInstance);
- disposeVideoTrackWithRenderer(videoTrackWithRenderer);
- }
-
public void cameraEventsInvoked() throws InterruptedException {
final CapturerInstance capturerInstance = createCapturer(true /* initialize */);
startCapture(capturerInstance);
diff --git a/sdk/android/src/java/org/webrtc/Camera2Session.java b/sdk/android/src/java/org/webrtc/Camera2Session.java
index 8de5be0..3279782 100644
--- a/sdk/android/src/java/org/webrtc/Camera2Session.java
+++ b/sdk/android/src/java/org/webrtc/Camera2Session.java
@@ -21,12 +21,11 @@
import android.hardware.camera2.CameraMetadata;
import android.hardware.camera2.CaptureFailure;
import android.hardware.camera2.CaptureRequest;
-import android.media.MediaRecorder;
import android.os.Handler;
import android.util.Range;
import android.view.Surface;
import android.view.WindowManager;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.webrtc.CameraEnumerationAndroid.CaptureFormat;
@@ -50,7 +49,6 @@
private final Context applicationContext;
private final CameraManager cameraManager;
private final SurfaceTextureHelper surfaceTextureHelper;
- private final Surface mediaRecorderSurface;
private final String cameraId;
private final int width;
private final int height;
@@ -125,14 +123,9 @@
final SurfaceTexture surfaceTexture = surfaceTextureHelper.getSurfaceTexture();
surfaceTexture.setDefaultBufferSize(captureFormat.width, captureFormat.height);
surface = new Surface(surfaceTexture);
- List<Surface> surfaces = new ArrayList<Surface>();
- surfaces.add(surface);
- if (mediaRecorderSurface != null) {
- Logging.d(TAG, "Add MediaRecorder surface to capture session.");
- surfaces.add(mediaRecorderSurface);
- }
try {
- camera.createCaptureSession(surfaces, new CaptureSessionCallback(), cameraThreadHandler);
+ camera.createCaptureSession(
+ Arrays.asList(surface), new CaptureSessionCallback(), cameraThreadHandler);
} catch (CameraAccessException e) {
reportError("Failed to create capture session. " + e);
return;
@@ -182,10 +175,6 @@
chooseFocusMode(captureRequestBuilder);
captureRequestBuilder.addTarget(surface);
- if (mediaRecorderSurface != null) {
- Logging.d(TAG, "Add MediaRecorder surface to CaptureRequest.Builder");
- captureRequestBuilder.addTarget(mediaRecorderSurface);
- }
session.setRepeatingRequest(
captureRequestBuilder.build(), new CameraCaptureCallback(), cameraThreadHandler);
} catch (CameraAccessException e) {
@@ -291,15 +280,15 @@
public static void create(CreateSessionCallback callback, Events events,
Context applicationContext, CameraManager cameraManager,
- SurfaceTextureHelper surfaceTextureHelper, MediaRecorder mediaRecorder, String cameraId,
- int width, int height, int framerate) {
+ SurfaceTextureHelper surfaceTextureHelper, String cameraId, int width, int height,
+ int framerate) {
new Camera2Session(callback, events, applicationContext, cameraManager, surfaceTextureHelper,
- mediaRecorder, cameraId, width, height, framerate);
+ cameraId, width, height, framerate);
}
private Camera2Session(CreateSessionCallback callback, Events events, Context applicationContext,
- CameraManager cameraManager, SurfaceTextureHelper surfaceTextureHelper,
- MediaRecorder mediaRecorder, String cameraId, int width, int height, int framerate) {
+ CameraManager cameraManager, SurfaceTextureHelper surfaceTextureHelper, String cameraId,
+ int width, int height, int framerate) {
Logging.d(TAG, "Create new camera2 session on camera " + cameraId);
constructionTimeNs = System.nanoTime();
@@ -310,7 +299,6 @@
this.applicationContext = applicationContext;
this.cameraManager = cameraManager;
this.surfaceTextureHelper = surfaceTextureHelper;
- this.mediaRecorderSurface = (mediaRecorder != null) ? mediaRecorder.getSurface() : null;
this.cameraId = cameraId;
this.width = width;
this.height = height;
diff --git a/sdk/android/src/java/org/webrtc/CameraCapturer.java b/sdk/android/src/java/org/webrtc/CameraCapturer.java
index 859b7f7..c3e8daa 100644
--- a/sdk/android/src/java/org/webrtc/CameraCapturer.java
+++ b/sdk/android/src/java/org/webrtc/CameraCapturer.java
@@ -11,7 +11,6 @@
package org.webrtc;
import android.content.Context;
-import android.media.MediaRecorder;
import android.os.Handler;
import android.os.Looper;
import java.util.Arrays;
@@ -24,13 +23,6 @@
IN_PROGRESS, // Waiting for new switched capture session to start.
}
- enum MediaRecorderState {
- IDLE, // No media recording update (add or remove) requested.
- IDLE_TO_ACTIVE, // Waiting for new capture session with added MediaRecorder surface to start.
- ACTIVE_TO_IDLE, // Waiting for new capture session with removed MediaRecorder surface to start.
- ACTIVE, // MediaRecorder was successfully added to camera pipeline.
- }
-
private static final String TAG = "CameraCapturer";
private final static int MAX_OPEN_CAMERA_ATTEMPTS = 3;
private final static int OPEN_CAMERA_DELAY_MS = 500;
@@ -45,9 +37,7 @@
@Override
public void onDone(CameraSession session) {
checkIsOnCameraThread();
- Logging.d(TAG,
- "Create session done. Switch state: " + switchState
- + ". MediaRecorder state: " + mediaRecorderState);
+ Logging.d(TAG, "Create session done");
uiThreadHandler.removeCallbacks(openCameraTimeoutRunnable);
synchronized (stateLock) {
capturerObserver.onCapturerStarted(true /* success */);
@@ -67,19 +57,6 @@
switchState = SwitchState.IDLE;
switchCameraInternal(switchEventsHandler);
}
-
- if (mediaRecorderState == MediaRecorderState.IDLE_TO_ACTIVE
- || mediaRecorderState == MediaRecorderState.ACTIVE_TO_IDLE) {
- if (mediaRecorderEventsHandler != null) {
- mediaRecorderEventsHandler.onMediaRecorderSuccess();
- mediaRecorderEventsHandler = null;
- }
- if (mediaRecorderState == MediaRecorderState.IDLE_TO_ACTIVE) {
- mediaRecorderState = MediaRecorderState.ACTIVE;
- } else {
- mediaRecorderState = MediaRecorderState.IDLE;
- }
- }
}
}
@@ -104,14 +81,6 @@
switchState = SwitchState.IDLE;
}
- if (mediaRecorderState != MediaRecorderState.IDLE) {
- if (mediaRecorderEventsHandler != null) {
- mediaRecorderEventsHandler.onMediaRecorderError(error);
- mediaRecorderEventsHandler = null;
- }
- mediaRecorderState = MediaRecorderState.IDLE;
- }
-
if (failureType == CameraSession.FailureType.DISCONNECTED) {
eventsHandler.onCameraDisconnected();
} else {
@@ -119,7 +88,8 @@
}
} else {
Logging.w(TAG, "Opening camera failed, retry: " + error);
- createSessionInternal(OPEN_CAMERA_DELAY_MS, null /* mediaRecorder */);
+
+ createSessionInternal(OPEN_CAMERA_DELAY_MS);
}
}
}
@@ -243,10 +213,6 @@
private CameraStatistics cameraStatistics; /* guarded by stateLock */
private boolean firstFrameObserved; /* guarded by stateLock */
- // Variables used on camera thread - do not require stateLock synchronization.
- private MediaRecorderState mediaRecorderState = MediaRecorderState.IDLE;
- private MediaRecorderHandler mediaRecorderEventsHandler;
-
public CameraCapturer(
String cameraName, CameraEventsHandler eventsHandler, CameraEnumerator cameraEnumerator) {
if (eventsHandler == null) {
@@ -311,17 +277,17 @@
sessionOpening = true;
openAttemptsRemaining = MAX_OPEN_CAMERA_ATTEMPTS;
- createSessionInternal(0, null /* mediaRecorder */);
+ createSessionInternal(0);
}
}
- private void createSessionInternal(int delayMs, final MediaRecorder mediaRecorder) {
+ private void createSessionInternal(int delayMs) {
uiThreadHandler.postDelayed(openCameraTimeoutRunnable, delayMs + OPEN_CAMERA_TIMEOUT);
cameraThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
createCameraSession(createSessionCallback, cameraSessionEventsHandler, applicationContext,
- surfaceHelper, mediaRecorder, cameraName, width, height, framerate);
+ surfaceHelper, cameraName, width, height, framerate);
}
}, delayMs);
}
@@ -384,29 +350,6 @@
}
@Override
- public void addMediaRecorderToCamera(
- final MediaRecorder mediaRecorder, final MediaRecorderHandler mediaRecoderEventsHandler) {
- Logging.d(TAG, "addMediaRecorderToCamera");
- cameraThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- updateMediaRecorderInternal(mediaRecorder, mediaRecoderEventsHandler);
- }
- });
- }
-
- @Override
- public void removeMediaRecorderFromCamera(final MediaRecorderHandler mediaRecoderEventsHandler) {
- Logging.d(TAG, "removeMediaRecorderFromCamera");
- cameraThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- updateMediaRecorderInternal(null /* mediaRecorder */, mediaRecoderEventsHandler);
- }
- });
- }
-
- @Override
public boolean isScreencast() {
return false;
}
@@ -427,13 +370,6 @@
}
}
- private void reportCameraSwitchError(String error, CameraSwitchHandler switchEventsHandler) {
- Logging.e(TAG, error);
- if (switchEventsHandler != null) {
- switchEventsHandler.onCameraSwitchError(error);
- }
- }
-
private void switchCameraInternal(final CameraSwitchHandler switchEventsHandler) {
Logging.d(TAG, "switchCamera internal");
@@ -448,15 +384,18 @@
synchronized (stateLock) {
if (switchState != SwitchState.IDLE) {
- reportCameraSwitchError("Camera switch already in progress.", switchEventsHandler);
+ Logging.d(TAG, "switchCamera switchInProgress");
+ if (switchEventsHandler != null) {
+ switchEventsHandler.onCameraSwitchError("Camera switch already in progress.");
+ }
return;
}
- if (mediaRecorderState != MediaRecorderState.IDLE) {
- reportCameraSwitchError("switchCamera: media recording is active", switchEventsHandler);
- return;
- }
+
if (!sessionOpening && currentSession == null) {
- reportCameraSwitchError("switchCamera: camera is not running.", switchEventsHandler);
+ Logging.d(TAG, "switchCamera: No session open");
+ if (switchEventsHandler != null) {
+ switchEventsHandler.onCameraSwitchError("Camera is not running.");
+ }
return;
}
@@ -485,74 +424,11 @@
sessionOpening = true;
openAttemptsRemaining = 1;
- createSessionInternal(0, null /* mediaRecorder */);
+ createSessionInternal(0);
}
Logging.d(TAG, "switchCamera done");
}
- private void reportUpdateMediaRecorderError(
- String error, MediaRecorderHandler mediaRecoderEventsHandler) {
- checkIsOnCameraThread();
- Logging.e(TAG, error);
- if (mediaRecoderEventsHandler != null) {
- mediaRecoderEventsHandler.onMediaRecorderError(error);
- }
- }
-
- private void updateMediaRecorderInternal(
- MediaRecorder mediaRecorder, MediaRecorderHandler mediaRecoderEventsHandler) {
- checkIsOnCameraThread();
- boolean addMediaRecorder = (mediaRecorder != null);
- Logging.d(TAG,
- "updateMediaRecoderInternal internal. State: " + mediaRecorderState
- + ". Switch state: " + switchState + ". Add MediaRecorder: " + addMediaRecorder);
-
- synchronized (stateLock) {
- if ((addMediaRecorder && mediaRecorderState != MediaRecorderState.IDLE)
- || (!addMediaRecorder && mediaRecorderState != MediaRecorderState.ACTIVE)) {
- reportUpdateMediaRecorderError(
- "Incorrect state for MediaRecorder update.", mediaRecoderEventsHandler);
- return;
- }
- if (switchState != SwitchState.IDLE) {
- reportUpdateMediaRecorderError(
- "MediaRecorder update while camera is switching.", mediaRecoderEventsHandler);
- return;
- }
- if (currentSession == null) {
- reportUpdateMediaRecorderError(
- "MediaRecorder update while camera is closed.", mediaRecoderEventsHandler);
- return;
- }
- if (sessionOpening) {
- reportUpdateMediaRecorderError(
- "MediaRecorder update while camera is still opening.", mediaRecoderEventsHandler);
- return;
- }
-
- this.mediaRecorderEventsHandler = mediaRecoderEventsHandler;
- mediaRecorderState =
- addMediaRecorder ? MediaRecorderState.IDLE_TO_ACTIVE : MediaRecorderState.ACTIVE_TO_IDLE;
-
- Logging.d(TAG, "updateMediaRecoder: Stopping session");
- cameraStatistics.release();
- cameraStatistics = null;
- final CameraSession oldSession = currentSession;
- cameraThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- oldSession.stop();
- }
- });
- currentSession = null;
-
- sessionOpening = true;
- openAttemptsRemaining = 1;
- createSessionInternal(0, mediaRecorder);
- }
- Logging.d(TAG, "updateMediaRecoderInternal done");
- }
-
private void checkIsOnCameraThread() {
if (Thread.currentThread() != cameraThreadHandler.getLooper().getThread()) {
Logging.e(TAG, "Check is on camera thread failed.");
@@ -568,6 +444,6 @@
abstract protected void createCameraSession(
CameraSession.CreateSessionCallback createSessionCallback, CameraSession.Events events,
- Context applicationContext, SurfaceTextureHelper surfaceTextureHelper,
- MediaRecorder mediaRecoder, String cameraName, int width, int height, int framerate);
+ Context applicationContext, SurfaceTextureHelper surfaceTextureHelper, String cameraName,
+ int width, int height, int framerate);
}