summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter/OMXCapture.cpp
diff options
context:
space:
mode:
authorEmilian Peev <epeev@mm-sol.com>2012-01-13 12:11:40 +0200
committerDaniel Levin <dendy@ti.com>2012-07-25 08:55:41 -0500
commit976e2e4a07fd6c5fa4528036f359a8b1b4e69711 (patch)
tree8290ac9ef94d8712ed2955e738caa4942fbdef22 /camera/OMXCameraAdapter/OMXCapture.cpp
parent67dc172b6dfd2941758a0ffb2aa62edc09af5ce8 (diff)
downloadhardware_ti_omap4-976e2e4a07fd6c5fa4528036f359a8b1b4e69711.zip
hardware_ti_omap4-976e2e4a07fd6c5fa4528036f359a8b1b4e69711.tar.gz
hardware_ti_omap4-976e2e4a07fd6c5fa4528036f359a8b1b4e69711.tar.bz2
CameraHal: Various fixes for issues seen during monkey tests
- 'mParams' in 'OMXCameraAdapter' should not be used for storing/retrieving internal adapter states or data. This object is continuously updated during every 'setParameters()' call and any references related to it can be invalided. Change-Id: I96a590b56fc9567b0c5dfd56cc0d9d8dc78bcab1 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
Diffstat (limited to 'camera/OMXCameraAdapter/OMXCapture.cpp')
-rw-r--r--camera/OMXCameraAdapter/OMXCapture.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/camera/OMXCameraAdapter/OMXCapture.cpp b/camera/OMXCameraAdapter/OMXCapture.cpp
index a2a5daa..bc817a2 100644
--- a/camera/OMXCameraAdapter/OMXCapture.cpp
+++ b/camera/OMXCameraAdapter/OMXCapture.cpp
@@ -72,36 +72,45 @@ status_t OMXCameraAdapter::setParametersCapture(const CameraParameters &params,
if (strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV422I) == 0) {
CAMHAL_LOGDA("CbYCrY format selected");
pixFormat = OMX_COLOR_FormatCbYCrY;
+ mPictureFormatFromClient = CameraParameters::PIXEL_FORMAT_YUV422I;
} else if(strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_YUV420SP) == 0) {
CAMHAL_LOGDA("YUV420SP format selected");
pixFormat = OMX_COLOR_FormatYUV420SemiPlanar;
+ mPictureFormatFromClient = CameraParameters::PIXEL_FORMAT_YUV420SP;
} else if(strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_RGB565) == 0) {
CAMHAL_LOGDA("RGB565 format selected");
pixFormat = OMX_COLOR_Format16bitRGB565;
+ mPictureFormatFromClient = CameraParameters::PIXEL_FORMAT_RGB565;
} else if (strcmp(valstr, (const char *) CameraParameters::PIXEL_FORMAT_JPEG) == 0) {
CAMHAL_LOGDA("JPEG format selected");
pixFormat = OMX_COLOR_FormatUnused;
codingMode = CodingJPEG;
+ mPictureFormatFromClient = CameraParameters::PIXEL_FORMAT_JPEG;
} else if (strcmp(valstr, (const char *) TICameraParameters::PIXEL_FORMAT_JPS) == 0) {
CAMHAL_LOGDA("JPS format selected");
pixFormat = OMX_COLOR_FormatUnused;
codingMode = CodingJPS;
+ mPictureFormatFromClient = TICameraParameters::PIXEL_FORMAT_JPS;
} else if (strcmp(valstr, (const char *) TICameraParameters::PIXEL_FORMAT_MPO) == 0) {
CAMHAL_LOGDA("MPO format selected");
pixFormat = OMX_COLOR_FormatUnused;
codingMode = CodingMPO;
+ mPictureFormatFromClient = TICameraParameters::PIXEL_FORMAT_MPO;
} else if (strcmp(valstr, (const char *) TICameraParameters::PIXEL_FORMAT_RAW) == 0) {
CAMHAL_LOGDA("RAW Picture format selected");
pixFormat = OMX_COLOR_FormatRawBayer10bit;
+ mPictureFormatFromClient = TICameraParameters::PIXEL_FORMAT_RAW;
} else {
CAMHAL_LOGEA("Invalid format, JPEG format selected as default");
pixFormat = OMX_COLOR_FormatUnused;
codingMode = CodingJPEG;
+ mPictureFormatFromClient = NULL;
}
} else {
CAMHAL_LOGEA("Picture format is NULL, defaulting to JPEG");
pixFormat = OMX_COLOR_FormatUnused;
codingMode = CodingJPEG;
+ mPictureFormatFromClient = NULL;
}
// JPEG capture is not supported in video mode by OMX Camera
@@ -263,6 +272,10 @@ status_t OMXCameraAdapter::setParametersCapture(const CameraParameters &params,
CAMHAL_LOGDB("Thumbnail Quality set %d", mThumbQuality);
+ cap = &mCameraAdapterParameters.mCameraPortParams[mCameraAdapterParameters.mVideoPortIndex];
+ cap->mWidth = params.getInt(TICameraParameters::RAW_WIDTH);
+ cap->mHeight = params.getInt(TICameraParameters::RAW_HEIGHT);
+
if (mFirstTimeInit) {
mPendingCaptureSettings = ECapturesettingsAll;
}
@@ -1329,10 +1342,6 @@ status_t OMXCameraAdapter::UseBuffersRawCapture(void* bufArr, int num)
imgRawCaptureData->mNumBufs = num;
- // Comming from mRawWidth/Height in CameraHal. Should come from Ducati max sensor resolution. Only for raw capture.
- imgRawCaptureData->mWidth = mParams.getInt(TICameraParameters::RAW_WIDTH);
- imgRawCaptureData->mHeight = mParams.getInt(TICameraParameters::RAW_HEIGHT);
-
CAMHAL_LOGDB("RAW Max sensor width = %d", (int)imgRawCaptureData->mWidth);
CAMHAL_LOGDB("RAW Max sensor height = %d", (int)imgRawCaptureData->mHeight);