exiftool_vendored 12.73.0 → 12.75.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.
- checksums.yaml +4 -4
- data/bin/Changes +41 -2
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +46 -45
- data/bin/exiftool +97 -83
- data/bin/lib/File/RandomAccess.pm +31 -5
- data/bin/lib/File/RandomAccess.pod +4 -4
- data/bin/lib/Image/ExifTool/7Z.pm +3 -3
- data/bin/lib/Image/ExifTool/AFCP.pm +2 -2
- data/bin/lib/Image/ExifTool/BZZ.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
- data/bin/lib/Image/ExifTool/Canon.pm +6 -5
- data/bin/lib/Image/ExifTool/CanonVRD.pm +2 -2
- data/bin/lib/Image/ExifTool/DICOM.pm +2 -2
- data/bin/lib/Image/ExifTool/DNG.pm +4 -4
- data/bin/lib/Image/ExifTool/Exif.pm +3 -2
- data/bin/lib/Image/ExifTool/FLIR.pm +2 -2
- data/bin/lib/Image/ExifTool/Fixup.pm +3 -3
- data/bin/lib/Image/ExifTool/FlashPix.pm +3 -3
- data/bin/lib/Image/ExifTool/FujiFilm.pm +8 -3
- data/bin/lib/Image/ExifTool/Geotag.pm +3 -3
- data/bin/lib/Image/ExifTool/HtmlDump.pm +2 -2
- data/bin/lib/Image/ExifTool/ID3.pm +2 -2
- data/bin/lib/Image/ExifTool/Import.pm +5 -5
- data/bin/lib/Image/ExifTool/JSON.pm +2 -2
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +51 -12
- data/bin/lib/Image/ExifTool/MIE.pm +3 -3
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +3 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +3 -3
- data/bin/lib/Image/ExifTool/Ogg.pm +2 -2
- data/bin/lib/Image/ExifTool/PDF.pm +54 -4
- data/bin/lib/Image/ExifTool/PLIST.pm +3 -3
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +3 -3
- data/bin/lib/Image/ExifTool/PhaseOne.pm +2 -2
- data/bin/lib/Image/ExifTool/Photoshop.pm +3 -3
- data/bin/lib/Image/ExifTool/PostScript.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +41 -107
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +8 -6
- data/bin/lib/Image/ExifTool/RSRC.pm +2 -2
- data/bin/lib/Image/ExifTool/Samsung.pm +4 -4
- data/bin/lib/Image/ExifTool/Shift.pl +1 -2
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +3 -3
- data/bin/lib/Image/ExifTool/Sony.pm +3 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +8 -5
- data/bin/lib/Image/ExifTool/TagNames.pod +36 -5
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +26 -23
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +4 -2
- data/bin/lib/Image/ExifTool/Writer.pl +68 -44
- data/bin/lib/Image/ExifTool/XMP.pm +2 -1
- data/bin/lib/Image/ExifTool/XMP2.pl +9 -0
- data/bin/lib/Image/ExifTool/ZIP.pm +6 -6
- data/bin/lib/Image/ExifTool.pm +42 -26
- data/bin/lib/Image/ExifTool.pod +76 -71
- data/bin/perl-Image-ExifTool.spec +45 -44
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -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);
|
31
31
|
|
32
|
-
$VERSION = '12.
|
32
|
+
$VERSION = '12.75';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -77,7 +77,7 @@ sub GetDeleteGroups();
|
|
77
77
|
sub AddUserDefinedTags($%);
|
78
78
|
sub SetAlternateFile($$$);
|
79
79
|
# non-public routines below
|
80
|
-
sub InsertTagValues(
|
80
|
+
sub InsertTagValues($$;$$$$);
|
81
81
|
sub IsWritable($);
|
82
82
|
sub IsSameFile($$$);
|
83
83
|
sub IsRawType($);
|
@@ -195,9 +195,9 @@ $defaultLang = 'en'; # default language
|
|
195
195
|
OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
|
196
196
|
LFP HTML VRD RTF FITS XISF XCF DSS QTIF FPX PICT ZIP GZIP PLIST
|
197
197
|
RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
|
198
|
-
RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
|
199
|
-
R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD
|
200
|
-
TXT AAC);
|
198
|
+
JUMBF RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
|
199
|
+
LRI R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD
|
200
|
+
ICO TXT AAC);
|
201
201
|
|
202
202
|
# file types that we can write (edit)
|
203
203
|
my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
|
@@ -260,6 +260,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
260
260
|
BPG => ['BPG', 'Better Portable Graphics'],
|
261
261
|
BTF => ['BTF', 'Big Tagged Image File Format'], #(unofficial)
|
262
262
|
BZ2 => ['BZ2', 'BZIP2 archive'],
|
263
|
+
C2PA => ['JUMBF','Coalition for Content Provenance and Authenticity'],
|
263
264
|
CHM => ['CHM', 'Microsoft Compiled HTML format'],
|
264
265
|
CIFF => ['CRW', 'Camera Image File Format'],
|
265
266
|
COS => ['COS', 'Capture One Settings'],
|
@@ -374,6 +375,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
374
375
|
JPS => ['JPEG', 'JPEG Stereo image'],
|
375
376
|
JPX => ['JP2', 'JPEG 2000 with extensions'],
|
376
377
|
JSON => ['JSON', 'JavaScript Object Notation'],
|
378
|
+
JUMBF=> ['JUMBF','JPEG Universal Metadata Box Format'],
|
377
379
|
JXL => ['JXL', 'JPEG XL'],
|
378
380
|
JXR => ['TIFF', 'JPEG XR'],
|
379
381
|
K25 => ['TIFF', 'Kodak DC25 RAW'],
|
@@ -612,6 +614,7 @@ my %fileDescription = (
|
|
612
614
|
BPG => 'image/bpg',
|
613
615
|
BTF => 'image/x-tiff-big', #(NC) (ref http://www.asmail.be/msg0055371937.html)
|
614
616
|
BZ2 => 'application/bzip2',
|
617
|
+
C2PA => 'application/c2pa',
|
615
618
|
'Canon 1D RAW' => 'image/x-raw', # (uses .TIF file extension)
|
616
619
|
CHM => 'application/x-chm',
|
617
620
|
COS => 'application/octet-stream', #PH (NC)
|
@@ -686,6 +689,7 @@ my %fileDescription = (
|
|
686
689
|
JPS => 'image/x-jps',
|
687
690
|
JPX => 'image/jpx',
|
688
691
|
JSON => 'application/json',
|
692
|
+
JUMBF=> 'application/octet-stream', #PH (invented format)
|
689
693
|
JXL => 'image/jxl', #PH (NC)
|
690
694
|
JXR => 'image/jxr',
|
691
695
|
K25 => 'image/x-kodak-k25',
|
@@ -856,6 +860,7 @@ my %moduleName = (
|
|
856
860
|
HDR => 'Radiance',
|
857
861
|
JP2 => 'Jpeg2000',
|
858
862
|
JPEG => '',
|
863
|
+
JUMBF=> 'Jpeg2000',
|
859
864
|
JXL => 'Jpeg2000',
|
860
865
|
LFP => 'Lytro',
|
861
866
|
LRI => 0,
|
@@ -947,6 +952,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
|
|
947
952
|
JP2 => '(\0\0\0\x0cjP( |\x1a\x1a)\x0d\x0a\x87\x0a|\xff\x4f\xff\x51\0)',
|
948
953
|
JPEG => '\xff\xd8\xff',
|
949
954
|
JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]*"\s*:',
|
955
|
+
JUMBF=> '.{4}jumb\0.{3}jumd',
|
950
956
|
JXL => '\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl ',
|
951
957
|
LFP => '\x89LFP\x0d\x0a\x1a\x0a',
|
952
958
|
LIF => '\x70\0{3}.{4}\x2a.{4}<\0',
|
@@ -1640,6 +1646,11 @@ my %systemTagsNotes = (
|
|
1640
1646
|
Groups => { 0 => 'XML', 1 => 'XML' },
|
1641
1647
|
Binary => 1,
|
1642
1648
|
},
|
1649
|
+
JUMBF => {
|
1650
|
+
Notes => 'the C2PA JUMBF data block, extracted only if specifically requested',
|
1651
|
+
Groups => { 0 => 'JUMBF', 1 => 'JUMBF' },
|
1652
|
+
Binary => 1,
|
1653
|
+
},
|
1643
1654
|
ICC_Profile => {
|
1644
1655
|
Notes => q{
|
1645
1656
|
the full ICC_Profile data block. This tag is generated only if specifically
|
@@ -2196,7 +2207,7 @@ sub new
|
|
2196
2207
|
# use Image::ExifTool 'ImageInfo';
|
2197
2208
|
# my $info = ImageInfo($file, 'DateTimeOriginal', 'ImageSize');
|
2198
2209
|
# - or -
|
2199
|
-
# my $et =
|
2210
|
+
# my $et = Image::ExifTool->new;
|
2200
2211
|
# my $info = $et->ImageInfo($file, \@tagList, {Sort=>'Group0'} );
|
2201
2212
|
sub ImageInfo($;@)
|
2202
2213
|
{
|
@@ -2206,7 +2217,7 @@ sub ImageInfo($;@)
|
|
2206
2217
|
if (ref $_[0] and UNIVERSAL::isa($_[0],'Image::ExifTool')) {
|
2207
2218
|
$self = shift;
|
2208
2219
|
} else {
|
2209
|
-
$self =
|
2220
|
+
$self = Image::ExifTool->new;
|
2210
2221
|
}
|
2211
2222
|
my %saveOptions = %{$$self{OPTIONS}}; # save original options
|
2212
2223
|
|
@@ -2529,7 +2540,7 @@ sub ExtractInfo($;@)
|
|
2529
2540
|
FILE_TYPE => $$self{FILE_TYPE},
|
2530
2541
|
};
|
2531
2542
|
$saveOrder = GetByteOrder(),
|
2532
|
-
$$self{RAF} =
|
2543
|
+
$$self{RAF} = File::RandomAccess->new($_[0]);
|
2533
2544
|
$$self{PROCESSED} = { };
|
2534
2545
|
delete $$self{EXIF_DATA};
|
2535
2546
|
delete $$self{EXIF_POS};
|
@@ -2636,7 +2647,7 @@ sub ExtractInfo($;@)
|
|
2636
2647
|
# open the file
|
2637
2648
|
if ($self->Open(\*EXIFTOOL_FILE, $filename)) {
|
2638
2649
|
# create random access file object
|
2639
|
-
$raf =
|
2650
|
+
$raf = File::RandomAccess->new(\*EXIFTOOL_FILE);
|
2640
2651
|
# patch to force pipe to be buffered because seek returns success
|
2641
2652
|
# in Windows cmd shell pipe even though it really failed
|
2642
2653
|
$$raf{TESTED} = -1 if $filename eq '-' or $filename =~ /\|$/;
|
@@ -2767,12 +2778,16 @@ sub ExtractInfo($;@)
|
|
2767
2778
|
$raf->BinMode(); # set binary mode before we start reading
|
2768
2779
|
my $pos = $raf->Tell(); # get file position so we can rewind
|
2769
2780
|
# loop through list of file types to test
|
2770
|
-
my ($buff, $
|
2781
|
+
my ($buff, $err);
|
2771
2782
|
my %dirInfo = ( RAF => $raf, Base => $pos, TestBuff => \$buff );
|
2772
2783
|
# read start of file for testing
|
2773
|
-
$raf->Read($buff, $testLen)
|
2774
|
-
|
2775
|
-
|
2784
|
+
if ($raf->Read($buff, $testLen)) {
|
2785
|
+
$raf->Seek($pos, 0) or $err = 'Error seeking in file';
|
2786
|
+
} else {
|
2787
|
+
$err = $$raf{ERROR};
|
2788
|
+
$buff = '';
|
2789
|
+
}
|
2790
|
+
until ($err) {
|
2776
2791
|
my $unkHeader;
|
2777
2792
|
$type = shift @fileTypeList;
|
2778
2793
|
if ($type) {
|
@@ -2795,7 +2810,7 @@ sub ExtractInfo($;@)
|
|
2795
2810
|
$type = ($1 eq "\xff\xd8\xff") ? 'JPEG' : 'TIFF';
|
2796
2811
|
my $skip = pos($buff) - length($1);
|
2797
2812
|
$dirInfo{Base} = $pos + $skip;
|
2798
|
-
$raf->Seek($pos + $skip, 0) or $
|
2813
|
+
$raf->Seek($pos + $skip, 0) or $err = 'Error seeking in file', last;
|
2799
2814
|
$self->Warn("Processing $type-like data after unknown $skip-byte header");
|
2800
2815
|
$unkHeader = 1 unless $$self{DOC_NUM};
|
2801
2816
|
}
|
@@ -2841,14 +2856,13 @@ sub ExtractInfo($;@)
|
|
2841
2856
|
last;
|
2842
2857
|
}
|
2843
2858
|
# seek back to try again from the same position in the file
|
2844
|
-
$raf->Seek($pos, 0) or $
|
2859
|
+
$raf->Seek($pos, 0) or $err = 'Error seeking in file';
|
2845
2860
|
}
|
2846
|
-
if (not defined $type and not $$self{DOC_NUM}) {
|
2861
|
+
if (not $err and not defined $type and not $$self{DOC_NUM}) {
|
2847
2862
|
# if we were given a single image with a known type there
|
2848
2863
|
# must be a format error since we couldn't read it, otherwise
|
2849
2864
|
# it is likely we don't support images of this type
|
2850
2865
|
my $fileType = GetFileType($realname) || '';
|
2851
|
-
my $err;
|
2852
2866
|
if (not length $buff) {
|
2853
2867
|
$err = 'File is empty';
|
2854
2868
|
} else {
|
@@ -2889,10 +2903,9 @@ sub ExtractInfo($;@)
|
|
2889
2903
|
}
|
2890
2904
|
}
|
2891
2905
|
}
|
2892
|
-
$self->Error($err);
|
2893
2906
|
}
|
2894
|
-
if ($
|
2895
|
-
$self->Error(
|
2907
|
+
if ($err) {
|
2908
|
+
$self->Error($err);
|
2896
2909
|
} elsif ($self->Options('ScanForXMP') and (not defined $type or
|
2897
2910
|
(not $fast and not $$self{FoundXMP})))
|
2898
2911
|
{
|
@@ -4114,7 +4127,7 @@ sub Init($)
|
|
4114
4127
|
$$self{FileType} = ''; # identified file type
|
4115
4128
|
if ($self->Options('HtmlDump')) {
|
4116
4129
|
require Image::ExifTool::HtmlDump;
|
4117
|
-
$$self{HTML_DUMP} =
|
4130
|
+
$$self{HTML_DUMP} = Image::ExifTool::HtmlDump->new;
|
4118
4131
|
}
|
4119
4132
|
# make sure our TextOut is a file reference
|
4120
4133
|
$$self{OPTIONS}{TextOut} = \*STDOUT unless ref $$self{OPTIONS}{TextOut};
|
@@ -4177,7 +4190,7 @@ sub ExtractAltInfo($)
|
|
4177
4190
|
# (eg. -file1 '$originalfilename')
|
4178
4191
|
if ($fileName =~ /\$/) {
|
4179
4192
|
my @tags = reverse sort keys %{$$self{VALUE}};
|
4180
|
-
$fileName = $self->InsertTagValues(\@tags,
|
4193
|
+
$fileName = $self->InsertTagValues($fileName, \@tags, 'Warn');
|
4181
4194
|
next unless defined $fileName;
|
4182
4195
|
}
|
4183
4196
|
$altExifTool->ExtractInfo($fileName);
|
@@ -4504,7 +4517,7 @@ sub GetFileTime($$)
|
|
4504
4517
|
$atime = $mtime = $ctime = pack 'LL', 0, 0;
|
4505
4518
|
unless ($k32GetFileTime) {
|
4506
4519
|
return () if defined $k32GetFileTime;
|
4507
|
-
$k32GetFileTime =
|
4520
|
+
$k32GetFileTime = Win32::API->new('KERNEL32', 'GetFileTime', 'NPPP', 'I');
|
4508
4521
|
unless ($k32GetFileTime) {
|
4509
4522
|
$self->Warn('Error calling Win32::API::GetFileTime');
|
4510
4523
|
$k32GetFileTime = 0;
|
@@ -4583,7 +4596,7 @@ sub ParseArguments($;@)
|
|
4583
4596
|
my $buff = $@ ? pack('C*',unpack($] < 5.010000 ? 'U0C*' : 'C0C*',$$arg)) : Encode::encode('utf8',$$arg);
|
4584
4597
|
$arg = \$buff;
|
4585
4598
|
}
|
4586
|
-
$$self{RAF} =
|
4599
|
+
$$self{RAF} = File::RandomAccess->new($arg);
|
4587
4600
|
# set filename to empty string to indicate that
|
4588
4601
|
# we have a file but we didn't open it
|
4589
4602
|
$$self{FILENAME} = '';
|
@@ -6981,7 +6994,7 @@ sub ProcessJPEG($$)
|
|
6981
6994
|
} elsif ($$segDataPt =~ /^(II|MM).{4}HEAPJPGM/s) {
|
6982
6995
|
next if $fast > 1; # skip processing for very fast
|
6983
6996
|
$dumpType = 'CIFF';
|
6984
|
-
my %dirInfo = ( RAF =>
|
6997
|
+
my %dirInfo = ( RAF => File::RandomAccess->new($segDataPt) );
|
6985
6998
|
$$self{SET_GROUP1} = 'CIFF';
|
6986
6999
|
push @{$$self{PATH}}, 'CIFF';
|
6987
7000
|
require Image::ExifTool::CanonRaw;
|
@@ -7506,6 +7519,8 @@ sub ProcessJPEG($$)
|
|
7506
7519
|
} elsif ($$segDataPt =~ /^AROT\0/ and $length > 10) {
|
7507
7520
|
# iPhone "AROT" segment containing integrated intensity per 16 scan lines
|
7508
7521
|
# (with number of elements N = ImageHeight / 16 - 1, ref PH/NealKrawetz)
|
7522
|
+
# "Absolute ROTational difference between two frames"
|
7523
|
+
# (see https://www.hackerfactor.com/blog/index.php?/archives/822-Apple-Rot.html)
|
7509
7524
|
$xtra = 'segment (N=' . unpack('x6N', $$segDataPt) . ')';
|
7510
7525
|
}
|
7511
7526
|
} elsif ($marker == 0xeb) { # APP11 (JPEG-HDR, JUMBF)
|
@@ -7564,6 +7579,7 @@ sub ProcessJPEG($$)
|
|
7564
7579
|
$dirInfo{DataPt} = \$buff;
|
7565
7580
|
$dirInfo{DataPos} = $segPos + 8; # (shows correct offsets for single-segment JUMBF)
|
7566
7581
|
$dirInfo{DataLen} = $dirInfo{DirLen} = $size;
|
7582
|
+
$dirInfo{DirName} = 'JUMBF';
|
7567
7583
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Jpeg2000::Main');
|
7568
7584
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
7569
7585
|
delete $jumbfChunk{$type};
|
@@ -8005,7 +8021,7 @@ sub DoProcessTIFF($$;$)
|
|
8005
8021
|
}
|
8006
8022
|
}
|
8007
8023
|
# update FileType if necessary now that we know more about the file
|
8008
|
-
if ($$self{DNGVersion} and $$self{FileType} !~ /^(DNG|GPR)$/) {
|
8024
|
+
if ($$self{DNGVersion} and $$self{FILE_TYPE} eq 'TIFF' and $$self{FileType} !~ /^(DNG|GPR)$/) {
|
8009
8025
|
# override whatever FileType we set since we now know it is DNG
|
8010
8026
|
$self->OverrideFileType($$self{TIFF_TYPE} = 'DNG');
|
8011
8027
|
}
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -65,49 +65,50 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
65
65
|
|
66
66
|
File Types
|
67
67
|
------------+-------------+-------------+-------------+------------
|
68
|
-
360 r/w |
|
69
|
-
3FR r |
|
70
|
-
3G2 r/w |
|
71
|
-
3GP r/w |
|
72
|
-
7Z r |
|
73
|
-
A r |
|
74
|
-
AA r |
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
68
|
+
360 r/w | DOCX r | ITC r | O r | RSRC r
|
69
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
70
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
71
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
72
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
73
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
74
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
75
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
76
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
77
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
78
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
79
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
80
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
81
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
82
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
83
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
84
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
85
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
86
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
87
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
88
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
89
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
90
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
91
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
92
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
93
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
94
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
95
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
96
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
97
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
98
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
99
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
100
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
101
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
102
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
103
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
104
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
105
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
106
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
107
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
108
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
109
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
110
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
111
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
111
112
|
|
112
113
|
Meta Information
|
113
114
|
----------------------+----------------------+---------------------
|
@@ -619,7 +620,8 @@ DateFormat of "%Y:%m:%d %H:%M:%S").
|
|
619
620
|
=item Duplicates
|
620
621
|
|
621
622
|
Flag to return values from tags with duplicate names when extracting
|
622
|
-
information. Default is 1.
|
623
|
+
information. Default is 1. Forced to 1 when copying tags with
|
624
|
+
L</SetNewValuesFromFile>.
|
623
625
|
|
624
626
|
=item Escape
|
625
627
|
|
@@ -824,11 +826,11 @@ Default is undef.
|
|
824
826
|
|
825
827
|
=item LimitLongValues
|
826
828
|
|
827
|
-
When extracting some
|
828
|
-
length-limited and the value is truncated with an
|
829
|
-
exceeds a specified length. This option specifies
|
830
|
-
these tags. A setting of 4 or less disables the limit
|
831
|
-
string is longer than this). Default is 60.
|
829
|
+
When extracting values for some specific tags (usually Unknown tags), the
|
830
|
+
PrintConv values are length-limited and the value is truncated with an
|
831
|
+
ellipsis ("[...]") if it exceeds a specified length. This option specifies
|
832
|
+
the length limit for these tags. A setting of 4 or less disables the limit
|
833
|
+
(because the ellipsis string is longer than this). Default is 60.
|
832
834
|
|
833
835
|
=item ListItem
|
834
836
|
|
@@ -1800,8 +1802,9 @@ or a trailing '#' causes the ValueConv value to be copied (same as setting
|
|
1800
1802
|
the Type option to 'ValueConv' for this tag only). A leading '+' sets the
|
1801
1803
|
Replace option to 0 on a per-tag basis (see Options below). Wildcards ('*'
|
1802
1804
|
and '?') may be used in the tag name. A tag name of '*' is commonly used
|
1803
|
-
when a group is specified to copy all tags in the group (eg. 'XMP:*').
|
1804
|
-
|
1805
|
+
when a group is specified to copy all tags in the group (eg. 'XMP:*').
|
1806
|
+
|
1807
|
+
A special feature allows tag names of the form 'DSTTAGE<lt>SRCTAG' (or
|
1805
1808
|
'SRCTAGE<gt>DSTTAG') to be specified to copy information to a tag with a
|
1806
1809
|
different name or a specified group. Both 'SRCTAG' and 'DSTTAG' may contain
|
1807
1810
|
wildcards and/or be prefixed by a group name (eg.
|
@@ -1811,18 +1814,20 @@ a list with arguments of the form 'DSTTAG+E<lt>SRCTAG' or
|
|
1811
1814
|
'DSTTAG-E<lt>SRCTAG'. Tags are evaluated in order, so exclusions apply only
|
1812
1815
|
to tags included earlier in the list. An extension of this feature allows
|
1813
1816
|
the tag value to be set from a string containing tag names with leading '$'
|
1814
|
-
symbols (eg. 'CommentE<lt>the file is $filename').
|
1815
|
-
around
|
1816
|
-
to
|
1817
|
-
|
1817
|
+
symbols (eg. 'CommentE<lt>the file is $filename'). Braces '{}' may be used
|
1818
|
+
around a tag name to separate it from subsequent text, and a '$$' is used to
|
1819
|
+
to represent a '$' symbol. The behaviour for missing tags in expressions is
|
1820
|
+
defined by the L</MissingTagValue> option. The tag value may be modified
|
1818
1821
|
via changes to the default input variable ($_) in a Perl expression placed
|
1819
1822
|
inside the braces and after a semicolon following the tag name (see the last
|
1820
1823
|
example above). A '@' may be added after the tag name (before the
|
1821
1824
|
semicolon) to make the expression act on individual list items instead of
|
1822
|
-
the concatenated string for list-type tags.
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
1825
|
+
the concatenated string for list-type tags. The expression has access to
|
1826
|
+
the full ExifTool API through the current ExifTool object (C<$self>) and the
|
1827
|
+
tag key (C<$tag>). Braces within the expression must be balanced.
|
1828
|
+
|
1829
|
+
Multiple options hash references may be passed to set different options for
|
1830
|
+
different tags. Options apply to subsequent tags in the argument list.
|
1826
1831
|
|
1827
1832
|
By default, this routine will commute information between same-named tags in
|
1828
1833
|
different groups, allowing information to be translated between images with
|
@@ -2434,16 +2439,16 @@ Here is a complete list of groups for each of these families:
|
|
2434
2439
|
=item Family 0 (Information Type):
|
2435
2440
|
|
2436
2441
|
AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
|
2437
|
-
APP3, APP4, APP5, APP6,
|
2438
|
-
DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
|
2439
|
-
FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,
|
2440
|
-
ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF,
|
2441
|
-
Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
|
2442
|
-
MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
|
2443
|
-
|
2444
|
-
PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
|
2445
|
-
SigmaRaw, Stim, Theora, Torrent, Trailer,
|
2446
|
-
XML, XMP, ZIP
|
2442
|
+
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD,
|
2443
|
+
Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
|
2444
|
+
FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,
|
2445
|
+
H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF,
|
2446
|
+
Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
|
2447
|
+
MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
|
2448
|
+
PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop,
|
2449
|
+
PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
|
2450
|
+
Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard,
|
2451
|
+
Vorbis, WTV, XML, XMP, ZIP
|
2447
2452
|
|
2448
2453
|
=item Family 1 (Specific Location):
|
2449
2454
|
|
@@ -2485,8 +2490,8 @@ XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
|
|
2485
2490
|
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf,
|
2486
2491
|
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
|
2487
2492
|
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
|
2488
|
-
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-
|
2489
|
-
XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
2493
|
+
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
|
2494
|
+
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
2490
2495
|
|
2491
2496
|
=item Family 2 (Category):
|
2492
2497
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Summary: perl module for image data extraction
|
2
2
|
Name: perl-Image-ExifTool
|
3
|
-
Version: 12.
|
3
|
+
Version: 12.75
|
4
4
|
Release: 1
|
5
5
|
License: Artistic/GPL
|
6
6
|
Group: Development/Libraries/Perl
|
@@ -22,49 +22,50 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
22
22
|
|
23
23
|
File Types
|
24
24
|
------------+-------------+-------------+-------------+------------
|
25
|
-
360 r/w | DOCX r |
|
26
|
-
3FR r | DPX r |
|
27
|
-
3G2 r/w | DR4 r/w/c |
|
28
|
-
3GP r/w | DSS r |
|
29
|
-
7Z r | DV r |
|
30
|
-
A r | DVB r/w |
|
31
|
-
AA r | DVR-MS r |
|
32
|
-
AAC r | DYLIB r |
|
33
|
-
AAE r | EIP r |
|
34
|
-
AAX r/w | EPS r/w |
|
35
|
-
ACR r | EPUB r |
|
36
|
-
AFM r | ERF r/w |
|
37
|
-
AI r/w | EXE r |
|
38
|
-
AIFF r | EXIF r/w/c |
|
39
|
-
APE r | EXR r |
|
40
|
-
ARQ r/w | EXV r/w/c |
|
41
|
-
ARW r/w | F4A/V r/w |
|
42
|
-
ASF r | FFF r/w |
|
43
|
-
AVI r | FITS r |
|
44
|
-
AVIF r/w | FLA r |
|
45
|
-
AZW r | FLAC r |
|
46
|
-
BMP r | FLIF r/w |
|
47
|
-
BPG r | FLV r |
|
48
|
-
BTF r | FPF r |
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
25
|
+
360 r/w | DOCX r | ITC r | O r | RSRC r
|
26
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
27
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
28
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
29
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
30
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
31
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
32
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
33
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
34
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
35
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
36
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
37
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
38
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
39
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
40
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
41
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
42
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
43
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
44
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
45
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
46
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
47
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
48
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
49
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
50
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
51
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
52
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
53
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
54
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
55
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
56
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
57
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
58
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
59
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
60
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
61
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
62
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
63
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
64
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
65
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
66
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
67
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
68
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
68
69
|
|
69
70
|
Meta Information
|
70
71
|
----------------------+----------------------+---------------------
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.75.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-01-
|
12
|
+
date: 2024-01-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|