exiftool-vendored.exe 13.41.0 → 13.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 28858 tags, with 17929 unique tag names.
15
+ They contain a total of 28936 tags, with 17993 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -7432,6 +7432,7 @@ boot, not including standby time.
7432
7432
  CanonCameraInfo1200D Canon CameraInfo60D
7433
7433
  CanonCameraInfoR6 Canon CameraInfoR6
7434
7434
  CanonCameraInfoR6m2 Canon CameraInfoR6m2
7435
+ CanonCameraInfoR6m3 Canon CameraInfoR6m3
7435
7436
  CanonCameraInfoG5XII Canon CameraInfoG5XII
7436
7437
  CanonCameraInfoPowerShot Canon CameraInfoPowerShot
7437
7438
  CanonCameraInfoPowerShot2 Canon CameraInfoPowerShot2
@@ -8438,6 +8439,14 @@ CameraInfo tags for the EOS R6 Mark II.
8438
8439
  ------ -------- --------
8439
8440
  3369 ShutterCount int32u
8440
8441
 
8442
+ =head3 Canon CameraInfoR6m3 Tags
8443
+
8444
+ CameraInfo tags for the EOS R6 Mark II.
8445
+
8446
+ Index1 Tag Name Writable
8447
+ ------ -------- --------
8448
+ 2157 ShutterCount int32u
8449
+
8441
8450
  =head3 Canon CameraInfoG5XII Tags
8442
8451
 
8443
8452
  CameraInfo tags for the PowerShot G5 X Mark II.
@@ -21924,7 +21933,9 @@ HEIC images from models such as the S10+.
21924
21933
  EmbeddedVideoFile no
21925
21934
  EmbeddedVideoType no
21926
21935
  MCCData no
21927
- PEg_Info JSON
21936
+ PEg_Info Samsung PEgInfo
21937
+ ReEditData Samsung ReEditData
21938
+ OriginalPathHashKey no
21928
21939
  RemasterInfo no
21929
21940
  SamsungCaptureInfo no
21930
21941
  SingleShotDepthMap no
@@ -21932,6 +21943,7 @@ HEIC images from models such as the S10+.
21932
21943
  SurroundShotVideo no
21933
21944
  SurroundShotVideoName no
21934
21945
  TimeStamp no
21946
+ VideoEditedTimeZone no
21935
21947
 
21936
21948
  =head3 Samsung DualShotExtra Tags
21937
21949
 
@@ -21940,6 +21952,114 @@ HEIC images from models such as the S10+.
21940
21952
  16 DepthMapWidth no
21941
21953
  17 DepthMapHeight no
21942
21954
 
21955
+ =head3 Samsung PEgInfo Tags
21956
+
21957
+ Tag ID Tag Name Writable
21958
+ ------ -------- --------
21959
+ 'connectorType' ConnectorType no
21960
+ 'genImageVersion' GenImageVersion no
21961
+
21962
+ =head3 Samsung ReEditData Tags
21963
+
21964
+ Tag ID Tag Name Writable
21965
+ ------ -------- --------
21966
+ 'adjustmentValue' AdjustmentValue no
21967
+ 'clipInfoValue' ClipInfoValue Samsung ClipInfo
21968
+ 'effectValue' EffectValue Samsung EffectInfo
21969
+ 'endMotionVideo' EndMotionVideo no
21970
+ 'isAIFilterReEditOnly' IsAIFilterReEditOnly no
21971
+ 'isApplyShapeCorrection'
21972
+ IsApplyShapeCorrection no
21973
+ 'isBlending' IsBlending no
21974
+ 'isDecoReEditOnly' IsDecoReEditOnly no
21975
+ 'isMotionVideoMute' IsMotionVideoMute no
21976
+ 'isNewReEditOnly' IsNewReEditOnly no
21977
+ 'isNotReEdit' IsNotReEdit no
21978
+ 'isScaleAI' IsScaleAI no
21979
+ 'isTrimMotionVideo' IsTrimMotionVideo no
21980
+ 'ndeVersion' NDEVersion no
21981
+ 'originalPath' OriginalPath no
21982
+ 'portraitEffectValue' PortraitEffectValue Samsung PortraitEffect
21983
+ 'reSize' ReSize no
21984
+ 'representativeFrameLoc'
21985
+ RepresentativeFrameLoc no
21986
+ 'rotation' Rotation no
21987
+ 'sepVersion' SEPVersion no
21988
+ 'startMotionVideo' StartMotionVideo no
21989
+ 'toneValue' ToneValue Samsung ToneInfo
21990
+
21991
+ =head3 Samsung ClipInfo Tags
21992
+
21993
+ Tag ID Tag Name Writable
21994
+ ------ -------- --------
21995
+ 'mCenterX' ClipCenterX no
21996
+ 'mCenterY' ClipCenterY no
21997
+ 'mHFlip' ClipHFlip no
21998
+ 'mHFlipEffect' ClipHFlipEffect no
21999
+ 'mHeight' ClipHeight no
22000
+ 'mHozPerspective' ClipHozPerspective no
22001
+ 'mRotate' ClipRotate no
22002
+ 'mRotateEffect' ClipRotateEffect no
22003
+ 'mRotation' ClipRotation no
22004
+ 'mRotationEffect' ClipRotationEffect no
22005
+ 'mVFlip' ClipVFlip no
22006
+ 'mVFlipEffect' ClipVFlipEffect no
22007
+ 'mVerPerspective' ClipVerPerspective no
22008
+ 'mWidth' ClipWidth no
22009
+
22010
+ =head3 Samsung EffectInfo Tags
22011
+
22012
+ Tag ID Tag Name Writable
22013
+ ------ -------- --------
22014
+ 'alphaValue' AlphaValue no
22015
+ 'filterIndication' FilterIndication no
22016
+ 'filterType' FilterType no
22017
+
22018
+ =head3 Samsung PortraitEffect Tags
22019
+
22020
+ Tag ID Tag Name Writable
22021
+ ------ -------- --------
22022
+ 'effectId' PortraitEffectID no
22023
+ 'effectIdOriginal' PortraitEffectIDOriginal no
22024
+ 'effectLevel' PortraitEffectLevel no
22025
+ 'effectLevelOriginal' EffectLevelOriginal no
22026
+ 'exifRotation' PortraitExifRotation no
22027
+ 'lightLevel' PortraitLightLevel no
22028
+ 'lightLevelOriginal' LightLevelOriginal no
22029
+ 'refocusX' PortraitRefocusX no
22030
+ 'refocusXOriginal' RefocusXOriginal no
22031
+ 'refocusY' PortraitRefocusY no
22032
+ 'refocusYOriginal' RefocusYOriginal no
22033
+ 'touchX' PortraitTouchX no
22034
+ 'touchXOriginal' TouchXOriginal no
22035
+ 'touchY' PortraitTouchY no
22036
+ 'touchYOriginal' TouchYOriginal no
22037
+ 'waterMarkRemoved' WaterMarkRemoved no
22038
+ 'waterMarkRemovedOriginal'
22039
+ WaterMarkRemovedOriginal no
22040
+
22041
+ =head3 Samsung ToneInfo Tags
22042
+
22043
+ Tag ID Tag Name Writable
22044
+ ------ -------- --------
22045
+ 'brightness' Brightness no
22046
+ 'contrast' Contrast no
22047
+ 'definition' Definition no
22048
+ 'exposure' Exposure no
22049
+ 'highlight' Highlight no
22050
+ 'hue' Hue no
22051
+ 'isBrightnessIPE' IsBrightnessIPE no
22052
+ 'isContrastIPE' IsContrastIPE no
22053
+ 'isExposureIPE' IsExposureIPE no
22054
+ 'isSaturationIPE' IsSaturationIPE no
22055
+ 'lightbalance' Lightbalance no
22056
+ 'saturation' Saturation no
22057
+ 'shadow' Shadow no
22058
+ 'sharpness' Sharpness no
22059
+ 'tint' Tint no
22060
+ 'wbMode' WBMode no
22061
+ 'wbTemperature' WBTemperature no
22062
+
21943
22063
  =head3 Samsung SingleShotMeta Tags
21944
22064
 
21945
22065
  Tag ID Tag Name Writable
@@ -24074,10 +24194,12 @@ some models when the ExtractEmbedded option is used.
24074
24194
  Tag ID Tag Name Writable
24075
24195
  ------ -------- --------
24076
24196
  0x8000 FNumber no
24197
+ 0x8106 FrameRate no
24077
24198
  0x8109 ExposureTime no
24078
24199
  0x810a MasterGainAdjustment no
24079
24200
  0x810b ISO no
24080
24201
  0x810c ElectricalExtenderMagnification no
24202
+ 0x8114 SerialNumber no
24081
24203
  0x8500 GPSVersionID no
24082
24204
  0x8501 GPSLatitudeRef no
24083
24205
  0x8502 GPSLatitude no
@@ -30948,7 +31070,7 @@ specification.
30948
31070
  This directory contains a list of key names which are used to decode tags
30949
31071
  written by the "mdta" handler. Also in this table are a few tags found in
30950
31072
  timed metadata that are not yet writable by ExifTool. The prefix of
30951
- "com.apple.quicktime." has been removed from the TagID's below. These tags
31073
+ "com.apple.quicktime." has been removed from most TagID's below. These tags
30952
31074
  support alternate languages in the same way as the
30953
31075
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> tags. Note
30954
31076
  that by default,
@@ -31032,6 +31154,7 @@ changed via the config file.
31032
31154
  'producer' Producer yes
31033
31155
  'publisher' Publisher yes
31034
31156
  'rating.user' UserRating yes
31157
+ 'samsung.android.utc_offset' AndroidTimeZone yes
31035
31158
  'scene-illuminance' SceneIlluminance no
31036
31159
  'software' Software yes
31037
31160
  'still-image-time' StillImageTime no
@@ -31451,6 +31574,7 @@ and are not currently writable.
31451
31574
  'colr' ICC_Profile ICC_Profile
31452
31575
  ColorRepresentation QuickTime ColorRep
31453
31576
  'hvcC' HEVCConfiguration QuickTime HEVCConfig
31577
+ 'imir' Mirroring int8u!
31454
31578
  'irot' Rotation int8u!
31455
31579
  'ispe' ImageSpatialExtent no
31456
31580
  'pasp' PixelAspectRatio int32u[2]!
@@ -95,6 +95,11 @@ my %emptyMeta = (
95
95
  hdlr => 'Handler', 'keys' => 'Keys', lang => 'Language', ctry => 'Country', free => 'Free',
96
96
  );
97
97
 
98
+ # starting word for Keys tags which use a full tag ID
99
+ my %fullKeysID = (
100
+ com => 1, xiaomi => 1, samsung => 1,
101
+ );
102
+
98
103
  # lookup for CTBO ID number based on uuid for Canon CR3 files
99
104
  my %ctboID = (
100
105
  "\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac" => 1, # XMP
@@ -461,7 +466,10 @@ sub WriteKeys($$$)
461
466
  next unless $$nvHash{IsCreating} and $et->IsOverwriting($nvHash) and
462
467
  defined $et->GetNewValue($nvHash);
463
468
  # add new entry to 'keys' data
464
- my $val = $id =~ /^com\./ ? $id : "com.apple.quicktime.$id";
469
+ my $val = $id;
470
+ unless ($val =~ /^(.*?)\./ and $fullKeysID{$1}) {
471
+ $val = "com.apple.quicktime.$val";
472
+ }
465
473
  $newData .= Set32u(8 + length($val)) . 'mdta' . $val;
466
474
  $et->VPrint(1, "$$et{INDENT}\[adding $keysGrp entry $newIndex '${id}']\n");
467
475
  $add{$newIndex++} = $tagInfo;
@@ -1731,7 +1739,14 @@ ItemID2: foreach $id (reverse sort { $a <=> $b } keys %$items) {
1731
1739
  # (note that $tag may be a binary Keys index here)
1732
1740
  foreach $tag (@addTags) {
1733
1741
  my $tagInfo = $$dirs{$tag} || $$newTags{$tag};
1734
- next unless ref $tagInfo eq 'HASH'; # (shouldn't happen, but somehow there is forum17260)
1742
+ unless (ref $tagInfo eq 'HASH') { # (shouldn't happen, but somehow there is forum17260)
1743
+ # (also can happen if Meta exists but Keys does not since 'keys' is an array ref.
1744
+ # SonyPMW-EX1R.mp4 has a Movie-Meta atom with XML and no Keys that triggers this
1745
+ # issue. Note that in this case the Meta HandlerType is 'meta' instead of 'mdta',
1746
+ # which isn't a problem for ExifTool, but may be for other software?)
1747
+ next unless ref $tagInfo eq 'ARRAY';
1748
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $tag) or next;
1749
+ }
1735
1750
  next if defined $$tagInfo{CanCreate} and not $$tagInfo{CanCreate};
1736
1751
  next if defined $$tagInfo{MediaType} and $$et{MediaType} ne $$tagInfo{MediaType};
1737
1752
  my $subdir = $$tagInfo{SubDirectory};
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars $advFmtSelf $configFile @configFiles $noConfig);
31
31
 
32
- $VERSION = '13.41';
32
+ $VERSION = '13.43';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -392,9 +392,9 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
392
392
  LFR => 'LFP', # (Light Field RAW)
393
393
  LIF => ['LIF', 'Leica Image File'],
394
394
  LNK => ['LNK', 'Windows shortcut'],
395
- LRF => ['MOV', 'Low-Resolution video File'],
395
+ LRF => ['MOV', 'Low-Resolution video File'], # (DJI)
396
396
  LRI => ['LRI', 'Light RAW'],
397
- LRV => ['MOV', 'Low-Resolution Video'],
397
+ LRV => ['MOV', 'Low-Resolution Video'], # (GoPro)
398
398
  M2T => 'M2TS',
399
399
  M2TS => ['M2TS', 'MPEG-2 Transport Stream'],
400
400
  M2V => ['MPEG', 'MPEG-2 Video'],
@@ -419,7 +419,7 @@ OPTIONS
419
419
  contains a "<" symbol. If *DATFILE*/*FMT* is not provided, the
420
420
  effect is the same as "-TAG=", and the tag is simply deleted. "+<="
421
421
  or "-<=" may also be used to add or delete specific list entries,
422
- or to shift date/time values.
422
+ to conditionally delete tags, or to shift date/time values.
423
423
 
424
424
  -tagsFromFile *SRCFILE* or *FMT*
425
425
  Copy tag values from *SRCFILE* to *FILE*. Tag names on the command
@@ -477,9 +477,9 @@ OPTIONS
477
477
  preferred group. Whitespace around the ">" or "<" is ignored. As a
478
478
  convenience, "-tagsFromFile @" is assumed for any redirected tags
479
479
  which are specified without a prior -tagsFromFile option. Copied
480
- tags may also be added or deleted from a list with arguments of the
481
- form "-*SRCTAG*+<*DSTTAG*" or "-*SRCTAG*-<*DSTTAG*" (but see Note 5
482
- below).
480
+ tags may also be added or deleted from a list, or conditionally
481
+ deleted with arguments of the form "'-*SRCTAG*+<*DSTTAG*'" or
482
+ "'-*SRCTAG*-<*DSTTAG*'" (but see Note 5 below).
483
483
 
484
484
  An extension of the redirection feature allows strings involving
485
485
  tag names to be used on the right hand side of the "<" symbol with
@@ -744,12 +744,14 @@ OPTIONS
744
744
  Specific tags may be imported from the CSV database by adding
745
745
  -*TAG* options to the command after -csv=*CSVFILE*, or excluded
746
746
  with --*TAG*, with exclusions taking priority. Group names and
747
- wildcards are allowed, and tags from the CSV may be redirected and
748
- written to different tags in the target file with support for
749
- advanced-formatting expressions using the same syntax as the
750
- -tagsFromFile feature. If no tags are specified, then all tags
751
- except FileName, Directory and excluded tags are imported (in the
752
- same order as the database entries).
747
+ wildcards in tag names are allowed, but the group name must match
748
+ exactly the group in the CSV file (eg. a "XMP-dc:Subject" column in
749
+ the CSV file won't match "-XMP:Subject" on the command line. Also,
750
+ tags from the CSV may be redirected and written to different tags
751
+ in the target file with support for advanced-formatting expressions
752
+ using the same syntax as the -tagsFromFile feature. If no tags are
753
+ specified, then all tags except FileName, Directory and excluded
754
+ tags are imported (in the same order as the database entries).
753
755
 
754
756
  When exporting a CSV file, the -g or -G option adds group names to
755
757
  the tag headings. If the -a option is used to allow duplicate tag
@@ -774,8 +776,8 @@ OPTIONS
774
776
  importing.
775
777
 
776
778
  Special feature: -csv+=*CSVFILE* may be used to add items to
777
- existing lists. This affects only list-type tags. Also applies to
778
- the -j option.
779
+ existing lists in the file. This affects only list-type tags. Also
780
+ applies to the -j option.
779
781
 
780
782
  Note that this and the -plot options are fundamentally different
781
783
  than all other output format options because they require
@@ -944,19 +946,21 @@ OPTIONS
944
946
  Specific tags may be imported from the JSON database by adding
945
947
  -*TAG* options to the command after -j=*JSONFILE*, or excluded with
946
948
  --*TAG*, with exclusions taking priority. Group names and wildcards
947
- are allowed, and tags from JSON may be redirected and written to
948
- different tags in the target file with support for
949
- advanced-formatting expressions using the same syntax as the
950
- -tagsFromFile feature. If no tags are specified, then all tags
951
- except FileName, Directory and excluded tags are imported (in the
952
- same order as the database entries).
949
+ in tag names are allowed, but the group name must match exactly the
950
+ group in the JSON file (eg. a "XMP-dc:Subject" entry in the JSON
951
+ file won't match "-XMP:Subject" on the command line. Also, tags
952
+ from JSON may be redirected and written to different tags in the
953
+ target file with support for advanced-formatting expressions using
954
+ the same syntax as the -tagsFromFile feature. If no tags are
955
+ specified, then all tags except FileName, Directory and excluded
956
+ tags are imported (in the same order as the database entries).
953
957
 
954
958
  Unlike CSV import, empty values are not ignored, and will cause an
955
959
  empty value to be written if supported by the specific metadata
956
960
  type. Tags are deleted by using the -f option and setting the tag
957
961
  value to "-" (or to the MissingTagValue setting if this API option
958
962
  was used). Importing with -j+=*JSONFILE* causes new values to be
959
- added to existing lists.
963
+ added to existing lists in the target file.
960
964
 
961
965
  -l (-long)
962
966
  Use long 2-line Canon-style output format. Adds a description and
@@ -1094,7 +1098,7 @@ OPTIONS
1094
1098
 
1095
1099
  produces output like this:
1096
1100
 
1097
- -- Generated by ExifTool 13.41 --
1101
+ -- Generated by ExifTool 13.43 --
1098
1102
  File: a.jpg - 2003:10:31 15:44:19
1099
1103
  (f/5.6, 1/60s, ISO 100)
1100
1104
  File: b.jpg - 2006:05:23 11:57:38
@@ -2329,6 +2333,10 @@ OPTIONS
2329
2333
  in Windows file names, so this feature is useful if tag values are used
2330
2334
  in file names.)
2331
2335
 
2336
+ Note that the expression is not evaluated for undefined (non-existant)
2337
+ tags, which may have other values if either the -m or -f command-line
2338
+ option or the API MissingTagValue option is used.
2339
+
2332
2340
  Helper functions
2333
2341
  Note that function names are case sensitive.
2334
2342
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.exe",
3
- "version": "13.41.0",
3
+ "version": "13.43.0",
4
4
  "description": "Vendored win32 ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/photostructure/exiftool-vendored.exe#readme",
@@ -51,11 +51,11 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "cross-zip": "^4.0.1",
54
- "mocha": "^11.7.4",
55
- "npm-check-updates": "^19.1.1",
54
+ "mocha": "^11.7.5",
55
+ "npm-check-updates": "^19.1.2",
56
56
  "npm-run-all": "4.1.5",
57
57
  "prettier": "^3.6.2",
58
- "release-it": "^19.0.5",
58
+ "release-it": "^19.0.6",
59
59
  "xml2js": "^0.6.2"
60
60
  }
61
61
  }