ExifTool Forum

ExifTool => Bug Reports / Feature Requests => Topic started by: lokatz on January 13, 2021, 04:19:09 PM

Title: Out of memory error when writing Orientation tag
Post by: lokatz on January 13, 2021, 04:19:09 PM
Hi everyone,

When trying to set the orientation of a PNG image that does not contain an Orientation tag, I get an Out of memory error and ExifTool returns NULL when trying to read the output.  This is called via an args file as follows;

-n
-Orientation=8
-overwrite_original
[FILE]
-execute


The same approach works fine with other images that already include an Orientation tag.  Any idea what is causing it and how I could avoid or work around it?  I assume this tag CAN be added to such an image?

Thanks in advance!

Title: Re: Out of memory error when writing Orientation tag
Post by: StarGeek on January 13, 2021, 04:57:22 PM
What is the file size of the image and what are it's dimensions?  What version of exiftool are you using (exiftool -ver)?

I can't replicate this on my end.
Title: Re: Out of memory error when writing Orientation tag
Post by: lokatz on January 13, 2021, 06:21:28 PM
The image is 5196x3993px large and the file size is 118 MB, which is surprisingly large for this format.  It opens and rotates fine in Photoshop, though. I use ExifTool 12.13. 
Title: Re: Out of memory error when writing Orientation tag
Post by: StarGeek on January 13, 2021, 07:58:32 PM
That is a pretty big file size.

Try adding -api LargeFileSupport to the command and see if that helps.  Though I doubt it will change anything as the file isn't big enough, as that option is for gigabyte file sizes.
Title: Re: Out of memory error when writing Orientation tag
Post by: Phil Harvey on January 13, 2021, 09:03:56 PM
Can you show me the output of exiftool -v3 on this file?

- Phil
Title: Re: Out of memory error when writing Orientation tag
Post by: lokatz on January 14, 2021, 03:11:20 AM
The LargeFileSupport option did not change anything, as you already expected.

Here is the -v3 protocol.  The way this is handled in my program, ExifTool output is first read into a string list and the result reported back, to be processed further then.  This is why you see the error message with line count and missing '{ready} info first and the ExifTool error, which is reported asynchronously, later.  Looks like something is messed up in the file.

01/14 09:05 05.26   ERROR:  EX_ExecuteExiftoolCommandAndReturnOutput() read NULL line after 270 valid lines, without getting {ready}

01/14 09:05 05.26          ExifToolVersion = 12.13
01/14 09:05 05.27          FileName = 2019-12-12 25 Storks.png
01/14 09:05 05.27          Directory = C:/MyImgTest
01/14 09:05 05.28          FileSize = 124511543
01/14 09:05 05.28          FileModifyDate = 1586892720.46418
01/14 09:05 05.29          FileAccessDate = 1610570495.49873
01/14 09:05 05.29          FileCreateDate = 1610529996.02787
01/14 09:05 05.30          FilePermissions = 33206
01/14 09:05 05.30          FileType = PNG
01/14 09:05 05.31          FileTypeExtension = PNG
01/14 09:05 05.31          MIMEType = image/png
01/14 09:05 05.31        PNG IHDR (13 bytes):
01/14 09:05 05.32              0010: 00 00 14 4c 00 00 0f 99 10 02 00 00 00          [...L.........]
01/14 09:05 05.32          + [BinaryData directory, 13 bytes]
01/14 09:05 05.33          | ImageWidth = 5196
01/14 09:05 05.33          | - Tag 0x0000 (4 bytes, int32u[1]):
01/14 09:05 05.34          |     0000: 00 00 14 4c                                     [...L]
01/14 09:05 05.34          | ImageHeight = 3993
01/14 09:05 05.35          | - Tag 0x0004 (4 bytes, int32u[1]):
01/14 09:05 05.35          |     0004: 00 00 0f 99                                     [....]
01/14 09:05 05.36          | BitDepth = 16
01/14 09:05 05.36          | - Tag 0x0008 (1 bytes, int8u[1]):
01/14 09:05 05.37          |     0008: 10                                              [.]
01/14 09:05 05.37          | ColorType = 2
01/14 09:05 05.38          | - Tag 0x0009 (1 bytes, int8u[1]):
01/14 09:05 05.38          |     0009: 02                                              [.]
01/14 09:05 05.39          | Compression = 0
01/14 09:05 05.39          | - Tag 0x000a (1 bytes, int8u[1]):
01/14 09:05 05.40          |     000a: 00                                              [.]
01/14 09:05 05.40          | Filter = 0
01/14 09:05 05.41          | - Tag 0x000b (1 bytes, int8u[1]):
01/14 09:05 05.41          |     000b: 00                                              [.]
01/14 09:05 05.42          | Interlace = 0
01/14 09:05 05.42          | - Tag 0x000c (1 bytes, int8u[1]):
01/14 09:05 05.43          |     000c: 00                                              [.]
01/14 09:05 05.44        PNG pHYs (9 bytes):
01/14 09:05 05.44              0029: 00 00 2e 23 00 00 2e 23 01                      [...#...#.]
01/14 09:05 05.45          + [BinaryData directory, 9 bytes]
01/14 09:05 05.45          | PixelsPerUnitX = 11811
01/14 09:05 05.46          | - Tag 0x0000 (4 bytes, int32u[1]):
01/14 09:05 05.46          |     0000: 00 00 2e 23                                     [...#]
01/14 09:05 05.46          | PixelsPerUnitY = 11811
01/14 09:05 05.47          | - Tag 0x0004 (4 bytes, int32u[1]):
01/14 09:05 05.47          |     0004: 00 00 2e 23                                     [...#]
01/14 09:05 05.48          | PixelUnits = 1
01/14 09:05 05.48          | - Tag 0x0008 (1 bytes, int8u[1]):
01/14 09:05 05.49          |     0008: 01                                              [.]
01/14 09:05 05.49        PNG iCCP (2637 bytes):
01/14 09:05 05.50              003e: 50 68 6f 74 6f 73 68 6f 70 20 49 43 43 20 70 72 [Photoshop ICC pr]
01/14 09:05 05.50              004e: 6f 66 69 6c 65 00 00 78 da 9d 53 77 58 93 f7 16 [ofile..x..SwX...]
01/14 09:05 05.51              005e: 3e df f7 65 0f 56 42 d8 f0 b1 97 6c 81 00 22 23 [>..e.VB....l.."#]
01/14 09:05 05.51              006e: ac 08 c8 10 59 a2 10 92 00 61 84 10 12 40 c5 85 [....Y....a...@..]
01/14 09:05 05.52              007e: 88 0a 56 14 15 11 9c 48 55 c4 82 d5 0a 48 9d 88 [..V....HU....H..]
01/14 09:05 05.52              [snip 2557 bytes]
01/14 09:05 05.53          + [iCCP directory]
01/14 09:05 05.53          | ProfileName = Photoshop ICC profile
01/14 09:05 05.54          | - Tag 'iCCP-name' (21 bytes):
01/14 09:05 05.54          |     0000: 50 68 6f 74 6f 73 68 6f 70 20 49 43 43 20 70 72 [Photoshop ICC pr]
01/14 09:05 05.55          |     0010: 6f 66 69 6c 65                                  [ofile]
01/14 09:05 05.55          + [Decompressed ICC_Profile directory, 3144 bytes]
01/14 09:05 05.56          |     0000: 00 00 0c 48 4c 69 6e 6f 02 10 00 00 6d 6e 74 72 [...HLino....mntr]
01/14 09:05 05.56          |     0010: 52 47 42 20 58 59 5a 20 07 ce 00 02 00 09 00 06 [RGB XYZ ........]
01/14 09:05 05.57          |     0020: 00 31 00 00 61 63 73 70 4d 53 46 54 00 00 00 00 [.1..acspMSFT....]
01/14 09:05 05.57          |     0030: 49 45 43 20 73 52 47 42 00 00 00 00 00 00 00 00 [IEC sRGB........]
01/14 09:05 05.58          |     0040: 00 00 00 00 00 00 f6 d6 00 01 00 00 00 00 d3 2d [...............-]
01/14 09:05 05.58          |     [snip 3064 bytes]
01/14 09:05 05.59          + [ICC_Profile directory with 17 entries, 3144 bytes]
01/14 09:05 05.59          | ProfileHeader (SubDirectory) -->
01/14 09:05 05.60          | + [BinaryData directory, 128 bytes]
01/14 09:05 05.60          | | ProfileCMMType = Lino
01/14 09:05 05.60          | | - Tag 0x0004 (4 bytes, string[4]):
01/14 09:05 05.61          | |     0004: 4c 69 6e 6f                                     [Lino]
01/14 09:05 05.61          | | ProfileVersion = 528
01/14 09:05 05.62          | | - Tag 0x0008 (2 bytes, int16s[1]):
01/14 09:05 05.62          | |     0008: 02 10                                           [..]
01/14 09:05 05.63          | | ProfileClass = mntr
01/14 09:05 05.63          | | - Tag 0x000c (4 bytes, string[4]):
01/14 09:05 05.64          | |     000c: 6d 6e 74 72                                     [mntr]
01/14 09:05 05.64          | | ColorSpaceData = RGB
01/14 09:05 05.65          | | - Tag 0x0010 (4 bytes, string[4]):
01/14 09:05 05.65          | |     0010: 52 47 42 20                                     [RGB ]
01/14 09:05 05.66          | | ProfileConnectionSpace = XYZ
01/14 09:05 05.66          | | - Tag 0x0014 (4 bytes, string[4]):
01/14 09:05 05.66          | |     0014: 58 59 5a 20                                     [XYZ ]
01/14 09:05 05.67          | | ProfileDateTime = 1998 2 9 6 49 0
01/14 09:05 05.67          | | - Tag 0x0018 (12 bytes, int16u[6]):
01/14 09:05 05.68          | |     0018: 07 ce 00 02 00 09 00 06 00 31 00 00             [.........1..]
01/14 09:05 05.68          | | ProfileFileSignature = acsp
01/14 09:05 05.69          | | - Tag 0x0024 (4 bytes, string[4]):
01/14 09:05 05.69          | |     0024: 61 63 73 70                                     [acsp]
01/14 09:05 05.70          | | PrimaryPlatform = MSFT
01/14 09:05 05.70          | | - Tag 0x0028 (4 bytes, string[4]):
01/14 09:05 05.71          | |     0028: 4d 53 46 54                                     [MSFT]
01/14 09:05 05.71          | | CMMFlags = 0
01/14 09:05 05.72          | | - Tag 0x002c (4 bytes, int32u[1]):
01/14 09:05 05.72          | |     002c: 00 00 00 00                                     [....]
01/14 09:05 05.73          | | DeviceManufacturer = IEC
01/14 09:05 05.73          | | - Tag 0x0030 (4 bytes, string[4]):
01/14 09:05 05.74          | |     0030: 49 45 43 20                                     [IEC ]
01/14 09:05 05.74          | | DeviceModel = sRGB
01/14 09:05 05.75          | | - Tag 0x0034 (4 bytes, string[4]):
01/14 09:05 05.75          | |     0034: 73 52 47 42                                     [sRGB]
01/14 09:05 05.76          | | DeviceAttributes = 0 0
01/14 09:05 05.76          | | - Tag 0x0038 (8 bytes, int32u[2]):
01/14 09:05 05.77          | |     0038: 00 00 00 00 00 00 00 00                         [........]
01/14 09:05 05.77          | | RenderingIntent = 0
01/14 09:05 05.78          | | - Tag 0x0040 (4 bytes, int32u[1]):
01/14 09:05 05.79          | |     0040: 00 00 00 00                                     [....]
01/14 09:05 05.79          | | ConnectionSpaceIlluminant = 0.9642 1 0.82491
01/14 09:05 05.80          | | - Tag 0x0044 (12 bytes, fixed32s[3]):
01/14 09:05 05.80          | |     0044: 00 00 f6 d6 00 01 00 00 00 00 d3 2d             [...........-]
01/14 09:05 05.81          | | ProfileCreator = HP 
01/14 09:05 05.81          | | - Tag 0x0050 (4 bytes, string[4]):
01/14 09:05 05.82          | |     0050: 48 50 20 20                                     [HP  ]
01/14 09:05 05.82          | | ProfileID = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
01/14 09:05 05.83          | | - Tag 0x0054 (16 bytes, int8u[16]):
01/14 09:05 05.83          | |     0054: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
01/14 09:05 05.84          | 0)  ProfileCopyright = Copyright (c) 1998 Hewlett-Packard Company
01/14 09:05 05.84          |     - Tag 'cprt' (51 bytes, type 'text'):
01/14 09:05 05.85          |         0150: 74 65 78 74 00 00 00 00 43 6f 70 79 72 69 67 68 [text....Copyrigh]
01/14 09:05 05.85          |         0160: 74 20 28 63 29 20 31 39 39 38 20 48 65 77 6c 65 [t (c) 1998 Hewle]
01/14 09:05 05.86          |         0170: 74 74 2d 50 61 63 6b 61 72 64 20 43 6f 6d 70 61 [tt-Packard Compa]
01/14 09:05 05.86          |         0180: 6e 79 00                                        [ny.]
01/14 09:05 05.87          | 1)  ProfileDescription = sRGB IEC61966-2.1
01/14 09:05 05.87          |     - Tag 'desc' (108 bytes, type 'desc'):
01/14 09:05 05.88          |         0184: 64 65 73 63 00 00 00 00 00 00 00 12 73 52 47 42 [desc........sRGB]
01/14 09:05 05.88          |         0194: 20 49 45 43 36 31 39 36 36 2d 32 2e 31 00 00 00 [ IEC61966-2.1...]
01/14 09:05 05.88          |         01a4: 00 00 00 00 00 00 00 00 12 73 52 47 42 20 49 45 [.........sRGB IE]
01/14 09:05 05.89          |         01b4: 43 36 31 39 36 36 2d 32 2e 31 00 00 00 00 00 00 [C61966-2.1......]
01/14 09:05 05.89          |         01c4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
01/14 09:05 05.90          |         [snip 28 bytes]
01/14 09:05 05.90          | 2)  MediaWhitePoint = 0.95045 1 1.08905
01/14 09:05 05.91          |     - Tag 'wtpt' (20 bytes, type 'XYZ '):
01/14 09:05 05.91          |         01f0: 58 59 5a 20 00 00 00 00 00 00 f3 51 00 01 00 00 [XYZ .......Q....]
01/14 09:05 05.92          |         0200: 00 01 16 cc                                     [....]
01/14 09:05 05.92          | 3)  MediaBlackPoint = 0 0 0
01/14 09:05 05.93          |     - Tag 'bkpt' (20 bytes, type 'XYZ '):
01/14 09:05 05.93          |         0204: 58 59 5a 20 00 00 00 00 00 00 00 00 00 00 00 00 [XYZ ............]
01/14 09:05 05.94          |         0214: 00 00 00 00                                     [....]
01/14 09:05 05.94          | 4)  RedMatrixColumn = 0.43607 0.22249 0.01392
01/14 09:05 05.95          |     - Tag 'rXYZ' (20 bytes, type 'XYZ '):
01/14 09:05 05.95          |         0218: 58 59 5a 20 00 00 00 00 00 00 6f a2 00 00 38 f5 [XYZ ......o...8.]
01/14 09:05 05.96          |         0228: 00 00 03 90                                     [....]
01/14 09:05 05.96          | 5)  GreenMatrixColumn = 0.38515 0.71687 0.09708
01/14 09:05 05.97          |     - Tag 'gXYZ' (20 bytes, type 'XYZ '):
01/14 09:05 05.97          |         022c: 58 59 5a 20 00 00 00 00 00 00 62 99 00 00 b7 85 [XYZ ......b.....]
01/14 09:05 05.98          |         023c: 00 00 18 da                                     [....]
01/14 09:05 05.98          | 6)  BlueMatrixColumn = 0.14307 0.06061 0.7141
01/14 09:05 05.99          |     - Tag 'bXYZ' (20 bytes, type 'XYZ '):
01/14 09:05 05.99          |         0240: 58 59 5a 20 00 00 00 00 00 00 24 a0 00 00 0f 84 [XYZ ......$.....]
01/14 09:05 06.00          |         0250: 00 00 b6 cf                                     [....]
01/14 09:05 06.00          | 7)  DeviceMfgDesc = IEC http://www.iec.ch
01/14 09:05 06.01          |     - Tag 'dmnd' (112 bytes, type 'desc'):
01/14 09:05 06.01          |         0254: 64 65 73 63 00 00 00 00 00 00 00 16 49 45 43 20 [desc........IEC ]
01/14 09:05 06.02          |         0264: 68 74 74 70 3a 2f 2f 77 77 77 2e 69 65 63 2e 63 [http://www.iec.c]
01/14 09:05 06.03          |         0274: 68 00 00 00 00 00 00 00 00 00 00 00 16 49 45 43 [h............IEC]
01/14 09:05 06.03          |         0284: 20 68 74 74 70 3a 2f 2f 77 77 77 2e 69 65 63 2e [ http://www.iec.]
01/14 09:05 06.03          |         0294: 63 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ch..............]
01/14 09:05 06.04          |         [snip 32 bytes]
01/14 09:05 06.05          | 8)  DeviceModelDesc = IEC 61966-2.1 Default RGB colour space - sRGB
01/14 09:05 06.05          |     - Tag 'dmdd' (136 bytes, type 'desc'):
01/14 09:05 06.06          |         02c4: 64 65 73 63 00 00 00 00 00 00 00 2e 49 45 43 20 [desc........IEC ]
01/14 09:05 06.06          |         02d4: 36 31 39 36 36 2d 32 2e 31 20 44 65 66 61 75 6c [61966-2.1 Defaul]
01/14 09:05 06.07          |         02e4: 74 20 52 47 42 20 63 6f 6c 6f 75 72 20 73 70 61 [t RGB colour spa]
01/14 09:05 06.07          |         02f4: 63 65 20 2d 20 73 52 47 42 00 00 00 00 00 00 00 [ce - sRGB.......]
01/14 09:05 06.08          |         0304: 00 00 00 00 2e 49 45 43 20 36 31 39 36 36 2d 32 [.....IEC 61966-2]
01/14 09:05 06.08          |         [snip 56 bytes]
01/14 09:05 06.09          | 9)  ViewingCondDesc = Reference Viewing Condition in IEC61966-2.1
01/14 09:05 06.09          |     - Tag 'vued' (134 bytes, type 'desc'):
01/14 09:05 06.10          |         034c: 64 65 73 63 00 00 00 00 00 00 00 2c 52 65 66 65 [desc.......,Refe]
01/14 09:05 06.10          |         035c: 72 65 6e 63 65 20 56 69 65 77 69 6e 67 20 43 6f [rence Viewing Co]
01/14 09:05 06.10          |         036c: 6e 64 69 74 69 6f 6e 20 69 6e 20 49 45 43 36 31 [ndition in IEC61]
01/14 09:05 06.11          |         037c: 39 36 36 2d 32 2e 31 00 00 00 00 00 00 00 00 00 [966-2.1.........]
01/14 09:05 06.11          |         038c: 00 00 2c 52 65 66 65 72 65 6e 63 65 20 56 69 65 [..,Reference Vie]
01/14 09:05 06.12          |         [snip 54 bytes]
01/14 09:05 06.12          | 10) ViewingConditions (SubDirectory) -->
01/14 09:05 06.13          |     - Tag 'view' (36 bytes, type 'view'):
01/14 09:05 06.13          |         03d4: 76 69 65 77 00 00 00 00 00 13 a4 fe 00 14 5f 2e [view.........._.]
01/14 09:05 06.14          |         03e4: 00 10 cf 14 00 03 ed cc 00 04 13 0b 00 03 5c 9e [..............\.]
01/14 09:05 06.15          |         03f4: 00 00 00 01                                     [....]
01/14 09:05 06.15          | + [BinaryData directory, 36 bytes]
01/14 09:05 06.16          | | ViewingCondIlluminant = 19.6445 20.3718 16.8089
01/14 09:05 06.16          | | - Tag 0x0008 (12 bytes, fixed32s[3]):
01/14 09:05 06.17          | |     03dc: 00 13 a4 fe 00 14 5f 2e 00 10 cf 14             [......_.....]
01/14 09:05 06.17          | | ViewingCondSurround = 3.92889 4.07439 3.36179
01/14 09:05 06.18          | | - Tag 0x0014 (12 bytes, fixed32s[3]):
01/14 09:05 06.18          | |     03e8: 00 03 ed cc 00 04 13 0b 00 03 5c 9e             [..........\.]
01/14 09:05 06.19          | | ViewingCondIlluminantType = 1
01/14 09:05 06.20          | | - Tag 0x0020 (4 bytes, int32u[1]):
01/14 09:05 06.20          | |     03f4: 00 00 00 01                                     [....]
01/14 09:05 06.20          | 11) Luminance = 76.03647 80 87.12462
01/14 09:05 06.21          |     - Tag 'lumi' (20 bytes, type 'XYZ '):
01/14 09:05 06.21          |         03f8: 58 59 5a 20 00 00 00 00 00 4c 09 56 00 50 00 00 [XYZ .....L.V.P..]
01/14 09:05 06.22          |         0408: 00 57 1f e7                                     [.W..]
01/14 09:05 06.23          | 12) Measurement (SubDirectory) -->
01/14 09:05 06.23          |     - Tag 'meas' (36 bytes, type 'meas'):
01/14 09:05 06.24          |         040c: 6d 65 61 73 00 00 00 00 00 00 00 01 00 00 00 00 [meas............]
01/14 09:05 06.24          |         041c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 8f [................]
01/14 09:05 06.24          |         042c: 00 00 00 02                                     [....]
01/14 09:05 06.25          | + [BinaryData directory, 36 bytes]
01/14 09:05 06.26          | | MeasurementObserver = 1
01/14 09:05 06.26          | | - Tag 0x0008 (4 bytes, int32u[1]):
01/14 09:05 06.27          | |     0414: 00 00 00 01                                     [....]
01/14 09:05 06.27          | | MeasurementBacking = 0 0 0
01/14 09:05 06.28          | | - Tag 0x000c (12 bytes, fixed32s[3]):
01/14 09:05 06.28          | |     0418: 00 00 00 00 00 00 00 00 00 00 00 00             [............]
01/14 09:05 06.29          | | MeasurementGeometry = 0
01/14 09:05 06.29          | | - Tag 0x0018 (4 bytes, int32u[1]):
01/14 09:05 06.30          | |     0424: 00 00 00 00                                     [....]
01/14 09:05 06.30          | | MeasurementFlare = 0.00999
01/14 09:05 06.31          | | - Tag 0x001c (4 bytes, fixed32u[1]):
01/14 09:05 06.31          | |     0428: 00 00 02 8f                                     [....]
01/14 09:05 06.32          | | MeasurementIlluminant = 2
01/14 09:05 06.32          | | - Tag 0x0020 (4 bytes, int32u[1]):
01/14 09:05 06.33          | |     042c: 00 00 00 02                                     [....]
01/14 09:05 06.33          | 13) Technology = CRT
01/14 09:05 06.34          |     - Tag 'tech' (12 bytes, type 'sig '):
01/14 09:05 06.35          |         0430: 73 69 67 20 00 00 00 00 43 52 54 20             [sig ....CRT ]
01/14 09:05 06.35          | 14) RedTRC = curv.......#(-27;@EJOTY^chmrw|......................................%.[snip]
01/14 09:05 06.36          |     - Tag 'rTRC' (2060 bytes, type 'curv'):
01/14 09:05 06.36          |         043c: 63 75 72 76 00 00 00 00 00 00 04 00 00 00 00 05 [curv............]
01/14 09:05 06.37          |         044c: 00 0a 00 0f 00 14 00 19 00 1e 00 23 00 28 00 2d [...........#.(.-]
01/14 09:05 06.37          |         045c: 00 32 00 37 00 3b 00 40 00 45 00 4a 00 4f 00 54 [.2.7.;.@.E.J.O.T]
01/14 09:05 06.38          |         046c: 00 59 00 5e 00 63 00 68 00 6d 00 72 00 77 00 7c [.Y.^.c.h.m.r.w.|]
01/14 09:05 06.38          |         047c: 00 81 00 86 00 8b 00 90 00 95 00 9a 00 9f 00 a4 [................]
01/14 09:05 06.39          |         [snip 1980 bytes]
01/14 09:05 06.39          | 15) GreenTRC = curv.......#(-27;@EJOTY^chmrw|......................................[snip]
01/14 09:05 06.40          |     - Tag 'gTRC' (2060 bytes, type 'curv'):
01/14 09:05 06.40          |         043c: 63 75 72 76 00 00 00 00 00 00 04 00 00 00 00 05 [curv............]
01/14 09:05 06.41          |         044c: 00 0a 00 0f 00 14 00 19 00 1e 00 23 00 28 00 2d [...........#.(.-]
01/14 09:05 06.41          |         045c: 00 32 00 37 00 3b 00 40 00 45 00 4a 00 4f 00 54 [.2.7.;.@.E.J.O.T]
01/14 09:05 06.42          |         046c: 00 59 00 5e 00 63 00 68 00 6d 00 72 00 77 00 7c [.Y.^.c.h.m.r.w.|]
01/14 09:05 06.42          |         047c: 00 81 00 86 00 8b 00 90 00 95 00 9a 00 9f 00 a4 [................]
01/14 09:05 06.43          |         [snip 1980 bytes]
01/14 09:05 06.43          | 16) BlueTRC = curv.......#(-27;@EJOTY^chmrw|......................................%[snip]
01/14 09:05 06.44          |     - Tag 'bTRC' (2060 bytes, type 'curv'):
01/14 09:05 06.44          |         043c: 63 75 72 76 00 00 00 00 00 00 04 00 00 00 00 05 [curv............]
01/14 09:05 06.45          |         044c: 00 0a 00 0f 00 14 00 19 00 1e 00 23 00 28 00 2d [...........#.(.-]
01/14 09:05 06.45          |         045c: 00 32 00 37 00 3b 00 40 00 45 00 4a 00 4f 00 54 [.2.7.;.@.E.J.O.T]
01/14 09:05 06.46          |         046c: 00 59 00 5e 00 63 00 68 00 6d 00 72 00 77 00 7c [.Y.^.c.h.m.r.w.|]
01/14 09:05 06.46          |         047c: 00 81 00 86 00 8b 00 90 00 95 00 9a 00 9f 00 a4 [................]
01/14 09:05 06.47          |         [snip 1980 bytes]
01/14 09:05 06.47        PNG cHRM (32 bytes):
01/14 09:05 06.48              0a97: 00 00 7a 25 00 00 80 83 00 00 f9 ff 00 00 80 e9 [..z%............]
01/14 09:05 06.48              0aa7: 00 00 75 30 00 00 ea 60 00 00 3a 98 00 00 17 6f [..u0...`..:....o]
01/14 09:05 06.49          + [BinaryData directory, 32 bytes]
01/14 09:05 06.49          | WhitePointX = 31269
01/14 09:05 06.50          | - Tag 0x0000 (4 bytes, int32u[1]):
01/14 09:05 06.50          |     0000: 00 00 7a 25                                     [..z%]
01/14 09:05 06.51          | WhitePointY = 32899
01/14 09:05 06.51          | - Tag 0x0001 (4 bytes, int32u[1]):
01/14 09:05 06.51          |     0004: 00 00 80 83                                     [....]
01/14 09:05 06.52          | RedX = 63999
01/14 09:05 06.52          | - Tag 0x0002 (4 bytes, int32u[1]):
01/14 09:05 06.53          |     0008: 00 00 f9 ff                                     [....]
01/14 09:05 06.53          | RedY = 33001
01/14 09:05 06.54          | - Tag 0x0003 (4 bytes, int32u[1]):
01/14 09:05 06.54          |     000c: 00 00 80 e9                                     [....]
01/14 09:05 06.55          | GreenX = 30000
01/14 09:05 06.55          | - Tag 0x0004 (4 bytes, int32u[1]):
01/14 09:05 06.56          |     0010: 00 00 75 30                                     [..u0]
01/14 09:05 06.56          | GreenY = 60000
01/14 09:05 06.57          | - Tag 0x0005 (4 bytes, int32u[1]):
01/14 09:05 06.57          |     0014: 00 00 ea 60                                     [...`]
01/14 09:05 06.58          | BlueX = 15000
01/14 09:05 06.58          | - Tag 0x0006 (4 bytes, int32u[1]):
01/14 09:05 06.59          |     0018: 00 00 3a 98                                     [..:.]
01/14 09:05 06.60          | BlueY = 5999
01/14 09:05 06.60          | - Tag 0x0007 (4 bytes, int32u[1]):
01/14 09:05 06.61          |     001c: 00 00 17 6f                                     [...o]

01/14 09:05 06.62   ERROR:  EX_ETErrorHandler() - Out of memory!

Title: Re: Out of memory error when writing Orientation tag
Post by: lokatz on January 14, 2021, 03:23:35 AM
In case this helps, here is a 'normal' metadata dump.  It completes without error.


01/14 09:21 26.19   ExifToolVersion                 : 12.13
01/14 09:21 26.19   FileName                        : 2019-12-12 25 Storks.png
01/14 09:21 26.20   Directory                       : C:/MyImgTest
01/14 09:21 26.20   FileSize                        : 119 MiB
01/14 09:21 26.21   FileModifyDate                  : 2020:04:14 21:32:00+02:00
01/14 09:21 26.22   FileAccessDate                  : 2021:01:13 21:41:35+01:00
01/14 09:21 26.22   FileCreateDate                  : 2021:01:13 10:26:36+01:00
01/14 09:21 26.23   FilePermissions                 : rw-rw-rw-
01/14 09:21 26.23   FileType                        : PNG
01/14 09:21 26.24   FileTypeExtension               : png
01/14 09:21 26.24   MIMEType                        : image/png
01/14 09:21 26.25   ImageWidth                      : 5196
01/14 09:21 26.25   ImageHeight                     : 3993
01/14 09:21 26.26   BitDepth                        : 16
01/14 09:21 26.26   ColorType                       : RGB
01/14 09:21 26.27   Compression                     : Deflate/Inflate
01/14 09:21 26.27   Filter                          : Adaptive
01/14 09:21 26.28   Interlace                       : Noninterlaced
01/14 09:21 26.29   PixelsPerUnitX                  : 11811
01/14 09:21 26.29   PixelsPerUnitY                  : 11811
01/14 09:21 26.30   PixelUnits                      : meters
01/14 09:21 26.30   ProfileName                     : Photoshop ICC profile
01/14 09:21 26.31   ProfileCMMType                  : Linotronic
01/14 09:21 26.31   ProfileVersion                  : 2.1.0
01/14 09:21 26.32   ProfileClass                    : Display Device Profile
01/14 09:21 26.32   ColorSpaceData                  : RGB
01/14 09:21 26.33   ProfileConnectionSpace          : XYZ
01/14 09:21 26.34   ProfileDateTime                 : 1998:02:09 06:49:00
01/14 09:21 26.34   ProfileFileSignature            : acsp
01/14 09:21 26.35   PrimaryPlatform                 : Microsoft Corporation
01/14 09:21 26.35   CMMFlags                        : Not Embedded, Independent
01/14 09:21 26.36   DeviceManufacturer              : Hewlett-Packard
01/14 09:21 26.36   DeviceModel                     : sRGB
01/14 09:21 26.37   DeviceAttributes                : Reflective, Glossy, Positive, Color
01/14 09:21 26.38   RenderingIntent                 : Perceptual
01/14 09:21 26.38   ConnectionSpaceIlluminant       : 0.9642 1 0.82491
01/14 09:21 26.39   ProfileCreator                  : Hewlett-Packard
01/14 09:21 26.39   ProfileID                       : 0
01/14 09:21 26.40   ProfileCopyright                : Copyright (c) 1998 Hewlett-Packard Company
01/14 09:21 26.40   ProfileDescription              : sRGB IEC61966-2.1
01/14 09:21 26.41   MediaWhitePoint                 : 0.95045 1 1.08905
01/14 09:21 26.41   MediaBlackPoint                 : 0 0 0
01/14 09:21 26.42   RedMatrixColumn                 : 0.43607 0.22249 0.01392
01/14 09:21 26.42   GreenMatrixColumn               : 0.38515 0.71687 0.09708
01/14 09:21 26.43   BlueMatrixColumn                : 0.14307 0.06061 0.7141
01/14 09:21 26.43   DeviceMfgDesc                   : IEC http://www.iec.ch
01/14 09:21 26.44   DeviceModelDesc                 : IEC 61966-2.1 Default RGB colour space - sRGB
01/14 09:21 26.44   ViewingCondDesc                 : Reference Viewing Condition in IEC61966-2.1
01/14 09:21 26.45   ViewingCondIlluminant           : 19.6445 20.3718 16.8089
01/14 09:21 26.45   ViewingCondSurround             : 3.92889 4.07439 3.36179
01/14 09:21 26.46   ViewingCondIlluminantType       : D50
01/14 09:21 26.47   Luminance                       : 76.03647 80 87.12462
01/14 09:21 26.47   MeasurementObserver             : CIE 1931
01/14 09:21 26.48   MeasurementBacking              : 0 0 0
01/14 09:21 26.48   MeasurementGeometry             : Unknown
01/14 09:21 26.49   MeasurementFlare                : 0.999%
01/14 09:21 26.49   MeasurementIlluminant           : D65
01/14 09:21 26.50   Technology                      : Cathode Ray Tube Display
01/14 09:21 26.51   RedTRC                          : (Binary data 2060 bytes, use -b option to extract)
01/14 09:21 26.51   GreenTRC                        : (Binary data 2060 bytes, use -b option to extract)
01/14 09:21 26.52   BlueTRC                         : (Binary data 2060 bytes, use -b option to extract)
01/14 09:21 26.52   WhitePointX                     : 0.31269
01/14 09:21 26.53   WhitePointY                     : 0.32899
01/14 09:21 26.53   RedX                            : 0.63999
01/14 09:21 26.54   RedY                            : 0.33001
01/14 09:21 26.55   GreenX                          : 0.3
01/14 09:21 26.55   GreenY                          : 0.6
01/14 09:21 26.56   BlueX                           : 0.15
01/14 09:21 26.56   BlueY                           : 0.05999
01/14 09:21 26.57   ImageSize                       : 5196x3993
01/14 09:21 26.58   Megapixels                      : 20.7
Title: Re: Out of memory error when writing Orientation tag
Post by: Phil Harvey on January 14, 2021, 07:57:36 AM
OK, thanks.  It was a long shot that the -v3 output would help.  I think I need to see the file, can you upload it somewhere?  You can mail a link to philharvey66@gmail.com

- Phil
Title: Re: Out of memory error when writing Orientation tag
Post by: Phil Harvey on January 14, 2021, 11:08:35 AM
I got the file, thanks.  ExifTool is trying to load the whole IDAT chunk into memory, which doesn't work under Windows for a file this large.  I'll patch ExifTool 12.15 to fix this by copying IDAT in smaller blocks.

Thanks for this report.

- Phil
Title: Re: Out of memory error when writing Orientation tag
Post by: lokatz on January 14, 2021, 11:30:29 AM
That's great, thanks!
Title: Re: Out of memory error when writing Orientation tag
Post by: lokatz on January 18, 2021, 04:26:32 PM
Just wanted to confirm that 12.15 indeed resolves the issue.  Again, thanks!
Title: Re: Out of memory error when writing Orientation tag
Post by: Phil Harvey on January 19, 2021, 08:10:13 AM
Great!
Title: Re: Out of memory error when writing Orientation tag
Post by: obetz on January 20, 2021, 01:32:56 AM
Quote from: Phil Harvey on January 14, 2021, 11:08:35 AM
ExifTool is trying to load the whole IDAT chunk into memory, which doesn't work under Windows for a file this large.

Was there a difference between the Activestate and the Strawberry Perl based Exiftool? The latter being available also as 64 bit version, but I doubt this would change a lot.

Oliver