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