|
|
@ -216,7 +216,7 @@ public class Camera1 extends CameraImpl { |
|
|
|
mCamera.setOneShotPreviewCallback(new Camera.PreviewCallback() { |
|
|
|
mCamera.setOneShotPreviewCallback(new Camera.PreviewCallback() { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void onPreviewFrame(byte[] data, Camera camera) { |
|
|
|
public void onPreviewFrame(byte[] data, Camera camera) { |
|
|
|
new Thread(new ProcessStillTask(data, camera, mCameraInfo, new ProcessStillTask.OnStillProcessedListener() { |
|
|
|
new Thread(new ProcessStillTask(data, camera, calculateCaptureRotation(), new ProcessStillTask.OnStillProcessedListener() { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void onStillProcessed(final YuvImage yuv) { |
|
|
|
public void onStillProcessed(final YuvImage yuv) { |
|
|
|
mCameraListener.onPictureTaken(yuv); |
|
|
|
mCameraListener.onPictureTaken(yuv); |
|
|
@ -315,9 +315,7 @@ public class Camera1 extends CameraImpl { |
|
|
|
mCameraParameters = mCamera.getParameters(); |
|
|
|
mCameraParameters = mCamera.getParameters(); |
|
|
|
|
|
|
|
|
|
|
|
adjustCameraParameters(); |
|
|
|
adjustCameraParameters(); |
|
|
|
mCamera.setDisplayOrientation( |
|
|
|
mCamera.setDisplayOrientation(calculatePreviewRotation()); |
|
|
|
calculateCameraRotation(mDisplayOrientation) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mCameraListener.onCameraOpened(); |
|
|
|
mCameraListener.onCameraOpened(); |
|
|
|
} |
|
|
|
} |
|
|
@ -345,11 +343,21 @@ public class Camera1 extends CameraImpl { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private int calculateCameraRotation(int rotation) { |
|
|
|
private int calculatePreviewRotation() { |
|
|
|
|
|
|
|
if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { |
|
|
|
|
|
|
|
return ((mCameraInfo.orientation - mDisplayOrientation) + 360 + 180) % 360; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return (mCameraInfo.orientation - mDisplayOrientation + 360) % 360; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private int calculateCaptureRotation() { |
|
|
|
|
|
|
|
int previewRotation = calculatePreviewRotation(); |
|
|
|
if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { |
|
|
|
if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { |
|
|
|
return (360 - (mCameraInfo.orientation + rotation) % 360) % 360; |
|
|
|
//Front is flipped
|
|
|
|
|
|
|
|
return (previewRotation + 180 + 2*mDisplayOrientation + 720) %360; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
return (mCameraInfo.orientation - rotation + 360) % 360; |
|
|
|
return previewRotation; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -369,8 +377,7 @@ public class Camera1 extends CameraImpl { |
|
|
|
getCaptureResolution().getWidth(), |
|
|
|
getCaptureResolution().getWidth(), |
|
|
|
getCaptureResolution().getHeight() |
|
|
|
getCaptureResolution().getHeight() |
|
|
|
); |
|
|
|
); |
|
|
|
int rotation = (calculateCameraRotation(mDisplayOrientation) |
|
|
|
int rotation = calculateCaptureRotation(); |
|
|
|
+ (mFacing == CameraKit.Constants.FACING_FRONT ? 180 : 0) ) % 360; |
|
|
|
|
|
|
|
mCameraParameters.setRotation(rotation); |
|
|
|
mCameraParameters.setRotation(rotation); |
|
|
|
|
|
|
|
|
|
|
|
setFocus(mFocus); |
|
|
|
setFocus(mFocus); |
|
|
|