listx option - need help understanding

Started by sebutzu, May 21, 2023, 05:04:34 PM

Previous topic - Next topic

sebutzu

I am trying to create a wrapper on top of ExifTool for C# and I am trying to understand listx...output.
I see that -listx together with -s gives me a list of what I hope are all tags.
I see the following types:
type='?'
type='Arc'
type='binary'
type='BitsRect#'
type='BitsRgn#'
type='boolean'
type='CompressedQuickTime'
type='date'
type='digits'
type='DirectBitsRect'
type='DirectBitsRgn'
type='double'
type='extended'
type='fixed16s'
type='fixed32s'
type='fixed32u'
type='float'
type='FontName'
type='GUID'
type='Int16Data'
type='int16s'
type='int16u'
type='int16uRev'
type='int32s'
type='int32u'
type='Int32uData'
type='int32uRev'
type='int64s'
type='int64u'
type='int8s'
type='int8u'
type='Int8u2Text'
type='Int8uText'
type='integer'
type='lang-alt'
type='null'
type='PixPat'
type='Point'
type='PointText'
type='Polygon'
type='pstring'
type='rational'
type='rational32s'
type='rational32u'
type='rational64s'
type='rational64u'
type='real'
type='Rect'
type='resize'
type='RGBColor'
type='Rgn'
type='ShortLine'
type='signed'
type='string'
type='struct'
type='undef'
type='Unicode'
type='Unknown'
type='unsigned'
type='utf8'
type='var_int16u'
type='var_pstr32'
type='var_string'
type='var_ue7'
type='var_ustr32'
type='vt_filetime'
I would like some help about those...
?, null, undef ... what are they, how to "map" them to C#?
struct - are there some details about it?
Unicode, utf8, etc - are they strings?
If there is somewhere a description for each of this types would be really helpful...
Also I can only assume that if g1 name ends in # it means it can be multiple with numbers like QuickTime:Track1, 2, etc...is this correct?
For each tag things like index or count can appear...what do they mean?
Does the type refer to the value without print conversions?
Is there a way to know for each tag if it supports multiple values or not? (List like tags for example keywords).
Is there a way for a file to get both raw values and print conversion values? Or do I need to call exiftool twice for this? Maybe in json output?
Composite:MWG is not listed in result...are there any other?

also found some flags...
flags='Alt,List'
flags='Avoid,Bag,Binary,List'
flags='Avoid,Bag,List'
flags='Avoid,Binary'
flags='Avoid,Flattened,List,Seq'
flags='Avoid,Flattened,List'
flags='Avoid,Flattened'
flags='Avoid,List,Seq'
flags='Avoid,List'
flags='Avoid'
flags='Bag,Flattened,List'
flags='Bag,List'
flags='Binary,List,Unsafe'
flags='Binary,List'
flags='Binary,Permanent,Unknown'
flags='Binary,Permanent,Unsafe'
flags='Binary,Permanent'
flags='Binary,Unknown'
flags='Binary,Unsafe'
flags='Binary'
flags='Flattened,List,Seq'
flags='Flattened,List,Unsafe'
flags='Flattened,List'
flags='Flattened'
flags='List,Seq'
flags='List,Unknown'
flags='List,Unsafe'
flags='List'
flags='Mandatory,Unsafe'
flags='Mandatory'
flags='Permanent,Protected'
flags='Permanent,Unknown'
flags='Permanent,Unsafe'
flags='Permanent'
flags='Protected'
flags='Unknown'
flags='Unsafe'
What do they mean?
Kind regards, and thank again for the BEST TOOL in the WORLD!

Phil Harvey

Quote from: sebutzu on May 21, 2023, 05:04:34 PMI see that -listx together with -s gives me a list of what I hope are all tags.

Some metadata formats may contain non-standard tags which are not included in this output.

QuoteI see the following types:

This is the storage type, which really isn't all that much help because the return converted value may be a different type.

QuoteAlso I can only assume that if g1 name ends in # it means it can be multiple with numbers like QuickTime:Track1, 2, etc...is this correct?

Yes.

QuoteFor each tag things like index or count can appear...what do they mean?

"index" disambiguates tags with the same ID.  "count" gives the number of values stored for some metadata types.

QuoteIs there a way to know for each tag if it supports multiple values or not? (List like tags for example keywords).

Add the -f option and these tags will have "List" in the "flags".

QuoteIs there a way for a file to get both raw values and print conversion values? Or do I need to call exiftool twice for this? Maybe in json output?

Yes, with the -l option added.  Also in the XML and PHP outputs with -l.

QuoteComposite:MWG is not listed in result...are there any other?

The MWG module is not loaded by default.  Use -use MWG to load it.

Quotealso found some flags...
What do they mean?

Most of these are explained in the first page of the Tag Name documentation.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).