mako: camera: update exif header for new exif member
Add f-number on EXIF header to show aperture item in exif viewer.
Bug: 7960810
Change-Id: Ic78012cfb1d0d8a8d44571c5439c29a65abe4ff0
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/camera/QCameraHWI_Parm.cpp b/camera/QCameraHWI_Parm.cpp
index e212d22..cccc759 100644
--- a/camera/QCameraHWI_Parm.cpp
+++ b/camera/QCameraHWI_Parm.cpp
@@ -694,6 +694,13 @@
}
ALOGV("%s: X", __func__);
}
+
+rat_t getRational(int num, int denom)
+{
+ rat_t temp = {num, denom};
+ return temp;
+}
+
void QCameraHardwareInterface::initDefaultParameters()
{
bool ret;
@@ -1247,6 +1254,12 @@
mParameters.setFloat(QCameraParameters::KEY_VERTICAL_VIEW_ANGLE,
verticalViewAngle);
+ //Set Aperture
+ float f_number = 0.0f;
+ cam_config_get_parm(mCameraId, MM_CAMERA_PARM_F_NUMBER,
+ (void *)&f_number);
+ mExifValues.f_number = getRational(f_number*F_NUMBER_DECIMAL_PRECISION, F_NUMBER_DECIMAL_PRECISION);
+
//Set Exposure Compensation
mParameters.set(
QCameraParameters::KEY_MAX_EXPOSURE_COMPENSATION,
@@ -4004,12 +4017,6 @@
mExifTableNumEntries++;
}
-rat_t getRational(int num, int denom)
-{
- rat_t temp = {num, denom};
- return temp;
-}
-
void QCameraHardwareInterface::initExifData(){
if(mExifValues.dateTime) {
addExifTag(EXIFTAGID_EXIF_DATE_TIME_ORIGINAL, EXIF_ASCII,
@@ -4020,6 +4027,10 @@
addExifTag(EXIFTAGID_FOCAL_LENGTH, EXIF_RATIONAL, 1, 1, (void *)&(mExifValues.focalLength));
addExifTag(EXIFTAGID_ISO_SPEED_RATING,EXIF_SHORT,1,1,(void *)&(mExifValues.isoSpeed));
+ // normal f_number is from 1.2 to 22, but I'd like to put some margin.
+ if(mExifValues.f_number.num>0 && mExifValues.f_number.num<3200)
+ addExifTag(EXIFTAGID_F_NUMBER,EXIF_RATIONAL,1,1,(void *)&(mExifValues.f_number));
+
if(mExifValues.mGpsProcess) {
addExifTag(EXIFTAGID_GPS_PROCESSINGMETHOD, EXIF_ASCII,
EXIF_ASCII_PREFIX_SIZE + strlen(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE) + 1,