Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
ExifParse.cpp File Reference
#include "ExifParse.h"
#include <memory.h>
#include <cstring>
#include <math.h>
#include <stdint.h>
#include <stdio.h>

Macros

#define min(a, b)   (a)>(b)?(b):(a)
 
#define max(a, b)   (a)<(b)?(b):(a)
 
#define DIR_ENTRY_ADDR(Start, Entry)   ((Start)+2+12*(Entry))
 
#define TAG_DESCRIPTION   0x010E
 
#define TAG_MAKE   0x010F
 
#define TAG_MODEL   0x0110
 
#define TAG_ORIENTATION   0x0112
 
#define TAG_X_RESOLUTION   0x011A
 
#define TAG_Y_RESOLUTION   0x011B
 
#define TAG_RESOLUTION_UNIT   0x0128
 
#define TAG_SOFTWARE   0x0131
 
#define TAG_DATETIME   0x0132
 
#define TAG_THUMBNAIL_OFFSET   0x0201
 
#define TAG_THUMBNAIL_LENGTH   0x0202
 
#define TAG_Y_CB_CR_POS   0x0213
 
#define TAG_EXPOSURETIME   0x829A
 
#define TAG_FNUMBER   0x829D
 
#define TAG_EXIF_OFFSET   0x8769
 
#define TAG_EXPOSURE_PROGRAM   0x8822
 
#define TAG_GPSINFO   0x8825
 
#define TAG_ISO_EQUIVALENT   0x8827
 
#define TAG_EXIF_VERSION   0x9000
 
#define TAG_COMPONENT_CFG   0x9101
 
#define TAG_DATETIME_ORIGINAL   0x9003
 
#define TAG_DATETIME_DIGITIZED   0x9004
 
#define TAG_SHUTTERSPEED   0x9201
 
#define TAG_APERTURE   0x9202
 
#define TAG_EXPOSURE_BIAS   0x9204
 
#define TAG_MAXAPERTURE   0x9205
 
#define TAG_SUBJECT_DISTANCE   0x9206
 
#define TAG_METERING_MODE   0x9207
 
#define TAG_LIGHT_SOURCE   0x9208
 
#define TAG_FLASH   0x9209
 
#define TAG_FOCALLENGTH   0x920A
 
#define TAG_MAKER_NOTE   0x927C
 
#define TAG_USERCOMMENT   0x9286
 
#define TAG_XP_COMMENT   0x9c9c
 
#define TAG_FLASHPIX_VERSION   0xA000
 
#define TAG_COLOUR_SPACE   0xA001
 
#define TAG_EXIF_IMAGEWIDTH   0xa002
 
#define TAG_EXIF_IMAGELENGTH   0xa003
 
#define TAG_INTEROP_OFFSET   0xa005
 
#define TAG_FOCALPLANEXRES   0xa20E
 
#define TAG_FOCALPLANEUNITS   0xa210
 
#define TAG_EXPOSURE_INDEX   0xa215
 
#define TAG_EXPOSURE_MODE   0xa402
 
#define TAG_WHITEBALANCE   0xa403
 
#define TAG_DIGITALZOOMRATIO   0xA404
 
#define TAG_FOCALLENGTH_35MM   0xa405
 
#define TAG_GPS_LAT_REF   1
 
#define TAG_GPS_LAT   2
 
#define TAG_GPS_LONG_REF   3
 
#define TAG_GPS_LONG   4
 
#define TAG_GPS_ALT_REF   5
 
#define TAG_GPS_ALT   6
 
#define EXIF_PARSE_STRING_ID_BASE   21800
 

Enumerations

enum  {
  ExifStrDistanceInfinite = EXIF_PARSE_STRING_ID_BASE , ExifStrManual , ExifStrAuto , ExifStrYes ,
  ExifStrNo , ExifStrFlashNoStrobe , ExifStrFlashStrobe , ExifStrFlashManual ,
  ExifStrFlashManualNoReturn , ExifStrFlashManualReturn , ExifStrFlashAuto , ExifStrFlashAutoNoReturn ,
  ExifStrFlashAutoReturn , ExifStrFlashRedEye , ExifStrFlashRedEyeNoReturn , ExifStrFlashRedEyeReturn ,
  ExifStrFlashManualRedEye , ExifStrFlashManualRedEyeNoReturn , ExifStrFlashManualRedEyeReturn , ExifStrFlashAutoRedEye ,
  ExifStrFlashAutoRedEyeNoReturn , ExifStrFlashAutoRedEyeReturn , ExifStrDaylight , ExifStrFluorescent ,
  ExifStrIncandescent , ExifStrFlash , ExifStrFineWeather , ExifStrShade ,
  ExifStrMeteringCenter , ExifStrMeteringSpot , ExifStrMeteringMatrix , ExifStrExposureProgram ,
  ExifStrExposureAperture , ExifStrExposureShutter , ExifStrExposureCreative , ExifStrExposureAction ,
  ExifStrExposurePortrait , ExifStrExposureLandscape , ExifStrExposureModeAuto , ExifStrIsoEquivalent ,
  ExifStrGpsLatitude , ExifStrGpsLongitude , ExifStrGpsAltitude
}
 

Macro Definition Documentation

◆ DIR_ENTRY_ADDR

#define DIR_ENTRY_ADDR ( Start,
Entry )   ((Start)+2+12*(Entry))

◆ EXIF_PARSE_STRING_ID_BASE

#define EXIF_PARSE_STRING_ID_BASE   21800

◆ max

#define max ( a,
b )   (a)<(b)?(b):(a)

◆ min

#define min ( a,
b )   (a)>(b)?(b):(a)

◆ TAG_APERTURE

#define TAG_APERTURE   0x9202

◆ TAG_COLOUR_SPACE

#define TAG_COLOUR_SPACE   0xA001

◆ TAG_COMPONENT_CFG

#define TAG_COMPONENT_CFG   0x9101

◆ TAG_DATETIME

#define TAG_DATETIME   0x0132

◆ TAG_DATETIME_DIGITIZED

#define TAG_DATETIME_DIGITIZED   0x9004

◆ TAG_DATETIME_ORIGINAL

#define TAG_DATETIME_ORIGINAL   0x9003

◆ TAG_DESCRIPTION

#define TAG_DESCRIPTION   0x010E

◆ TAG_DIGITALZOOMRATIO

#define TAG_DIGITALZOOMRATIO   0xA404

◆ TAG_EXIF_IMAGELENGTH

#define TAG_EXIF_IMAGELENGTH   0xa003

◆ TAG_EXIF_IMAGEWIDTH

#define TAG_EXIF_IMAGEWIDTH   0xa002

◆ TAG_EXIF_OFFSET

#define TAG_EXIF_OFFSET   0x8769

◆ TAG_EXIF_VERSION

#define TAG_EXIF_VERSION   0x9000

◆ TAG_EXPOSURE_BIAS

#define TAG_EXPOSURE_BIAS   0x9204

◆ TAG_EXPOSURE_INDEX

#define TAG_EXPOSURE_INDEX   0xa215

◆ TAG_EXPOSURE_MODE

#define TAG_EXPOSURE_MODE   0xa402

◆ TAG_EXPOSURE_PROGRAM

#define TAG_EXPOSURE_PROGRAM   0x8822

◆ TAG_EXPOSURETIME

#define TAG_EXPOSURETIME   0x829A

◆ TAG_FLASH

#define TAG_FLASH   0x9209

◆ TAG_FLASHPIX_VERSION

#define TAG_FLASHPIX_VERSION   0xA000

◆ TAG_FNUMBER

#define TAG_FNUMBER   0x829D

◆ TAG_FOCALLENGTH

#define TAG_FOCALLENGTH   0x920A

◆ TAG_FOCALLENGTH_35MM

#define TAG_FOCALLENGTH_35MM   0xa405

◆ TAG_FOCALPLANEUNITS

#define TAG_FOCALPLANEUNITS   0xa210

◆ TAG_FOCALPLANEXRES

#define TAG_FOCALPLANEXRES   0xa20E

◆ TAG_GPS_ALT

#define TAG_GPS_ALT   6

◆ TAG_GPS_ALT_REF

#define TAG_GPS_ALT_REF   5

◆ TAG_GPS_LAT

#define TAG_GPS_LAT   2

◆ TAG_GPS_LAT_REF

#define TAG_GPS_LAT_REF   1

◆ TAG_GPS_LONG

#define TAG_GPS_LONG   4

◆ TAG_GPS_LONG_REF

#define TAG_GPS_LONG_REF   3

◆ TAG_GPSINFO

#define TAG_GPSINFO   0x8825

◆ TAG_INTEROP_OFFSET

#define TAG_INTEROP_OFFSET   0xa005

◆ TAG_ISO_EQUIVALENT

#define TAG_ISO_EQUIVALENT   0x8827

◆ TAG_LIGHT_SOURCE

#define TAG_LIGHT_SOURCE   0x9208

◆ TAG_MAKE

#define TAG_MAKE   0x010F

◆ TAG_MAKER_NOTE

#define TAG_MAKER_NOTE   0x927C

◆ TAG_MAXAPERTURE

#define TAG_MAXAPERTURE   0x9205

◆ TAG_METERING_MODE

#define TAG_METERING_MODE   0x9207

◆ TAG_MODEL

#define TAG_MODEL   0x0110

◆ TAG_ORIENTATION

#define TAG_ORIENTATION   0x0112

◆ TAG_RESOLUTION_UNIT

#define TAG_RESOLUTION_UNIT   0x0128

◆ TAG_SHUTTERSPEED

#define TAG_SHUTTERSPEED   0x9201

◆ TAG_SOFTWARE

#define TAG_SOFTWARE   0x0131

◆ TAG_SUBJECT_DISTANCE

#define TAG_SUBJECT_DISTANCE   0x9206

◆ TAG_THUMBNAIL_LENGTH

#define TAG_THUMBNAIL_LENGTH   0x0202

◆ TAG_THUMBNAIL_OFFSET

#define TAG_THUMBNAIL_OFFSET   0x0201

◆ TAG_USERCOMMENT

#define TAG_USERCOMMENT   0x9286

◆ TAG_WHITEBALANCE

#define TAG_WHITEBALANCE   0xa403

◆ TAG_X_RESOLUTION

#define TAG_X_RESOLUTION   0x011A

◆ TAG_XP_COMMENT

#define TAG_XP_COMMENT   0x9c9c

◆ TAG_Y_CB_CR_POS

#define TAG_Y_CB_CR_POS   0x0213

◆ TAG_Y_RESOLUTION

#define TAG_Y_RESOLUTION   0x011B

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ExifStrDistanceInfinite 
ExifStrManual 
ExifStrAuto 
ExifStrYes 
ExifStrNo 
ExifStrFlashNoStrobe 
ExifStrFlashStrobe 
ExifStrFlashManual 
ExifStrFlashManualNoReturn 
ExifStrFlashManualReturn 
ExifStrFlashAuto 
ExifStrFlashAutoNoReturn 
ExifStrFlashAutoReturn 
ExifStrFlashRedEye 
ExifStrFlashRedEyeNoReturn 
ExifStrFlashRedEyeReturn 
ExifStrFlashManualRedEye 
ExifStrFlashManualRedEyeNoReturn 
ExifStrFlashManualRedEyeReturn 
ExifStrFlashAutoRedEye 
ExifStrFlashAutoRedEyeNoReturn 
ExifStrFlashAutoRedEyeReturn 
ExifStrDaylight 
ExifStrFluorescent 
ExifStrIncandescent 
ExifStrFlash 
ExifStrFineWeather 
ExifStrShade 
ExifStrMeteringCenter 
ExifStrMeteringSpot 
ExifStrMeteringMatrix 
ExifStrExposureProgram 
ExifStrExposureAperture 
ExifStrExposureShutter 
ExifStrExposureCreative 
ExifStrExposureAction 
ExifStrExposurePortrait 
ExifStrExposureLandscape 
ExifStrExposureModeAuto 
ExifStrIsoEquivalent 
ExifStrGpsLatitude 
ExifStrGpsLongitude 
ExifStrGpsAltitude