113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* 213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * Copyright Samsung Electronics Co.,LTD. 313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * Copyright (C) 2010 The Android Open Source Project 413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * 513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * Licensed under the Apache License, Version 2.0 (the "License"); 613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * you may not use this file except in compliance with the License. 713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * You may obtain a copy of the License at 813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * 913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * http://www.apache.org/licenses/LICENSE-2.0 1013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * 1113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * Unless required by applicable law or agreed to in writing, software 1213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * distributed under the License is distributed on an "AS IS" BASIS, 1313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * See the License for the specific language governing permissions and 1513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang * limitations under the License. 1613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang */ 1713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#ifndef EXYNOS_EXIF_H_ 1813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXYNOS_EXIF_H_ 1913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 2013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#include <math.h> 2113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 2213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_LOG2(x) (log((double)(x)) / log(2.0)) 23e00f6591f64959131a8ddfbbcec7ff36c7eee94eSungjoong Kang#define APEX_FNUM_TO_APERTURE(x) (((EXIF_LOG2((double)(x)) * 200) + 0.5)/100) 2413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define APEX_EXPOSURE_TO_SHUTTER(x) ((x) >= 1 ? \ 2513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang (int)(-(EXIF_LOG2((double)(x)) + 0.5)) : \ 2613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang (int)(-(EXIF_LOG2((double)(x)) - 0.5))) 2713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define APEX_ISO_TO_FILMSENSITIVITY(x) ((int)(EXIF_LOG2((x) / 3.125) + 0.5)) 2813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 2913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define NUM_SIZE 2 3013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define IFD_SIZE 12 3113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define OFFSET_SIZE 4 3213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 3313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define NUM_0TH_IFD_TIFF 10 3413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define NUM_0TH_IFD_EXIF 22 3513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define NUM_0TH_IFD_GPS 10 3613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define NUM_1TH_IFD_TIFF 9 3713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 3813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* Type */ 3913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_BYTE 1 4013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_ASCII 2 4113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_SHORT 3 4213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_LONG 4 4313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_RATIONAL 5 4413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_UNDEFINED 7 4513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_SLONG 9 4613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TYPE_SRATIONAL 10 4713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 4813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_FILE_SIZE 28800 4913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 5013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* 0th IFD TIFF Tags */ 5113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_IMAGE_WIDTH 0x0100 5213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_IMAGE_HEIGHT 0x0101 5313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_MAKE 0x010f 5413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_MODEL 0x0110 5513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_ORIENTATION 0x0112 5613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_SOFTWARE 0x0131 5713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_DATE_TIME 0x0132 5813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_YCBCR_POSITIONING 0x0213 5913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXIF_IFD_POINTER 0x8769 6013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_IFD_POINTER 0x8825 6113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 6213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* 0th IFD Exif Private Tags */ 6313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXPOSURE_TIME 0x829A 6413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_FNUMBER 0x829D 6513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXPOSURE_PROGRAM 0x8822 6613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_ISO_SPEED_RATING 0x8827 6713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXIF_VERSION 0x9000 6813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_DATE_TIME_ORG 0x9003 6913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_DATE_TIME_DIGITIZE 0x9004 7013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_SHUTTER_SPEED 0x9201 7113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_APERTURE 0x9202 7213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_BRIGHTNESS 0x9203 7313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXPOSURE_BIAS 0x9204 7413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_MAX_APERTURE 0x9205 7513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_METERING_MODE 0x9207 7613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_FLASH 0x9209 7713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_FOCAL_LENGTH 0x920A 7813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_USER_COMMENT 0x9286 7913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_COLOR_SPACE 0xA001 8013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_PIXEL_X_DIMENSION 0xA002 8113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_PIXEL_Y_DIMENSION 0xA003 8213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_EXPOSURE_MODE 0xA402 8313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_WHITE_BALANCE 0xA403 8413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_SCENCE_CAPTURE_TYPE 0xA406 8513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 8613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* 0th IFD GPS Info Tags */ 8713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_VERSION_ID 0x0000 8813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_LATITUDE_REF 0x0001 8913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_LATITUDE 0x0002 9013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_LONGITUDE_REF 0x0003 9113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_LONGITUDE 0x0004 9213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_ALTITUDE_REF 0x0005 9313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_ALTITUDE 0x0006 9413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_TIMESTAMP 0x0007 9513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_PROCESSING_METHOD 0x001B 9613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_GPS_DATESTAMP 0x001D 9713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 9813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* 1th IFD TIFF Tags */ 9913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_COMPRESSION_SCHEME 0x0103 10013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_X_RESOLUTION 0x011A 10113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_Y_RESOLUTION 0x011B 10213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_RESOLUTION_UNIT 0x0128 10313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_JPEG_INTERCHANGE_FORMAT 0x0201 10413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LEN 0x0202 10513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 10613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef enum { 10713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_ORIENTATION_UP = 1, 10813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_ORIENTATION_90 = 6, 10913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_ORIENTATION_180 = 3, 11013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_ORIENTATION_270 = 8, 11113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} ExifOrientationType; 11213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 11313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef enum { 11413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_SCENE_STANDARD, 11513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_SCENE_LANDSCAPE, 11613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_SCENE_PORTRAIT, 11713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_SCENE_NIGHT, 11813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} CamExifSceneCaptureType; 11913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 12013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef enum { 12113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_UNKNOWN, 12213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_AVERAGE, 12313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_CENTER, 12413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_SPOT, 12513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_MULTISPOT, 12613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_PATTERN, 12713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_PARTIAL, 12813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_METERING_OTHER = 255, 12913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} CamExifMeteringModeType; 13013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 13113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef enum { 13213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_EXPOSURE_AUTO, 13313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_EXPOSURE_MANUAL, 13413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_EXPOSURE_AUTO_BRACKET, 13513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} CamExifExposureModeType; 13613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 13713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef enum { 13813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_WB_AUTO, 13913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang EXIF_WB_MANUAL, 14013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} CamExifWhiteBalanceType; 14113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 14213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang/* Values */ 14313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_MAKER "SAMSUNG" 14413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_MODEL "SAMSUNG" 14513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_SOFTWARE "SAMSUNG" 14613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_EXIF_VERSION "0220" 14713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_USERCOMMENTS "User comments" 14813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 14913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_YCBCR_POSITIONING 1 /* centered */ 15013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_FNUMBER_NUM 26 /* 2.6 */ 15113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_FNUMBER_DEN 10 15213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_EXPOSURE_PROGRAM 3 /* aperture priority */ 15313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_FOCAL_LEN_NUM 278 /* 2.78mm */ 15413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_FOCAL_LEN_DEN 100 15513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_FLASH 0 /* O: off, 1: on*/ 15613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_COLOR_SPACE 1 15713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_EXPOSURE_MODE EXIF_EXPOSURE_AUTO 158e00f6591f64959131a8ddfbbcec7ff36c7eee94eSungjoong Kang#define EXIF_DEF_APEX_DEN 100 15913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 16013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_COMPRESSION 6 16113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_RESOLUTION_NUM 72 16213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_RESOLUTION_DEN 1 16313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#define EXIF_DEF_RESOLUTION_UNIT 2 /* inches */ 16413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 16513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef struct { 16613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t num; 16713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t den; 16813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} rational_t; 16913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 17013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef struct { 17113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang int32_t num; 17213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang int32_t den; 17313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} srational_t; 17413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 17513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kangtypedef struct { 17613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang bool enableGps; 17713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang bool enableThumb; 17813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 17913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char maker[32]; 18013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char model[32]; 18113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char software[32]; 18213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char exif_version[4]; 18313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char date_time[20]; 18413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char user_comment[150]; 18513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 18613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t width; 18713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t height; 18813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t widthThumb; 18913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint32_t heightThumb; 19013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 19113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t orientation; 19213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t ycbcr_positioning; 19313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t exposure_program; 19413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t iso_speed_rating; 19513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t metering_mode; 19613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t flash; 19713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t color_space; 19813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t exposure_mode; 19913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t white_balance; 20013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t scene_capture_type; 20113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 20213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t exposure_time; 20313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t fnumber; 20413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t aperture; 20513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t max_aperture; 20613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t focal_length; 20713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 20813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang srational_t shutter_speed; 20913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang srational_t brightness; 21013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang srational_t exposure_bias; 21113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 21213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char gps_latitude_ref[2]; 21313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char gps_longitude_ref[2]; 21413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 21513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint8_t gps_version_id[4]; 21613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint8_t gps_altitude_ref; 21713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 21813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t gps_latitude[3]; 21913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t gps_longitude[3]; 22013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t gps_altitude; 22113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t gps_timestamp[3]; 22213d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char gps_datestamp[11]; 22313d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang unsigned char gps_processing_method[100]; 22413d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 22513d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t x_resolution; 22613d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang rational_t y_resolution; 22713d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t resolution_unit; 22813d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang uint16_t compression_scheme; 22913d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang} exif_attribute_t; 23013d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang 23113d8c7b4650fb7897b4291ed9b3d57b19f7d1ccdSungjoong Kang#endif /* EXYNOS_EXIF_H_ */ 232