ExifTool Forum

ExifTool => Bug Reports / Feature Requests => Topic started by: greybeard on October 30, 2024, 11:17:20 AM

Title: Combination of switches -v3 and -W+
Post by: greybeard on October 30, 2024, 11:17:20 AM
This might be an obscure bug - I expect the use of -W+ to have the same effect as redirecting STDOUT to a file - but there appear to be some file types (an example is the Canon CR3) where this doesn't always happen in combination with the verbose switch (-v3).

Examples:

exiftool  -v3 IMG_0444.CR3  -W+ verbose.txt
gives the following output:

|  1d4ba06: 00 00 00 01 00 00                               [......]
|  1d4ba1e: 00 00 00 01 ff ff                               [......]
|  1d4ba2e: 00 00 00 01 ff ff                               [......]
|  1d4ba46: 00 00 00 01 ff ff                               [......]
|  1d4ba6e: 01 01 00 01 ff ff                               [......]
|  1d4d20a: 01 01 01 01 ff ff                               [......]
|  1d67340: 01 01 02 01 ff ff                               [......]
    0 output files created
    1 output files appended

Whereas:

exiftool  -v3 IMG_0444.CR3  > verbose1.txt
As expected this writes nothing at all to the display.

Running diff on the output files gives me:

2115a2116
> |  1d4ba06: 00 00 00 01 00 00                               [......]
2119a2121
> |  1d4ba1e: 00 00 00 01 ff ff                               [......]
2121a2124
> |  1d4ba2e: 00 00 00 01 ff ff                               [......]
2129a2133
> |  1d4ba46: 00 00 00 01 ff ff                               [......]
2144a2149
> |  1d4ba6e: 01 01 00 01 ff ff                               [......]
2602a2608
> |  1d4d20a: 01 01 01 01 ff ff                               [......]
2726a2733
> |  1d67340: 01 01 02 01 ff ff                               [......]

And using grep to locate the problem:

grep -C5 1d67340 verb*
verbose1.txt-| | | | + [BinaryData directory, 4608 bytes]
verbose1.txt-| | | | 3)  Canon_0x404b = 65535 65535
verbose1.txt-| | | |     - Tag 0x404b (4 bytes, int16u[2]):
verbose1.txt-| | | |      1d4d24e: ff ff ff ff                                     [....]
verbose1.txt-+ [CTMD type 9 directory, 4140 bytes]
verbose1.txt:|  1d67340: 01 01 02 01 ff ff                               [......]
verbose1.txt-| ExifInfo9 (SubDirectory) -->
verbose1.txt-| - Tag 0x0009 (4134 bytes):
verbose1.txt-|  1d67346: 26 10 00 00 7c 92 00 00 49 49 2a 00 08 00 00 00 [&...|...II*.....]
verbose1.txt-|  1d67356: 05 00 15 40 07 00 dc 05 00 00 46 00 00 00 33 40 [...@......F...3@]
verbose1.txt-|  1d67366: 07 00 20 03 00 00 22 06 00 00 2e 40 07 00 f4 01 [.. ..."....@....]

It seems to always be the line after the start of the CTMD directory that does not get written to the file.
Title: Re: Combination of switches -v3 and -W+
Post by: Phil Harvey on October 30, 2024, 11:29:21 AM
Great, thanks!

This will be fixed in 13.01

There are a few other places for CBOR metadata where this was fixed too,

- Phil