summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter/OMXCapture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'camera/OMXCameraAdapter/OMXCapture.cpp')
-rw-r--r--camera/OMXCameraAdapter/OMXCapture.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/camera/OMXCameraAdapter/OMXCapture.cpp b/camera/OMXCameraAdapter/OMXCapture.cpp
index d201351..d9a4228 100644
--- a/camera/OMXCameraAdapter/OMXCapture.cpp
+++ b/camera/OMXCameraAdapter/OMXCapture.cpp
@@ -67,8 +67,17 @@ status_t OMXCameraAdapter::setParametersCapture(const CameraParameters &params,
CAMHAL_LOGVB("Image: cap.mWidth = %d", (int)cap->mWidth);
CAMHAL_LOGVB("Image: cap.mHeight = %d", (int)cap->mHeight);
+ mRawCapture = false;
+
+#ifdef CAMERAHAL_USE_RAW_IMAGE_SAVING
+ valstr = params.get(TICameraParameters::KEY_CAP_MODE);
+ if ( (!valstr || strcmp(valstr, TICameraParameters::HIGH_QUALITY_MODE) == 0) &&
+ access(kRawImagesOutputDirPath, F_OK) != -1 ) {
+ mRawCapture = true;
+ }
+#endif
+
if ((valstr = params.getPictureFormat()) != NULL) {
- mRawCapture = false;
if (strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV422I) == 0) {
CAMHAL_LOGDA("CbYCrY format selected");
pixFormat = OMX_COLOR_FormatCbYCrY;
@@ -1294,7 +1303,10 @@ status_t OMXCameraAdapter::UseBuffersCapture(void* bufArr, int num)
}
mCapturedFrames = mBurstFrames;
- mCaptureConfigured = true;
+
+ if (!mRawCapture) {
+ mCaptureConfigured = true;
+ }
return (ret | ErrorUtils::omxToAndroidError(eError));
@@ -1321,6 +1333,10 @@ status_t OMXCameraAdapter::UseBuffersRawCapture(void* bufArr, int num)
imgRawCaptureData = &mCameraAdapterParameters.mCameraPortParams[mCameraAdapterParameters.mVideoPortIndex];
+ if (mCaptureConfigured) {
+ return NO_ERROR;
+ }
+
camSem.Create();
// mWaitingForSnapshot is true only when we're in the process of capturing