[REQUEST] New Field(s) List?

Started by blue-j, January 30, 2025, 03:09:40 PM

Previous topic - Next topic

blue-j

Hey Phil, i am wondering if it might be possible to automate including a list of new fields in each revision announcement?  for example:

"Added a new QuickTime tag"

could include the field name?

"Added a new QuickTime tag
QuickTime:Camm1:RollingShutterSkewTime"  (fake example for illustrative purposes)

or maybe it's just a list of new fields separate from your description, dunno.

otherwise every time you announce a new field, we have to try and figure out which one is new.

as usual, i demand nothing, am grateful for everything, and respect any decision you make on this.  - J

StarGeek

The quick and dirty way would be to diff the -list* option outputs.

For example, the difference of -listx between 13.13 and 13.16
2c2
< <!-- Generated by Image::ExifTool 13.13 -->
---
> <!-- Generated by Image::ExifTool 13.16 -->
17514a17515,17651
> <table name='Nikon::MenuSettingsZ9v5' g0='MakerNotes' g1='Nikon' g2='Camera'>
>  <tag id='72' name='HighFrameRate' type='int8u' writable='true'/>
>  <tag id='158' name='MultipleExposureMode' type='int8u' writable='true'/>
>  <tag id='160' name='MultiExposureShots' type='int8u' writable='true'/>
>  <tag id='208' name='Intervals' type='int32u' writable='true'/>
>  <tag id='212' name='ShotsPerInterval' type='int32u' writable='true'/>
>  <tag id='252' name='FocusShiftNumberShots' type='int8u' writable='true'/>
>  <tag id='256' name='FocusShiftStepWidth' type='int8u' writable='true'/>
>  <tag id='260' name='FocusShiftInterval' type='int8u' writable='false'/>
>  <tag id='264' name='FocusShiftExposureLock' type='int8u' writable='true'/>
>  <tag id='294' name='PhotoShootingMenuBank' type='int8u' writable='true'/>
>  <tag id='296' name='ExtendedMenuBanks' type='int8u' writable='true'/>
>  <tag id='332' name='PhotoShootingMenuBankImageArea' type='int8u' writable='true'/>
>  <tag id='346' name='AutoISO' type='int8u' writable='true'/>
>  <tag id='348' name='ISOAutoHiLimit' type='int16u' writable='true'/>
>  <tag id='350' name='ISOAutoFlashLimit' type='int16u' writable='true'/>
>  <tag id='358' name='ISOAutoShutterTime' type='int16s' writable='false'/>
>  <tag id='440' name='MovieVignetteControl' type='int8u' writable='true'/>
>  <tag id='442' name='DiffractionCompensation' type='int8u' writable='true'/>
>  <tag id='444' name='FlickerReductionShooting' type='int8u' writable='true'/>
>  <tag id='448' name='FlashControlMode' type='int8u' writable='true'/>
>  <tag id='450' name='FlashMasterCompensation' type='int8s' writable='true'/>
>  <tag id='454' name='FlashGNDistance' type='int8u' writable='false'/>
>  <tag id='458' name='FlashOutput' type='int8u' writable='true'/>
>  <tag id='552' name='AFAreaMode' type='int8u' writable='true'/>
>  <tag id='554' name='VRMode' type='int8u' writable='true'/>
>  <tag id='558' name='BracketSet' type='int8u' writable='true'/>
>  <tag id='560' name='BracketProgram' type='int8u' writable='true'/>
>  <tag id='562' name='BracketIncrement' type='int8u' writable='true'/>
>  <tag id='574' name='HDR' type='int8u' writable='true'/>
>  <tag id='580' name='SecondarySlotFunction' type='int8u' writable='true'/>
>  <tag id='586' name='HDRLevel' type='int8u' writable='true'/>
>  <tag id='590' name='Slot2JpgSize' type='int8u' writable='true'/>
>  <tag id='596' name='DXCropAlert' type='int8u' writable='true'/>
>  <tag id='598' name='SubjectDetection' type='int8u' writable='true'/>
>  <tag id='600' name='DynamicAFAreaSize' type='int8u' writable='true'/>
>  <tag id='640' name='HighFrequencyFlickerReduction' type='int8u' writable='true'/>
>  <tag id='650' name='MovieImageArea' type='int8u' writable='true'/>
>  <tag id='660' name='MovieType' type='int8u' writable='true'/>
>  <tag id='662' name='MovieISOAutoHiLimit' type='int16u' writable='true'/>
>  <tag id='664' name='MovieISOAutoControlManualMode' type='int8u' writable='true'/>
>  <tag id='666' name='MovieISOAutoManualMode' type='int16u' writable='true'/>
>  <tag id='740' name='MovieActiveD-Lighting' type='int8u' writable='true'/>
>  <tag id='742' name='MovieHighISONoiseReduction' type='int8u' writable='true'/>
>  <tag id='748' name='MovieFlickerReduction' type='int8u' writable='true'/>
>  <tag id='750' name='MovieMeteringMode' type='int8u' writable='true'/>
>  <tag id='752' name='MovieFocusMode' type='int8u' writable='true'/>
>  <tag id='754' name='MovieAFAreaMode' type='int8u' writable='true'/>
>  <tag id='756' name='MovieVRMode' type='int8u' writable='true'/>
>  <tag id='760' name='MovieElectronicVR' type='int8u' writable='true'/>
>  <tag id='762' name='MovieSoundRecording' type='int8u' writable='true'/>
>  <tag id='764' name='MicrophoneSensitivity' type='int8u' writable='true'/>
>  <tag id='766' name='MicrophoneAttenuator' type='int8u' writable='true'/>
>  <tag id='768' name='MicrophoneFrequencyResponse' type='int8u' writable='true'/>
>  <tag id='770' name='WindNoiseReduction' type='int8u' writable='true'/>
>  <tag id='792' name='MovieToneMap' type='int8u' writable='true'/>
>  <tag id='798' name='MovieFrameSize' type='int8u' writable='true'/>
>  <tag id='800' name='MovieFrameRate' type='int8u' writable='true'/>
>  <tag id='806' name='MicrophoneJackPower' type='int8u' writable='true'/>
>  <tag id='807' name='MovieDXCropAlert' type='int8u' writable='true'/>
>  <tag id='808' name='MovieSubjectDetection' type='int8u' writable='true'/>
>  <tag id='816' name='MovieHighResZoom' type='int8u' writable='true'/>
>  <tag id='1502' name='Language' type='int8u' writable='true'/>
>  <tag id='1504' name='TimeZone' type='int8u' writable='true'/>
>  <tag id='1510' name='MonitorBrightness' type='int8u' writable='true'/>
>  <tag id='1532' name='AFFineTune' type='int8u' writable='true'/>
>  <tag id='1536' name='NonCPULens1FocalLength' type='int16s' writable='false'/>
>  <tag id='1540' name='NonCPULens2FocalLength' type='int16s' writable='false'/>
>  <tag id='1542' name='NonCPULens3FocalLength' type='int16s' writable='false'/>
>  <tag id='1548' name='NonCPULens4FocalLength' type='int16s' writable='false'/>
>  <tag id='1552' name='NonCPULens5FocalLength' type='int16s' writable='false'/>
>  <tag id='1556' name='NonCPULens6FocalLength' type='int16s' writable='false'/>
>  <tag id='1560' name='NonCPULens7FocalLength' type='int16s' writable='false'/>
>  <tag id='1564' name='NonCPULens8FocalLength' type='int16s' writable='false'/>
>  <tag id='1568' name='NonCPULens9FocalLength' type='int16s' writable='false'/>
>  <tag id='1572' name='NonCPULens10FocalLength' type='int16s' writable='false'/>
>  <tag id='1576' name='NonCPULens11FocalLength' type='int16s' writable='false'/>
>  <tag id='1580' name='NonCPULens12FocalLength' type='int16s' writable='false'/>
>  <tag id='1584' name='NonCPULens13FocalLength' type='int16s' writable='false'/>
>  <tag id='1588' name='NonCPULens14FocalLength' type='int16s' writable='false'/>
>  <tag id='1592' name='NonCPULens15FocalLength' type='int16s' writable='false'/>
>  <tag id='1596' name='NonCPULens16FocalLength' type='int16s' writable='false'/>
>  <tag id='1600' name='NonCPULens17FocalLength' type='int16s' writable='false'/>
>  <tag id='1604' name='NonCPULens18FocalLength' type='int16s' writable='false'/>
>  <tag id='1608' name='NonCPULens19FocalLength' type='int16s' writable='false'/>
>  <tag id='1612' name='NonCPULens20FocalLength' type='int16s' writable='false'/>
>  <tag id='1616' name='NonCPULens1MaxAperture' type='int16s' writable='false'/>
>  <tag id='1620' name='NonCPULens2MaxAperture' type='int16s' writable='false'/>
>  <tag id='1624' name='NonCPULens3MaxAperture' type='int16s' writable='false'/>
>  <tag id='1628' name='NonCPULens4MaxAperture' type='int16s' writable='false'/>
>  <tag id='1632' name='NonCPULens5MaxAperture' type='int16s' writable='false'/>
>  <tag id='1636' name='NonCPULens6MaxAperture' type='int16s' writable='false'/>
>  <tag id='1640' name='NonCPULens7MaxAperture' type='int16s' writable='false'/>
>  <tag id='1644' name='NonCPULens8MaxAperture' type='int16s' writable='false'/>
>  <tag id='1648' name='NonCPULens9MaxAperture' type='int16s' writable='false'/>
>  <tag id='1652' name='NonCPULens10MaxAperture' type='int16s' writable='false'/>
>  <tag id='1656' name='NonCPULens11MaxAperture' type='int16s' writable='false'/>
>  <tag id='1660' name='NonCPULens12MaxAperture' type='int16s' writable='false'/>
>  <tag id='1664' name='NonCPULens13MaxAperture' type='int16s' writable='false'/>
>  <tag id='1668' name='NonCPULens14MaxAperture' type='int16s' writable='false'/>
>  <tag id='1672' name='NonCPULens15MaxAperture' type='int16s' writable='false'/>
>  <tag id='1676' name='NonCPULens16MaxAperture' type='int16s' writable='false'/>
>  <tag id='1680' name='NonCPULens17MaxAperture' type='int16s' writable='false'/>
>  <tag id='1684' name='NonCPULens18MaxAperture' type='int16s' writable='false'/>
>  <tag id='1688' name='NonCPULens19MaxAperture' type='int16s' writable='false'/>
>  <tag id='1692' name='NonCPULens20MaxAperture' type='int16s' writable='false'/>
>  <tag id='1708' name='HDMIOutputResolution' type='int8u' writable='true'/>
>  <tag id='1721' name='SetClockFromLocationData' type='int8u' writable='true'/>
>  <tag id='1728' name='AirplaneMode' type='int8u' writable='true'/>
>  <tag id='1729' name='EmptySlotRelease' type='int8u' writable='true'/>
>  <tag id='1764' name='EnergySavingMode' type='int8u' writable='true'/>
>  <tag id='1788' name='RecordLocationData' type='int8u' writable='true'/>
>  <tag id='1792' name='USBPowerDelivery' type='int8u' writable='true'/>
>  <tag id='1801' name='SensorShield' type='int8u' writable='true'/>
>  <tag id='1866' name='AutoCapturePreset' type='int8u' writable='true'/>
>  <tag id='1868' name='FocusShiftAutoReset' type='int8u' writable='true'/>
>  <tag id='1926' name='PreReleaseBurstLength' type='int8u' writable='true'/>
>  <tag id='1928' name='PostReleaseBurstLength' type='int8u' writable='true'/>
>  <tag id='1942' name='VerticalISOButton' type='int8u' writable='true'/>
>  <tag id='1944' name='ExposureCompensationButton' type='int8u' writable='true'/>
>  <tag id='1946' name='ISOButton' type='int8u' writable='true'/>
>  <tag id='2006' name='ViewModeShowEffectsOfSettings' type='int8u' writable='true'/>
>  <tag id='2008' name='DispButton' type='int8u' writable='true'/>
>  <tag id='2052' name='ExposureDelay' type='fixed32u' writable='false'/>
>  <tag id='2056' name='CommandDialFrameAdvanceZoom' type='int8u' writable='true'/>
>  <tag id='2058' name='SubCommandDialFrameAdvanceZoom' type='int8u' writable='true'/>
>  <tag id='2060' name='PlaybackButton' type='int8u' writable='true'/>
>  <tag id='2062' name='WBButton' type='int8u' writable='true'/>
>  <tag id='2064' name='BracketButton' type='int8u' writable='true'/>
>  <tag id='2066' name='FlashModeButton' type='int8u' writable='true'/>
>  <tag id='2068' name='LensFunc1ButtonPlaybackMode' type='int8u' writable='true'/>
>  <tag id='2070' name='LensFunc2ButtonPlaybackMode' type='int8u' writable='true'/>
>  <tag id='2072' name='PlaybackButtonPlaybackMode' type='int8u' writable='true'/>
>  <tag id='2074' name='BracketButtonPlaybackMode' type='int8u' writable='true'/>
>  <tag id='2076' name='FlashModeButtonPlaybackMode' type='int8u' writable='true'/>
> </table>
>
25213a25351
>  <tag id='4' name='AlphaIsUsed' type='int8u' writable='false'/>

But there are still problems with it. For example, you don't know what group the AlphaIsUsed tag in the output belongs to.
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

blue-j

can you please share the command you used to produce this output?

- J

StarGeek

exiftool_13.13 -listx -s >temp1.txt
exiftool -listx -s >temp2.txt
(at the time my regular exiftool was 13.16)

Then
diff temp1.txt temp2.txt

I wonder if there's an XML diff program. Something that would make the differences more human-readable.
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype