Index: webrtc/sdk/android/src/java/org/webrtc/Camera1Session.java |
diff --git a/webrtc/sdk/android/src/java/org/webrtc/Camera1Session.java b/webrtc/sdk/android/src/java/org/webrtc/Camera1Session.java |
index 77faa508c4d3549a489b1c5d76975833805bf02e..d1950690c34f7f1b10a413e6ab1ca17a42621088 100644 |
--- a/webrtc/sdk/android/src/java/org/webrtc/Camera1Session.java |
+++ b/webrtc/sdk/android/src/java/org/webrtc/Camera1Session.java |
@@ -11,6 +11,7 @@ |
package org.webrtc; |
import android.content.Context; |
+import android.media.MediaRecorder; |
import android.os.Handler; |
import android.os.SystemClock; |
import android.view.Surface; |
@@ -52,8 +53,8 @@ class Camera1Session implements CameraSession { |
public static void create(final CreateSessionCallback callback, final Events events, |
final boolean captureToTexture, final Context applicationContext, |
- final SurfaceTextureHelper surfaceTextureHelper, final int cameraId, final int width, |
- final int height, final int framerate) { |
+ final SurfaceTextureHelper surfaceTextureHelper, final MediaRecorder mediaRecorder, |
+ final int cameraId, final int width, final int height, final int framerate) { |
final long constructionTimeNs = System.nanoTime(); |
Logging.d(TAG, "Open camera " + cameraId); |
events.onCameraOpening(); |
@@ -96,8 +97,9 @@ class Camera1Session implements CameraSession { |
// Calculate orientation manually and send it as CVO insted. |
camera.setDisplayOrientation(0 /* degrees */); |
- callback.onDone(new Camera1Session(events, captureToTexture, applicationContext, |
- surfaceTextureHelper, cameraId, camera, info, captureFormat, constructionTimeNs)); |
+ callback.onDone( |
+ new Camera1Session(events, captureToTexture, applicationContext, surfaceTextureHelper, |
+ mediaRecorder, cameraId, camera, info, captureFormat, constructionTimeNs)); |
} |
private static void updateCameraParameters(android.hardware.Camera camera, |
@@ -145,9 +147,9 @@ class Camera1Session implements CameraSession { |
} |
private Camera1Session(Events events, boolean captureToTexture, Context applicationContext, |
- SurfaceTextureHelper surfaceTextureHelper, int cameraId, android.hardware.Camera camera, |
- android.hardware.Camera.CameraInfo info, CaptureFormat captureFormat, |
- long constructionTimeNs) { |
+ SurfaceTextureHelper surfaceTextureHelper, MediaRecorder mediaRecorder, int cameraId, |
+ android.hardware.Camera camera, android.hardware.Camera.CameraInfo info, |
+ CaptureFormat captureFormat, long constructionTimeNs) { |
Logging.d(TAG, "Create new camera1 session on camera " + cameraId); |
this.cameraThreadHandler = new Handler(); |
@@ -162,6 +164,11 @@ class Camera1Session implements CameraSession { |
this.constructionTimeNs = constructionTimeNs; |
startCapturing(); |
+ |
+ if (mediaRecorder != null) { |
+ camera.unlock(); |
+ mediaRecorder.setCamera(camera); |
+ } |
} |
@Override |