summaryrefslogtreecommitdiffstats
path: root/camera/CameraHal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'camera/CameraHal.cpp')
-rw-r--r--camera/CameraHal.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/camera/CameraHal.cpp b/camera/CameraHal.cpp
index 1a67939..68a623b 100644
--- a/camera/CameraHal.cpp
+++ b/camera/CameraHal.cpp
@@ -47,6 +47,14 @@ const int CameraHal::SW_SCALING_FPS_LIMIT = 15;
const uint32_t MessageNotifier::EVENT_BIT_FIELD_POSITION = 16;
const uint32_t MessageNotifier::FRAME_BIT_FIELD_POSITION = 0;
+#ifdef CAMERAHAL_USE_RAW_IMAGE_SAVING
+// HACK: Default path to directory where RAW images coming from video port will be saved to.
+// If directory not exists the saving is skipped and video port frame is ignored.
+// The directory name is choosed in so weird way to enable RAW images saving only when
+// directory has been created explicitly by user.
+extern const char * const kRawImagesOutputDirPath = "/data/misc/camera/RaW_PiCtUrEs";
+#endif
+
/******************************************************************************/
#if PPM_INSTRUMENTATION || PPM_INSTRUMENTATION_ABS
@@ -451,18 +459,20 @@ int CameraHal::setParameters(const CameraParameters& params)
}
}
- if ( 0 == strcmp (valstr, TICameraParameters::PIXEL_FORMAT_RAW) ) {
+ mRawCapture = false;
- mRawCapture = true; // RawCapture flag
+#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;
if ( (valstr = params.get(TICameraParameters::KEY_FILENAME_TIMESTAMP)) != NULL ) {
- CAMHAL_LOGEB("FILENAME TIMESTAMP Value = %s", valstr);
+ CAMHAL_LOGD("FILENAME TIMESTAMP Value = %s", valstr);
mParameters.set(TICameraParameters::KEY_FILENAME_TIMESTAMP, valstr);
}
-
- } else {
- mRawCapture = false;
}
+#endif
if ( (valstr = params.get(TICameraParameters::KEY_S3D_CAP_FRAME_LAYOUT)) != NULL )
{
@@ -2996,6 +3006,7 @@ CameraHal::~CameraHal()
}
freeImageBufs();
+ freeRawBufs();
/// Free the memory manager
mMemoryManager.clear();