diff options
author | Emilian Peev <epeev@mm-sol.com> | 2012-01-13 12:11:40 +0200 |
---|---|---|
committer | Daniel Levin <dendy@ti.com> | 2012-07-25 08:55:41 -0500 |
commit | 976e2e4a07fd6c5fa4528036f359a8b1b4e69711 (patch) | |
tree | 8290ac9ef94d8712ed2955e738caa4942fbdef22 /camera/OMXCameraAdapter/OMXCapture.cpp | |
parent | 67dc172b6dfd2941758a0ffb2aa62edc09af5ce8 (diff) | |
download | hardware_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.cpp | 17 |
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 ¶ms, 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 ¶ms, 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); |