19426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* 29426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * Copyright Samsung Electronics Co.,LTD. 39426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * Copyright (C) 2010 The Android Open Source Project 49426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * 59426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * Licensed under the Apache License, Version 2.0 (the "License"); 69426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * you may not use this file except in compliance with the License. 79426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * You may obtain a copy of the License at 89426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * 99426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * http://www.apache.org/licenses/LICENSE-2.0 109426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * 119426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * Unless required by applicable law or agreed to in writing, software 129426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * distributed under the License is distributed on an "AS IS" BASIS, 139426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * See the License for the specific language governing permissions and 159426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin * limitations under the License. 169426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin */ 179426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#ifndef EXYNOS_EXIF_H_ 189426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXYNOS_EXIF_H_ 199426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 209426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#include <math.h> 219426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 229426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_LOG2(x) (log((double)(x)) / log(2.0)) 239426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define APEX_FNUM_TO_APERTURE(x) ((int)(EXIF_LOG2((double)(x)) * 2 + 0.5)) 249426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define APEX_EXPOSURE_TO_SHUTTER(x) ((x) >= 1 ? \ 259426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin (int)(-(EXIF_LOG2((double)(x)) + 0.5)) : \ 269426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin (int)(-(EXIF_LOG2((double)(x)) - 0.5))) 279426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define APEX_ISO_TO_FILMSENSITIVITY(x) ((int)(EXIF_LOG2((x) / 3.125) + 0.5)) 289426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 299426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define NUM_SIZE 2 309426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define IFD_SIZE 12 319426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define OFFSET_SIZE 4 329426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 339426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define NUM_0TH_IFD_TIFF 10 349426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define NUM_0TH_IFD_EXIF 22 359426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define NUM_0TH_IFD_GPS 10 369426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define NUM_1TH_IFD_TIFF 9 379426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 389426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* Type */ 399426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_BYTE 1 409426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_ASCII 2 419426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_SHORT 3 429426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_LONG 4 439426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_RATIONAL 5 449426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_UNDEFINED 7 459426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_SLONG 9 469426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TYPE_SRATIONAL 10 479426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 489426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_FILE_SIZE 28800 499426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 509426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* 0th IFD TIFF Tags */ 519426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_IMAGE_WIDTH 0x0100 529426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_IMAGE_HEIGHT 0x0101 539426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_MAKE 0x010f 549426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_MODEL 0x0110 559426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_ORIENTATION 0x0112 569426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_SOFTWARE 0x0131 579426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_DATE_TIME 0x0132 589426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_YCBCR_POSITIONING 0x0213 599426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXIF_IFD_POINTER 0x8769 609426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_IFD_POINTER 0x8825 619426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 629426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* 0th IFD Exif Private Tags */ 639426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXPOSURE_TIME 0x829A 649426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_FNUMBER 0x829D 659426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXPOSURE_PROGRAM 0x8822 669426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_ISO_SPEED_RATING 0x8827 679426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXIF_VERSION 0x9000 689426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_DATE_TIME_ORG 0x9003 699426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_DATE_TIME_DIGITIZE 0x9004 709426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_SHUTTER_SPEED 0x9201 719426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_APERTURE 0x9202 729426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_BRIGHTNESS 0x9203 739426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXPOSURE_BIAS 0x9204 749426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_MAX_APERTURE 0x9205 759426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_METERING_MODE 0x9207 769426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_FLASH 0x9209 779426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_FOCAL_LENGTH 0x920A 789426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_USER_COMMENT 0x9286 799426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_COLOR_SPACE 0xA001 809426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_PIXEL_X_DIMENSION 0xA002 819426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_PIXEL_Y_DIMENSION 0xA003 829426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_EXPOSURE_MODE 0xA402 839426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_WHITE_BALANCE 0xA403 849426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_SCENCE_CAPTURE_TYPE 0xA406 859426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 869426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* 0th IFD GPS Info Tags */ 879426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_VERSION_ID 0x0000 889426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_LATITUDE_REF 0x0001 899426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_LATITUDE 0x0002 909426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_LONGITUDE_REF 0x0003 919426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_LONGITUDE 0x0004 929426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_ALTITUDE_REF 0x0005 939426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_ALTITUDE 0x0006 949426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_TIMESTAMP 0x0007 959426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_PROCESSING_METHOD 0x001B 969426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_GPS_DATESTAMP 0x001D 979426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 989426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* 1th IFD TIFF Tags */ 999426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_COMPRESSION_SCHEME 0x0103 1009426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_X_RESOLUTION 0x011A 1019426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_Y_RESOLUTION 0x011B 1029426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_RESOLUTION_UNIT 0x0128 1039426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_JPEG_INTERCHANGE_FORMAT 0x0201 1049426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LEN 0x0202 1059426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1069426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef enum { 1079426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_ORIENTATION_UP = 1, 1089426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_ORIENTATION_90 = 6, 1099426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_ORIENTATION_180 = 3, 1109426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_ORIENTATION_270 = 8, 1119426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} ExifOrientationType; 1129426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1139426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef enum { 1149426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_SCENE_STANDARD, 1159426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_SCENE_LANDSCAPE, 1169426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_SCENE_PORTRAIT, 1179426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_SCENE_NIGHT, 1189426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} CamExifSceneCaptureType; 1199426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1209426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef enum { 1219426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_UNKNOWN, 1229426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_AVERAGE, 1239426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_CENTER, 1249426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_SPOT, 1259426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_MULTISPOT, 1269426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_PATTERN, 1279426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_PARTIAL, 1289426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_METERING_OTHER = 255, 1299426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} CamExifMeteringModeType; 1309426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1319426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef enum { 1329426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_EXPOSURE_AUTO, 1339426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_EXPOSURE_MANUAL, 1349426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_EXPOSURE_AUTO_BRACKET, 1359426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} CamExifExposureModeType; 1369426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1379426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef enum { 1389426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_WB_AUTO, 1399426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin EXIF_WB_MANUAL, 1409426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} CamExifWhiteBalanceType; 1419426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1429426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin/* Values */ 1439426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_MAKER "SAMSUNG" 1449426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_MODEL "SAMSUNG" 1459426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_SOFTWARE "SAMSUNG" 1469426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_EXIF_VERSION "0220" 1479426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_USERCOMMENTS "User comments" 1489426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1499426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_YCBCR_POSITIONING 1 /* centered */ 1509426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_FNUMBER_NUM 26 /* 2.6 */ 1519426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_FNUMBER_DEN 10 1529426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_EXPOSURE_PROGRAM 3 /* aperture priority */ 1539426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_FOCAL_LEN_NUM 278 /* 2.78mm */ 1549426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_FOCAL_LEN_DEN 100 1559426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_FLASH 0 /* O: off, 1: on*/ 1569426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_COLOR_SPACE 1 1579426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_EXPOSURE_MODE EXIF_EXPOSURE_AUTO 1589426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_APEX_DEN 10 1599426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1609426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_COMPRESSION 6 1619426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_RESOLUTION_NUM 72 1629426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_RESOLUTION_DEN 1 1639426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#define EXIF_DEF_RESOLUTION_UNIT 2 /* inches */ 1649426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1659426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef struct { 1669426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t num; 1679426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t den; 1689426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} rational_t; 1699426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1709426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef struct { 1719426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin int32_t num; 1729426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin int32_t den; 1739426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} srational_t; 1749426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1759426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shintypedef struct { 1769426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin bool enableGps; 1779426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin bool enableThumb; 1789426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1799426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char maker[32]; 1809426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char model[32]; 1819426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char software[32]; 1829426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char exif_version[4]; 1839426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char date_time[20]; 1849426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char user_comment[150]; 1859426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1869426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t width; 1879426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t height; 1889426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t widthThumb; 1899426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint32_t heightThumb; 1909426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 1919426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t orientation; 1929426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t ycbcr_positioning; 1939426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t exposure_program; 1949426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t iso_speed_rating; 1959426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t metering_mode; 1969426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t flash; 1979426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t color_space; 1989426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t exposure_mode; 1999426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t white_balance; 2009426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t scene_capture_type; 2019426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2029426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t exposure_time; 2039426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t fnumber; 2049426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t aperture; 2059426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t max_aperture; 2069426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t focal_length; 2079426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2089426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin srational_t shutter_speed; 2099426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin srational_t brightness; 2109426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin srational_t exposure_bias; 2119426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2129426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char gps_latitude_ref[2]; 2139426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char gps_longitude_ref[2]; 2149426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2159426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint8_t gps_version_id[4]; 2169426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint8_t gps_altitude_ref; 2179426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2189426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t gps_latitude[3]; 2199426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t gps_longitude[3]; 2209426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t gps_altitude; 2219426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t gps_timestamp[3]; 2229426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char gps_datestamp[11]; 2239426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin unsigned char gps_processing_method[100]; 2249426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2259426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t x_resolution; 2269426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin rational_t y_resolution; 2279426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t resolution_unit; 2289426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin uint16_t compression_scheme; 2299426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin} exif_attribute_t; 2309426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin 2319426c428f0ffede2ee24d397912f7db84c56c3f7Jiyoung Shin#endif /* EXYNOS_EXIF_H_ */ 232