17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* 27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License. 67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at 77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and 147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License. 157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file M4EXIFC_CommonAPI.h 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief EXIF common data header 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note The types, structures and macros defined in this file allow reading 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * and writing EXIF JPEG images compliant spec EXIF 2.2 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4_EXIF_COMMON_API_H__ 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4_EXIF_COMMON_API_H__ 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4TOOL_VersionInfo.h" 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4Common_types.h" 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Debug.h" 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Error.h" 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h" 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Memory.h" 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_CoreID.h" 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************ 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * type M4EXIFC_Context 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************ 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_Void* M4EXIFC_Context; 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Errors & Warnings 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_NO_ERR 0x00000000 /**< invalid parameter */ 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_PARAMETER 0x00000001 /**< invalid parameter */ 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_ALLOC 0x00000002 /**< allocation error */ 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_BAD_CONTEXT 0x00000003 /**< invalid context */ 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_NOT_COMPLIANT 0x00000004 /**< the image in buffer is not 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi JPEG compliant */ 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_NO_APP_FOUND 0x00000005 /**< the JPEG image does not contain any APP1 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Exif 2.2 compliant */ 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_WAR_NO_THUMBNAIL 0x00000006 /**< the Exif part does not contain any 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi thumbnail */ 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4EXIFC_ERR_APP_TRUNCATED 0x00000007 /**< The APP1 section in input buffer is 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi not complete */ 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4EXIFC_BasicTags 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure stores the basic tags values. 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This Exif reader focuses on a set of "Entry Tags". 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * This structure contains the corresponding "Entry Values" of these tags. 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4EXIFC_Char* fields of structure are Null terminated Strings. 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 width; /**< image width in pixels */ 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 height; /**< image height in pixels */ 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *creationDateTime; /**< date and time original image was generated */ 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *lastChangeDateTime; /**< file change date and time */ 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *description; /**< image title */ 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *make; /**< manufacturer of image input equipment */ 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *model; /**< model of image input equipment */ 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *software; /**< software used */ 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *artist; /**< person who created the image */ 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *copyright; /**< copyright holder */ 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4COMMON_Orientation orientation; /**< orientation of image */ 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 thumbnailSize; /**< size of the thumbnail */ 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 *thumbnailImg; /**< pointer to the thumbnail in main image buffer*/ 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *latitudeRef; /**< latitude reference */ 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4COMMON_Location latitude; /**< latitude */ 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char *longitudeRef; /**< longitude reference */ 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4COMMON_Location longitude; /**< longitude */ 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4EXIFC_BasicTags; 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4EXIFC_getVersion (M4_VersionInfo *pVersion) 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief get the version numbers of the exif library. 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This function retrieves the version numbers in a structure. 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param pVersion: (OUT) the structure containing version numbers 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: there is no error 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4EXIFC_ERR_PARAMETER: (Debug only) the parameter is M4EXIFC_NULL. 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4EXIFC_getVersion (M4_VersionInfo *pVersion); 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus*/ 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4_EXIF_COMMON_API_H__ */ 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 119