diff options
Diffstat (limited to 'camera/OMXCameraAdapter/OMXExif.cpp')
-rw-r--r-- | camera/OMXCameraAdapter/OMXExif.cpp | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/camera/OMXCameraAdapter/OMXExif.cpp b/camera/OMXCameraAdapter/OMXExif.cpp index 76d94bd..cbf7c1c 100644 --- a/camera/OMXCameraAdapter/OMXExif.cpp +++ b/camera/OMXCameraAdapter/OMXExif.cpp @@ -21,17 +21,14 @@ * */ -#undef LOG_TAG - -#define LOG_TAG "CameraHAL" - #include "CameraHal.h" #include "OMXCameraAdapter.h" #include <math.h> -namespace android { +namespace Ti { +namespace Camera { -status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, +status_t OMXCameraAdapter::setParametersEXIF(const android::CameraParameters ¶ms, BaseCameraAdapter::AdapterState state) { status_t ret = NO_ERROR; @@ -40,7 +37,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, LOG_FUNCTION_NAME; - if( ( valstr = params.get(CameraParameters::KEY_GPS_LATITUDE) ) != NULL ) + if( ( valstr = params.get(android::CameraParameters::KEY_GPS_LATITUDE) ) != NULL ) { gpsPos = strtod(valstr, NULL); @@ -72,7 +69,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, mEXIFData.mGPSData.mLatValid = false; } - if( ( valstr = params.get(CameraParameters::KEY_GPS_LONGITUDE) ) != NULL ) + if( ( valstr = params.get(android::CameraParameters::KEY_GPS_LONGITUDE) ) != NULL ) { gpsPos = strtod(valstr, NULL); @@ -104,7 +101,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, mEXIFData.mGPSData.mLongValid = false; } - if( ( valstr = params.get(CameraParameters::KEY_GPS_ALTITUDE) ) != NULL ) + if( ( valstr = params.get(android::CameraParameters::KEY_GPS_ALTITUDE) ) != NULL ) { gpsPos = strtod(valstr, NULL); mEXIFData.mGPSData.mAltitude = floor(fabs(gpsPos)); @@ -120,7 +117,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, mEXIFData.mGPSData.mAltitudeValid= false; } - if( (valstr = params.get(CameraParameters::KEY_GPS_TIMESTAMP)) != NULL ) + if( (valstr = params.get(android::CameraParameters::KEY_GPS_TIMESTAMP)) != NULL ) { long gpsTimestamp = strtol(valstr, NULL, 10); struct tm *timeinfo = gmtime( ( time_t * ) & (gpsTimestamp) ); @@ -141,7 +138,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, mEXIFData.mGPSData.mTimeStampValid = false; } - if( ( valstr = params.get(CameraParameters::KEY_GPS_TIMESTAMP) ) != NULL ) + if( ( valstr = params.get(android::CameraParameters::KEY_GPS_TIMESTAMP) ) != NULL ) { long gpsDatestamp = strtol(valstr, NULL, 10); struct tm *timeinfo = gmtime( ( time_t * ) & (gpsDatestamp) ); @@ -160,7 +157,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, mEXIFData.mGPSData.mDatestampValid = false; } - if( ( valstr = params.get(CameraParameters::KEY_GPS_PROCESSING_METHOD) ) != NULL ) + if( ( valstr = params.get(android::CameraParameters::KEY_GPS_PROCESSING_METHOD) ) != NULL ) { strncpy(mEXIFData.mGPSData.mProcMethod, valstr, GPS_PROCESSING_SIZE-1); mEXIFData.mGPSData.mProcMethodValid = true; @@ -213,7 +210,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters ¶ms, } - if( ( valstr = params.get(CameraParameters::KEY_FOCAL_LENGTH) ) != NULL ) { + if( ( valstr = params.get(android::CameraParameters::KEY_FOCAL_LENGTH) ) != NULL ) { CAMHAL_LOGVB("EXIF Focal length: %s", valstr); ExifElementsTable::stringToRational(valstr, &mEXIFData.mFocalNum, @@ -235,16 +232,23 @@ status_t OMXCameraAdapter::setupEXIF() OMX_ERRORTYPE eError = OMX_ErrorNone; OMX_TI_CONFIG_SHAREDBUFFER sharedBuffer; OMX_TI_CONFIG_EXIF_TAGS *exifTags; + unsigned char *startPtr = NULL; unsigned char *sharedPtr = NULL; struct timeval sTv; struct tm *pTime; OMXCameraPortParameters * capData = NULL; MemoryManager memMgr; - OMX_U8** memmgr_buf_array = NULL; + CameraBuffer *memmgr_buf_array; int buf_size = 0; LOG_FUNCTION_NAME; + ret = memMgr.initialize(); + if ( ret != OK ) { + CAMHAL_LOGE("MemoryManager initialization failed, error: %d", ret); + return ret; + } + sharedBuffer.pSharedBuff = NULL; capData = &mCameraAdapterParameters.mCameraPortParams[mCameraAdapterParameters.mImagePortIndex]; @@ -272,22 +276,23 @@ status_t OMXCameraAdapter::setupEXIF() buf_size = ((buf_size+4095)/4096)*4096; sharedBuffer.nSharedBuffSize = buf_size; - memmgr_buf_array = (OMX_U8 **)memMgr.allocateBuffer(0, 0, NULL, buf_size, 1); - sharedBuffer.pSharedBuff = ( OMX_U8 * ) memmgr_buf_array[0]; + memmgr_buf_array = memMgr.allocateBufferList(0, 0, NULL, buf_size, 1); + sharedBuffer.pSharedBuff = (OMX_U8*)camera_buffer_get_omx_ptr(&memmgr_buf_array[0]); + startPtr = ( OMX_U8 * ) memmgr_buf_array[0].opaque; - if ( NULL == sharedBuffer.pSharedBuff ) + if ( NULL == startPtr) { CAMHAL_LOGEA("No resources to allocate OMX shared buffer"); ret = -1; } //Extra data begins right after the EXIF configuration structure. - sharedPtr = sharedBuffer.pSharedBuff + sizeof(OMX_TI_CONFIG_EXIF_TAGS); + sharedPtr = startPtr + sizeof(OMX_TI_CONFIG_EXIF_TAGS); } if ( NO_ERROR == ret ) { - exifTags = ( OMX_TI_CONFIG_EXIF_TAGS * ) sharedBuffer.pSharedBuff; + exifTags = ( OMX_TI_CONFIG_EXIF_TAGS * ) startPtr; OMX_INIT_STRUCT_PTR (exifTags, OMX_TI_CONFIG_EXIF_TAGS); exifTags->nPortIndex = mCameraAdapterParameters.mImagePortIndex; @@ -310,7 +315,7 @@ status_t OMXCameraAdapter::setupEXIF() mEXIFData.mModel, EXIF_MODEL_SIZE - 1); - exifTags->pModelBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff ); + exifTags->pModelBuff = ( OMX_S8 * ) ( sharedPtr - startPtr ); exifTags->ulModelBuffSizeBytes = strlen((char*)sharedPtr) + 1; sharedPtr += EXIF_MODEL_SIZE; exifTags->eStatusModel = OMX_TI_TagUpdated; @@ -323,7 +328,7 @@ status_t OMXCameraAdapter::setupEXIF() mEXIFData.mMake, EXIF_MAKE_SIZE - 1); - exifTags->pMakeBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff ); + exifTags->pMakeBuff = ( OMX_S8 * ) ( sharedPtr - startPtr ); exifTags->ulMakeBuffSizeBytes = strlen((char*)sharedPtr) + 1; sharedPtr += EXIF_MAKE_SIZE; exifTags->eStatusMake = OMX_TI_TagUpdated; @@ -357,7 +362,7 @@ status_t OMXCameraAdapter::setupEXIF() pTime->tm_sec ); } - exifTags->pDateTimeBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff ); + exifTags->pDateTimeBuff = ( OMX_S8 * ) ( sharedPtr - startPtr ); sharedPtr += EXIF_DATE_TIME_SIZE; exifTags->ulDateTimeBuffSizeBytes = EXIF_DATE_TIME_SIZE; exifTags->eStatusDateTime = OMX_TI_TagUpdated; @@ -435,7 +440,7 @@ status_t OMXCameraAdapter::setupEXIF() { memcpy(sharedPtr, mEXIFData.mGPSData.mMapDatum, GPS_MAPDATUM_SIZE); - exifTags->pGpsMapDatumBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff ); + exifTags->pGpsMapDatumBuff = ( OMX_S8 * ) ( sharedPtr - startPtr ); exifTags->ulGpsMapDatumBuffSizeBytes = GPS_MAPDATUM_SIZE; exifTags->eStatusGpsMapDatum = OMX_TI_TagUpdated; sharedPtr += GPS_MAPDATUM_SIZE; @@ -444,7 +449,7 @@ status_t OMXCameraAdapter::setupEXIF() if ( ( OMX_TI_TagReadWrite == exifTags->eStatusGpsProcessingMethod ) && ( mEXIFData.mGPSData.mProcMethodValid ) ) { - exifTags->pGpsProcessingMethodBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff ); + exifTags->pGpsProcessingMethodBuff = ( OMX_S8 * ) ( sharedPtr - startPtr ); memcpy(sharedPtr, ExifAsciiPrefix, sizeof(ExifAsciiPrefix)); sharedPtr += sizeof(ExifAsciiPrefix); @@ -500,7 +505,7 @@ status_t OMXCameraAdapter::setupEXIF() if ( NULL != memmgr_buf_array ) { - memMgr.freeBuffer(memmgr_buf_array); + memMgr.freeBufferList(memmgr_buf_array); } LOG_FUNCTION_NAME_EXIT; @@ -809,7 +814,7 @@ status_t OMXCameraAdapter::convertGPSCoord(double coord, if ( coord == 0 ) { - ALOGE("Invalid GPS coordinate"); + CAMHAL_LOGE("Invalid GPS coordinate"); return -EINVAL; } @@ -836,4 +841,5 @@ status_t OMXCameraAdapter::convertGPSCoord(double coord, return NO_ERROR; } -}; +} // namespace Camera +} // namespace Ti |