ExifTool Object Data Members

The following table lists the data members of the ExifTool object. (If this was C++, these would be documented next to the definitions in the header file, but this is Perl, so I couldn't do that...)

Aside from the variables defined below, there may be other temporary variables added by individual modules. Temporary variables are identified by at least one lower case letter in their name, and are deleted automatically before reading or writing each new image. Make, Model and CameraType are temporary variables like this, but these three are special because they are initialized to an empty string instead of being deleted at the start of processing for each image, which allows them to be tested without having to check for an undefined value.

NameDescription
ADD_DIRSHash of parent directories for each directory added during writing (Note: entry may exist but be undefined for top-level directory!) To avoid adding a directory twice, entries may be deleted from this lookup, but only AFTER WriteDirectory() is called.
BASEAbsolute position of current image in containing file (for example, when processing JPEG image in FujiFilm RAF file)
BOTHReference to HASH of ValueConv/PrintConv arrays, saved for tags when GetValue is called for 'Both' values, and used to avoid having to recalculate both values again (which speeds up building the Composite tags because often the same tag is Require'd by multiple Composite tags).
CameraTypeCamera type used for decoding some Olympus tags
CHANGEDNumber of tags changed during writing
CHARSETLookup table for current Charset setting
CHECK_WARNUsed to return CHECK_PROC warnings
COMP_KEYSLookup for tag keys used in Composite tags
CompressionCompression for current EXIF IFD (or '' if no Compression tag). Valid only in EXIF directories for tags after 0x0103.
CUR_LANGHash reference for localized language lookup corresponding to current 'Lang' options setting.
CUR_WRITE_GROUPCurrent family 1 group while writing. Currently used only when writing QuickTime tracks.
DEL_GROUPHash of groups to delete. Value is 1 to delete group completely, or 2 if tags were added back after deleting the group. May have a leading "-" if excluded from a delete.
DEL_PREVIEWFlag to delete preview from after JPEG EOI
DemoteErrorsErrors are demoted to warnings and this count is incremented if non-zero to begin with
DIR_COUNTHash reference for counters of various types of directories (ICC, IPTC,...)
DIR_NAMEName of directory currently being processed
DOC_COUNTNumber of top-level embedded sub-documents processed while extracting, or 0 if none were processed
DOC_NUMCurrent document number while extracting (0, '' or undef for the main document). May contain a hyphen for sub-subdocuments (eg. '2-3-2').
DoneID3Set to 1 if audio file was scanned for ID3, or 2 if there was an ID3v1 trailer found
DropTagsFlag to exclude "Drop" tags when writing
DUPL_TAGHash of last used tag key index numbers for each duplicate tag.
EDIT_DIRSHash of parent directories for each directory edited during writing (Note: entry may exist but be undefined for top-level directory!)
EndUsed by application to signal end of processing
EndDirUsed by application to signal end of the current directory
ESCAPE_PROCRoutine for XML or HTML escaping if Escape option is set
EXCL_TAG_LOOKUPHash for looking up excluded tags (keys are lower case tag names without group)
EXCL_XMP_LOOKUPHash for looking up excluded "XMP-xxx:yyy" tags (keys are lower case including group). "XMP-xxx" may be any ExifTool family 1 XMP group name, or "XMP-all" for any XMP group. "yyy" may be any XMP property name (NOT ExifTool tag name), or "all" for all tags in a group
EXIF_DATAEXIF data block (valid while reading from file)
EXIF_POSPosition of EXIF data in file
FILENAMEName of input file while extracting (only if we opened it, '' otherwise)
FILE_ORDERHash of numbers to give the sequence the tags were extracted from file, keyed by tag key
FILE_EXTUpper-case file extension (JPG, PEF, AVI, etc...) May be undefined if file has no extension.
FILE_SEQUENCEFile sequence number when extracting information
FILE_TYPERoot file format type (JPEG, TIFF, RIFF, etc...)
FileTypeActual identified file type
FIRST_EXIF_POSPosition of first EXIF in file
FMT_EXPRThe current advanced formatting expression when interpolating tag values in a string. This member allows the formatting expression to be accessed in the ValueConv function of user-defined Composite tags, which provided a mechanism for arguments to be passed to the ValueConv function.
FORCE_WRITEHash reference for metadata types that are being forced to be rewritten (see Extra ForceWrite tag)
FOUND_DIRNames of directories found in file (used by Validate feature)
FOUND_TAGSFound tags with proper case and order
GLOBAL_TIME_OFFSETTime offset hash for first shifted date/time value of GlobalTimeShift option
HTML_DUMPReference to HtmlDump object when using HtmlDump feature
INDENTIndent string for verbose output
INDENT2Indent used in verbose SetNewValue output before writing
IN_RESOURCEFlag indicates we are processing the resource fork of a Mac OS file
IO_TAG_LISTList for output of requested tags in proper case and order
IsWritingFlag set to indicate that metadata is being written to this file
LIST_TAGSHash of tag keys by tagInfo reference for active list-type tags. This hash is cleared at the start of processing for each directory. Not used during when writing.
LOW_PRIORITY_DIRLookup based on directory name for directories where undefined Priority tags get set to Priority 0 (eg. PreviewIFD in all images, and IFD1 in JPEG images). This is equivalent to setting PRIORITY to 0 for the tag table only for a specific directory name. A '*' entry in the lookup causes the priority of tags in any directory to be lowered.
MakeCamera make set during reading and writing
MAKER_NOTE_BYTE_ORDERByte order of extracted maker notes if extracted as a block.
MAKER_NOTE_INFOUsed by Image::ExifTool::CanonRaw as temporary storage for maker note information when synthesizing maker notes from CRW file with the MakerNotes option.
MAKER_NOTE_FIXUPFixup information for maker notes extracted with the MakerNotes option (unless MakerNotes option is 2). Used by SetNewValuesFromFile() to adjust offsets in maker note IFD
ModelCamera model name set during reading and writing
MOVED_KEYTag key of last tag replaced by a higher priority tag in a call to FoundTag().
NEW_VALUEHash of new value information keyed by tag info reference. Elements of new value information hash are:
TagInfo-tag information reference
DelValue-list of specific values to delete
Value-list of values to add
IsCreating-must be set for the tag to be added, otherwise just changed if it already exists. A value of 2 will create a new tag if its group already exists, but won't add a new group
Next-reference to next new value hash in linked list if there is more than one new value hash (for writing to different groups) for this tagInfo
Save-flag set by call to SaveNewValues() if this value should be saved
NewIPTCDigestMD5 digest for most recently written IPTC data (undefined if IPTC doesn't exist or if it was deleted). Calculated only if a value of 'new' is being written/deleted to/from the Photoshop:IPTCDigest tag
NO_LISTSet if List tags shouldn't be accumulated into a list. Undefined to accumulate lists as usual, or 0 to accumulate lists in TAG_EXTRA "NoList" element (and set a TAG_EXTRA "NoListDel" flag for tags that wouldn't have been created).
NO_STRUCTSet if structures shouldn't be restored for this metadata. Used to avoid restoring structures for non-XMP (eg. XML) information.
NO_STRUCT_WARNSet if structures warnings should be ignored when rebuilding structures (for questionable XML).
NO_UNKNOWNDon't generate unknown tags automatically even if Unknown option is set
NUM_FOUNDNumber of tags found
OldIPTCDigestMD5 digest for original IPTC data (undefined if IPTC didn't exist). Calculated only if a value of 'old' is being written/deleted to/from the Photoshop:IPTCDigest tag
OPTIONSExifTool options
PATHList reference to SubDirectory path. eg) [qw(JPEG APP13 Photoshop IPTC)]
PDF_CAPTUREUsed by PDF module to store information when writing
PreferredGroupPreferred family 1 group for writing tags to the current file. Not defined to use the default group priorities. Set in call to InitWriteDirs().
PREVIEW_INFOInformation about preview image used while writing JPEG images only. This is a reference to a hash with the following entries:
Absolute-flag set if PreviewImage pointer is relative to the start of file
BaseShift-shift for base of pointer offsets
Data-data for PreviewImage to be written (may either be data for the old or new image, or 'LOAD_PREVIEW' to indicate that the data must be loaded from outside the EXIF segment)
Fixup-[mandatory] fixup for PreviewImage pointers when writing JPEG images
IsShort-flag indicates PreviewImage pointers are 2-byte (instead of 4-byte) integers
IsTrailer-flag indicates image should always be written as a JPEG trailer, even if it fits inside the APP1 EXIF segment (as with Samsung STMN maker notes)
Relative-flag to indicate that pointer offsets are relative
PRIORITYHash of tag Priority values for current tag, keyed by tag name (not tag key!)
PRIORITY_DIRName of priority directory (ie. the IFD for the full resolution image)
PROCESSEDReference to hash of address/directory names which were processed during reading and/or writing
RAFRandom access file object for reading from input file
RATIONALHash of rational values as a string fraction keyed by tag key
RecreatedDirectories recreated when writing (used to prevent recreating multiple directories of the same type)
REQUESTED_TAGSList of requested tags in original case
REQ_TAG_LOOKUPHash for looking up requested tags (keys are lower case tag names)
SAVE_COUNTCounts number of times SaveNewValues() has been called
SAVE_DEL_GROUPHash of saved DEL_GROUP entries
SAVE_NEW_VALUEHash of new value information which was overwritten after a call to SaveNewValues()
SaveFormatHash reference to check which TIFF format types were used in the file. Valid only if the (undocumented) SaveFormat option is used.
SET_GROUP0Value to use for family 0 group name when new tags are found
SET_GROUP1Value to use for family 1 group name when new tags are found. May start with a '+' sign to add to existing group name
SubfileTypeSubfileType for current EXIF IFD (or '' if no SubfileType tag). Valid only in EXIF directories for tags after 0x00fe.
TAG_EXTRAHash of extra tag information keyed by tag key. Current extra information may include:
G0-override for family 0 group name
G1-dynamic family 1 group name (eg. IFD name or XMP namespace), with a leading '+' to add value to the existing group 1 name
G3-number for embedded documents (eg. 1, 2, etc)
G#-family # group name
Units-used internally to store units for GoPro values
Struct-used internally to store structure properties
NoList-used internally to store values for List-type tags
NoListDel-flag used internally to delete value if included in another list
Fixup-fixup information for maker notes block
TAG_INFOHash of tagInfo hash references, keyed by tag key
TAGS_FROM_FILEFlag used during extraction when called from SetNewValuesFromFile(). Test this flag when extracting tags that are not normally extracted.
TIFF_ENDLocation of end of regular TIFF file set by WriteExif()
TIFF_TYPEType of TIFF data, only set if FILE_TYPE is TIFF. Valid values are APP1, APP3, TIFF, CR2, MRW, JP2, JPX, NEF, PEF, ORF, DNG, etc.
ValidateFlag to do extra validation checks
VALUEHash of raw tag values keyed by tag key
WARNED_ONCEHash of warning messages that have been issued once already
WRITE_GROUPSList of write groups in order of priority
WRITE_PRIORITYHash of write priority values keyed by group name
WRITTENHash of tags written (currently used only for filesystem date/time tags)
XMP_CAPTUREHash of tag information (value, attribute hash) keyed by XMP property path, used by XMP module during writing
XMP_ERRORError string used by XMP module during writing
XMP_NSHash of URI's keyed by namespace prefix, used by XMP module during writing to remember all used namespaces

<-- Back to ExifTool home page