summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter/OMXExif.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'camera/OMXCameraAdapter/OMXExif.cpp')
-rw-r--r--camera/OMXCameraAdapter/OMXExif.cpp52
1 files changed, 31 insertions, 21 deletions
diff --git a/camera/OMXCameraAdapter/OMXExif.cpp b/camera/OMXCameraAdapter/OMXExif.cpp
index 70fb3db..76d94bd 100644
--- a/camera/OMXCameraAdapter/OMXExif.cpp
+++ b/camera/OMXCameraAdapter/OMXExif.cpp
@@ -193,6 +193,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters &params,
if( ( valstr = params.get(TICameraParameters::KEY_EXIF_MODEL ) ) != NULL )
{
CAMHAL_LOGVB("EXIF Model: %s", valstr);
+ strncpy(mEXIFData.mModel, valstr, EXIF_MODEL_SIZE - 1);
mEXIFData.mModelValid= true;
}
else
@@ -203,6 +204,7 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters &params,
if( ( valstr = params.get(TICameraParameters::KEY_EXIF_MAKE ) ) != NULL )
{
CAMHAL_LOGVB("EXIF Make: %s", valstr);
+ strncpy(mEXIFData.mMake, valstr, EXIF_MAKE_SIZE - 1);
mEXIFData.mMakeValid = true;
}
else
@@ -210,6 +212,18 @@ status_t OMXCameraAdapter::setParametersEXIF(const CameraParameters &params,
mEXIFData.mMakeValid= false;
}
+
+ if( ( valstr = params.get(CameraParameters::KEY_FOCAL_LENGTH) ) != NULL ) {
+ CAMHAL_LOGVB("EXIF Focal length: %s", valstr);
+ ExifElementsTable::stringToRational(valstr,
+ &mEXIFData.mFocalNum,
+ &mEXIFData.mFocalDen);
+ } else {
+ mEXIFData.mFocalNum = 0;
+ mEXIFData.mFocalDen = 0;
+ }
+
+
LOG_FUNCTION_NAME_EXIT;
return ret;
@@ -293,7 +307,7 @@ status_t OMXCameraAdapter::setupEXIF()
( mEXIFData.mModelValid ) )
{
strncpy(( char * ) sharedPtr,
- ( char * ) mParams.get(TICameraParameters::KEY_EXIF_MODEL ),
+ mEXIFData.mModel,
EXIF_MODEL_SIZE - 1);
exifTags->pModelBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff );
@@ -306,8 +320,8 @@ status_t OMXCameraAdapter::setupEXIF()
( mEXIFData.mMakeValid ) )
{
strncpy( ( char * ) sharedPtr,
- ( char * ) mParams.get(TICameraParameters::KEY_EXIF_MAKE ),
- EXIF_MAKE_SIZE - 1);
+ mEXIFData.mMake,
+ EXIF_MAKE_SIZE - 1);
exifTags->pMakeBuff = ( OMX_S8 * ) ( sharedPtr - sharedBuffer.pSharedBuff );
exifTags->ulMakeBuffSizeBytes = strlen((char*)sharedPtr) + 1;
@@ -317,12 +331,9 @@ status_t OMXCameraAdapter::setupEXIF()
if ( ( OMX_TI_TagReadWrite == exifTags->eStatusFocalLength ))
{
- unsigned int numerator = 0, denominator = 0;
- ExifElementsTable::stringToRational(mParams.get(CameraParameters::KEY_FOCAL_LENGTH),
- &numerator, &denominator);
- if (numerator || denominator) {
- exifTags->ulFocalLength[0] = (OMX_U32) numerator;
- exifTags->ulFocalLength[1] = (OMX_U32) denominator;
+ if (mEXIFData.mFocalNum || mEXIFData.mFocalDen ) {
+ exifTags->ulFocalLength[0] = (OMX_U32) mEXIFData.mFocalNum;
+ exifTags->ulFocalLength[1] = (OMX_U32) mEXIFData.mFocalDen;
CAMHAL_LOGVB("exifTags->ulFocalLength = [%u] [%u]",
(unsigned int)(exifTags->ulFocalLength[0]),
(unsigned int)(exifTags->ulFocalLength[1]));
@@ -512,22 +523,21 @@ status_t OMXCameraAdapter::setupEXIF_libjpeg(ExifElementsTable* exifTable,
capData = &mCameraAdapterParameters.mCameraPortParams[mCameraAdapterParameters.mImagePortIndex];
if ((NO_ERROR == ret) && (mEXIFData.mModelValid)) {
- ret = exifTable->insertElement(TAG_MODEL, mParams.get(TICameraParameters::KEY_EXIF_MODEL));
+ ret = exifTable->insertElement(TAG_MODEL, mEXIFData.mModel);
}
if ((NO_ERROR == ret) && (mEXIFData.mMakeValid)) {
- ret = exifTable->insertElement(TAG_MAKE, mParams.get(TICameraParameters::KEY_EXIF_MAKE));
+ ret = exifTable->insertElement(TAG_MAKE, mEXIFData.mMake);
}
if ((NO_ERROR == ret)) {
- unsigned int numerator = 0, denominator = 0;
- ExifElementsTable::stringToRational(mParams.get(CameraParameters::KEY_FOCAL_LENGTH),
- &numerator, &denominator);
- if (numerator || denominator) {
+ if (mEXIFData.mFocalNum || mEXIFData.mFocalDen) {
char temp_value[256]; // arbitrarily long string
snprintf(temp_value,
- sizeof(temp_value)/sizeof(char),
- "%u/%u", numerator, denominator);
+ sizeof(temp_value)/sizeof(char),
+ "%u/%u",
+ mEXIFData.mFocalNum,
+ mEXIFData.mFocalDen);
ret = exifTable->insertElement(TAG_FOCALLENGTH, temp_value);
}
@@ -618,8 +628,8 @@ status_t OMXCameraAdapter::setupEXIF_libjpeg(ExifElementsTable* exifTable,
memcpy(temp_value, ExifAsciiPrefix, sizeof(ExifAsciiPrefix));
memcpy(temp_value + sizeof(ExifAsciiPrefix),
- mParams.get(CameraParameters::KEY_GPS_PROCESSING_METHOD),
- (GPS_PROCESSING_SIZE - sizeof(ExifAsciiPrefix)));
+ mEXIFData.mGPSData.mProcMethod,
+ (GPS_PROCESSING_SIZE - sizeof(ExifAsciiPrefix)));
ret = exifTable->insertElement(TAG_GPS_PROCESSING_METHOD, temp_value);
}
@@ -650,9 +660,9 @@ status_t OMXCameraAdapter::setupEXIF_libjpeg(ExifElementsTable* exifTable,
ret = exifTable->insertElement(TAG_GPS_DATESTAMP, mEXIFData.mGPSData.mDatestamp);
}
- if ((NO_ERROR == ret) && mParams.get(CameraParameters::KEY_ROTATION) ) {
+ if (NO_ERROR == ret) {
const char* exif_orient =
- ExifElementsTable::degreesToExifOrientation(mParams.get(CameraParameters::KEY_ROTATION));
+ ExifElementsTable::degreesToExifOrientation(mPictureRotation);
if (exif_orient) {
ret = exifTable->insertElement(TAG_ORIENTATION, exif_orient);