diff options
author | Emilian Peev <epeev@mm-sol.com> | 2012-05-21 12:38:23 +0300 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2012-05-23 14:38:01 -0700 |
commit | c78626b15e9f29a5bcf85447ceafb17dcbf58b69 (patch) | |
tree | b6fcc502eceb58bfda03fcc60f597ce121b56585 /camera/OMXCameraAdapter/OMXCameraAdapter.cpp | |
parent | 8fa731ddc4e629880eda7f1f69de4fc4556cb7cb (diff) | |
download | omap4xxx-c78626b15e9f29a5bcf85447ceafb17dcbf58b69.tar.gz |
CameraHal: Avoids possible race conditions while accessing 'mParams'
- Direct access of 'mParams' outside of 'get-/setParameters()' should
be avoided. The underlying strings can get invalidated with each
call to 'setParameters()', which can lead to instabilities.
- This change also removes legacy stereo code, which is not used
any more.
Bug: 6509329
Change-Id: Ief6df206c33fbdc666644cea8630e0bce6a36c00
Signed-off-by: Emilian Peev <epeev@mm-sol.com>
Diffstat (limited to 'camera/OMXCameraAdapter/OMXCameraAdapter.cpp')
-rwxr-xr-x | camera/OMXCameraAdapter/OMXCameraAdapter.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp index 11ecf0f..392de93 100755 --- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp +++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp @@ -191,6 +191,7 @@ status_t OMXCameraAdapter::initialize(CameraProperties::Properties* caps) mZoomParameterIdx = 0; mExposureBracketingValidEntries = 0; mSensorOverclock = false; + mIternalRecordingHint = false; mDeviceOrientation = 0; mCapabilities = caps; @@ -536,6 +537,13 @@ status_t OMXCameraAdapter::setParameters(const CameraParameters ¶ms) mOMXStateSwitch = true; } + valstr = params.get(TICameraParameters::KEY_RECORDING_HINT); + if (!valstr || (valstr && (strcmp(valstr, CameraParameters::FALSE)))) { + mIternalRecordingHint = false; + } else { + mIternalRecordingHint = true; + } + #ifdef OMAP_ENHANCEMENT if ( (valstr = params.get(TICameraParameters::KEY_MEASUREMENT_ENABLE)) != NULL ) @@ -1465,13 +1473,6 @@ status_t OMXCameraAdapter::UseBuffersPreview(void* bufArr, int num) LOG_FUNCTION_NAME; - ///Flag to determine whether it is 3D camera or not - bool isS3d = false; - const char *valstr = NULL; - if ( (valstr = mParams.get(TICameraParameters::KEY_S3D_SUPPORTED)) != NULL) { - isS3d = (strcmp(valstr, "true") == 0); - } - if(!bufArr) { CAMHAL_LOGEA("NULL pointer passed for buffArr"); @@ -1531,8 +1532,7 @@ status_t OMXCameraAdapter::UseBuffersPreview(void* bufArr, int num) CAMHAL_LOGDB("Camera Mode = %d", mCapMode); - if( ( mCapMode == OMXCameraAdapter::VIDEO_MODE ) || - ( isS3d && (mCapMode == OMXCameraAdapter::HIGH_QUALITY)) ) + if( mCapMode == OMXCameraAdapter::VIDEO_MODE ) { ///Enable/Disable Video Noise Filter ret = enableVideoNoiseFilter(mVnfEnabled); @@ -3085,17 +3085,15 @@ OMX_ERRORTYPE OMXCameraAdapter::OMXCameraAdapterFillBufferDone(OMX_IN OMX_HANDLE const char *valstr = NULL; pixFormat = mCameraAdapterParameters.mCameraPortParams[mCameraAdapterParameters.mImagePortIndex].mColorFormat; - valstr = mParams.getPictureFormat(); if ( OMX_COLOR_FormatUnused == pixFormat ) { typeOfFrame = CameraFrame::IMAGE_FRAME; mask = (unsigned int) CameraFrame::IMAGE_FRAME; - } - else if ( pixFormat == OMX_COLOR_FormatCbYCrY && - ((valstr && !strcmp(valstr, CameraParameters::PIXEL_FORMAT_JPEG)) || - !valstr) ) - { + } else if ( pixFormat == OMX_COLOR_FormatCbYCrY && + ((mPictureFormatFromClient && + !strcmp(mPictureFormatFromClient, CameraParameters::PIXEL_FORMAT_JPEG)) || + !mPictureFormatFromClient) ) { // signals to callbacks that this needs to be coverted to jpeg // before returning to framework typeOfFrame = CameraFrame::IMAGE_FRAME; |