OSDN Git Service

Fix samsung video recording
authorMichael Kolb <kolby@google.com>
Thu, 30 May 2013 14:45:41 +0000 (07:45 -0700)
committerAlan Newberger <alann@google.com>
Tue, 3 Dec 2013 19:05:45 +0000 (11:05 -0800)
Patching Bryce CL into Carlsbad

  Bug: 9056573

Change-Id: I81fc31e24fe26bef4179bfc4428def2e8b7d94e9

Conflicts:
src/com/android/camera/VideoModule.java

src/com/android/camera/VideoModule.java

index 0ee62bb..92a2a94 100644 (file)
@@ -965,7 +965,6 @@ public class VideoModule implements CameraModule,
         }
         mMediaRecorder = new MediaRecorder();
 
-        setupMediaRecorderPreviewDisplay();
         // Unlock the camera object before passing it to media recorder.
         mCameraDevice.unlock();
         mMediaRecorder.setCamera(mCameraDevice.getCamera());
@@ -974,6 +973,7 @@ public class VideoModule implements CameraModule,
         }
         mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
         mMediaRecorder.setProfile(mProfile);
+        mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight);
         mMediaRecorder.setMaxDuration(mMaxVideoDurationInMs);
         if (mCaptureTimeLapse) {
             double fps = 1000 / (double) mTimeBetweenTimeLapseFrameCaptureMs;
@@ -1022,6 +1022,7 @@ public class VideoModule implements CameraModule,
             }
         }
         mMediaRecorder.setOrientationHint(rotation);
+        setupMediaRecorderPreviewDisplay();
 
         try {
             mMediaRecorder.prepare();
@@ -1463,6 +1464,7 @@ public class VideoModule implements CameraModule,
     @SuppressWarnings("deprecation")
     private void setCameraParameters() {
         mParameters.setPreviewSize(mDesiredPreviewWidth, mDesiredPreviewHeight);
+        mParameters.set("video-size", mProfile.videoFrameWidth+"x"+mProfile.videoFrameHeight);
         int[] fpsRange = CameraUtil.getMaxPreviewFpsRange(mParameters);
         if (fpsRange.length > 0) {
             mParameters.setPreviewFpsRange(
@@ -1527,7 +1529,15 @@ public class VideoModule implements CameraModule,
                 CameraProfile.QUALITY_HIGH);
         mParameters.setJpegQuality(jpegQuality);
 
+        boolean flag = false;
+        if (mPreviewing) {
+            stopPreview();
+            flag = true;
+        }
         mCameraDevice.setParameters(mParameters);
+        if (flag) {
+            startPreview();
+        }
         // Keep preview size up to date.
         mParameters = mCameraDevice.getParameters();