exiftool_vendored 12.72.0 → 12.74.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +42 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +75 -53
- data/bin/lib/File/RandomAccess.pm +32 -6
- data/bin/lib/File/RandomAccess.pod +6 -6
- data/bin/lib/Image/ExifTool/7Z.pm +3 -3
- data/bin/lib/Image/ExifTool/AAC.pm +8 -6
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/APP12.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/Apple.pm +1 -1
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BPG.pm +1 -1
- data/bin/lib/Image/ExifTool/BZZ.pm +3 -3
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +4 -4
- data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +1 -1
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +3 -3
- data/bin/lib/Image/ExifTool/DJI.pm +1 -1
- data/bin/lib/Image/ExifTool/DNG.pm +5 -5
- data/bin/lib/Image/ExifTool/DPX.pm +1 -1
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +3 -3
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +9 -4
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +1 -1
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +4 -4
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/HTML.pm +1 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +3 -3
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ICO.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +3 -3
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/ISO.pm +1 -1
- data/bin/lib/Image/ExifTool/ITC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +6 -6
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +3 -3
- data/bin/lib/Image/ExifTool/JVC.pm +3 -3
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +18 -7
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- data/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +3 -3
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +5 -5
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MISB.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +1 -1
- data/bin/lib/Image/ExifTool/MRC.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +3 -3
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +1 -1
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +24 -2
- data/bin/lib/Image/ExifTool/PPM.pm +1 -1
- data/bin/lib/Image/ExifTool/PSP.pm +1 -1
- data/bin/lib/Image/ExifTool/Palm.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- data/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +4 -4
- data/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +54 -101
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Real.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- data/bin/lib/Image/ExifTool/Red.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
- data/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +2 -2
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/Sony.pm +5 -5
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -4
- data/bin/lib/Image/ExifTool/TagLookup.pm +3876 -3862
- data/bin/lib/Image/ExifTool/TagNames.pod +11420 -11382
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Theora.pm +1 -1
- data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +1 -1
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- data/bin/lib/Image/ExifTool/WriteExif.pl +16 -16
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- data/bin/lib/Image/ExifTool/Writer.pl +72 -43
- data/bin/lib/Image/ExifTool/XISF.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +19 -3
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +44 -25
- data/bin/lib/Image/ExifTool.pod +12 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -22,7 +22,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
22
22
|
use Image::ExifTool::Exif;
|
23
23
|
use Image::ExifTool::ASF; # for GetGUID()
|
24
24
|
|
25
|
-
$VERSION = '1.
|
25
|
+
$VERSION = '1.48';
|
26
26
|
|
27
27
|
sub ProcessFPX($$);
|
28
28
|
sub ProcessFPXR($$$);
|
@@ -511,6 +511,31 @@ my %fpxFileType = (
|
|
511
511
|
corresponding EmbeddedImage from the Contents of a VNT file
|
512
512
|
},
|
513
513
|
},
|
514
|
+
_eeJPG => {
|
515
|
+
Name => 'EmbeddedImage',
|
516
|
+
Notes => q{
|
517
|
+
Not a real tag. Extracted from stream content when the ExtractEmbedded
|
518
|
+
option is used
|
519
|
+
},
|
520
|
+
Groups => { 2 => 'Preview' },
|
521
|
+
Binary => 1,
|
522
|
+
},
|
523
|
+
_eePNG => {
|
524
|
+
Name => 'EmbeddedPNG',
|
525
|
+
Notes => q{
|
526
|
+
Not a real tag. Extracted from stream content when the ExtractEmbedded
|
527
|
+
option is used
|
528
|
+
},
|
529
|
+
Groups => { 2 => 'Preview' },
|
530
|
+
Binary => 1,
|
531
|
+
},
|
532
|
+
_eeLink => {
|
533
|
+
Name => 'LinkedFileName',
|
534
|
+
Notes => q{
|
535
|
+
Not a real tag. Extracted from stream content when the ExtractEmbedded
|
536
|
+
option is used
|
537
|
+
},
|
538
|
+
},
|
514
539
|
);
|
515
540
|
|
516
541
|
# Summary Information properties
|
@@ -2180,6 +2205,9 @@ sub ProcessFPX($$)
|
|
2180
2205
|
my ($buff, $out, $oldIndent, $miniStreamBuff);
|
2181
2206
|
my ($tag, %hier, %objIndex, %loadedDifSect);
|
2182
2207
|
|
2208
|
+
# handle FPX format in memory from PNG cpIp chunk
|
2209
|
+
$raf or $raf = File::RandomAccess->new($$dirInfo{DataPt});
|
2210
|
+
|
2183
2211
|
# read header
|
2184
2212
|
return 0 unless $raf->Read($buff,HDR_SIZE) == HDR_SIZE;
|
2185
2213
|
# check signature
|
@@ -2291,6 +2319,8 @@ sub ProcessFPX($$)
|
|
2291
2319
|
my $miniStream;
|
2292
2320
|
$endPos = length($dir);
|
2293
2321
|
my $index = 0;
|
2322
|
+
my $ee; # name of next tag to extract if unknown
|
2323
|
+
$ee = 0 if $et->Options('ExtractEmbedded');
|
2294
2324
|
|
2295
2325
|
for ($pos=0; $pos<=$endPos-128; $pos+=128, ++$index) {
|
2296
2326
|
|
@@ -2310,6 +2340,9 @@ sub ProcessFPX($$)
|
|
2310
2340
|
$tag = Image::ExifTool::Decode(undef, substr($dir,$pos,$len*2), 'UCS2', 'II', 'Latin');
|
2311
2341
|
$tag =~ s/\0.*//s; # truncate at null (in case length was wrong)
|
2312
2342
|
|
2343
|
+
if ($tag eq '0' and not defined $ee) {
|
2344
|
+
$et->WarnOnce('Use the ExtractEmbedded option to extract embedded information', 3);
|
2345
|
+
}
|
2313
2346
|
my $sect = Get32u(\$dir, $pos + 0x74); # start sector number
|
2314
2347
|
my $size = Get32u(\$dir, $pos + 0x78); # stream length
|
2315
2348
|
|
@@ -2320,12 +2353,15 @@ sub ProcessFPX($$)
|
|
2320
2353
|
$et->Warn('Error loading Mini-FAT stream');
|
2321
2354
|
last;
|
2322
2355
|
}
|
2323
|
-
$miniStream =
|
2356
|
+
$miniStream = File::RandomAccess->new(\$miniStreamBuff);
|
2324
2357
|
}
|
2325
2358
|
|
2326
2359
|
my $tagInfo;
|
2327
2360
|
if ($$tagTablePtr{$tag}) {
|
2328
2361
|
$tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
2362
|
+
} elsif (defined $ee and $tag eq $ee) {
|
2363
|
+
$tagInfo = ''; # won't know the actual tagID untile we read the stream
|
2364
|
+
$ee = sprintf('%x', hex($ee)+1); # tag to look for next
|
2329
2365
|
} else {
|
2330
2366
|
# remove instance number or class ID from tag if necessary
|
2331
2367
|
$tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
|
@@ -2349,7 +2385,7 @@ sub ProcessFPX($$)
|
|
2349
2385
|
$$sub{Parent} = $index;
|
2350
2386
|
}
|
2351
2387
|
|
2352
|
-
next unless $tagInfo or $verbose;
|
2388
|
+
next unless defined $tagInfo or $verbose;
|
2353
2389
|
|
2354
2390
|
# load the data for stream types
|
2355
2391
|
my $extra = '';
|
@@ -2383,18 +2419,22 @@ sub ProcessFPX($$)
|
|
2383
2419
|
$extra .= " Left=$lSib" unless $lSib == FREE_SECT;
|
2384
2420
|
$extra .= " Right=$rSib" unless $rSib == FREE_SECT;
|
2385
2421
|
$extra .= " Child=$chld" unless $chld == FREE_SECT;
|
2422
|
+
$extra .= " Size=$size" if defined $size;
|
2423
|
+
my $name;
|
2424
|
+
$name = "Unknown_0x$tag" if not $tagInfo and $tag =~ /^[0-9a-f]{1,3}$/;
|
2386
2425
|
$et->VerboseInfo($tag, $tagInfo,
|
2387
2426
|
Index => $index,
|
2388
2427
|
Value => $buff,
|
2389
2428
|
DataPt => \$buff,
|
2390
2429
|
Extra => $extra,
|
2391
|
-
|
2430
|
+
# Size => $size, (moved to $extra so we can see the rest of the stream if larger)
|
2431
|
+
Name => $name,
|
2392
2432
|
);
|
2393
2433
|
}
|
2394
|
-
if ($tagInfo and $buff) {
|
2434
|
+
if (defined $tagInfo and $buff) {
|
2395
2435
|
my $num = $$et{NUM_FOUND};
|
2396
|
-
|
2397
|
-
|
2436
|
+
if ($tagInfo and $$tagInfo{SubDirectory}) {
|
2437
|
+
my $subdir = $$tagInfo{SubDirectory};
|
2398
2438
|
my %dirInfo = (
|
2399
2439
|
DataPt => \$buff,
|
2400
2440
|
DirStart => $$subdir{DirStart},
|
@@ -2422,6 +2462,19 @@ sub ProcessFPX($$)
|
|
2422
2462
|
}
|
2423
2463
|
}
|
2424
2464
|
delete $$et{DOC_NUM};
|
2465
|
+
} elsif (not $tagInfo) {
|
2466
|
+
# extract some embedded information from PNG Plus images
|
2467
|
+
if ($buff =~ /^(.{19,40})(\xff\xd8\xff\xe0|\x89PNG\r\n\x1a\n)/sg) {
|
2468
|
+
my $id = $2 eq "\xff\xd8\xff\xe0" ? '_eeJPG' : '_eePNG';
|
2469
|
+
$et->HandleTag($tagTablePtr, $id, substr($buff, length($1)));
|
2470
|
+
} elsif ($buff =~ /^\0\x80\0\0\x01\0\0\0\x0e\0/ and length($buff) > 18) {
|
2471
|
+
my $len = unpack('x17C', $buff);
|
2472
|
+
next if $len + 18 > length($buff);
|
2473
|
+
my $filename = $et->Decode(substr($buff,18,$len), 'UTF16', 'II');
|
2474
|
+
$et->HandleTag($tagTablePtr, '_eeLink', $filename);
|
2475
|
+
} else {
|
2476
|
+
next;
|
2477
|
+
}
|
2425
2478
|
} else {
|
2426
2479
|
$et->FoundTag($tagInfo, $buff);
|
2427
2480
|
}
|
@@ -2508,7 +2561,7 @@ JPEG images.
|
|
2508
2561
|
|
2509
2562
|
=head1 AUTHOR
|
2510
2563
|
|
2511
|
-
Copyright 2003-
|
2564
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
2512
2565
|
|
2513
2566
|
This library is free software; you can redistribute it and/or modify it
|
2514
2567
|
under the same terms as Perl itself.
|
@@ -622,7 +622,7 @@ extracted from these formats.
|
|
622
622
|
|
623
623
|
=head1 AUTHOR
|
624
624
|
|
625
|
-
Copyright 2003-
|
625
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
626
626
|
|
627
627
|
This library is free software; you can redistribute it and/or modify it
|
628
628
|
under the same terms as Perl itself.
|
@@ -243,7 +243,7 @@ write information from the FotoWare FotoStation trailer.
|
|
243
243
|
|
244
244
|
=head1 AUTHOR
|
245
245
|
|
246
|
-
Copyright 2003-
|
246
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
247
247
|
|
248
248
|
This library is free software; you can redistribute it and/or modify it
|
249
249
|
under the same terms as Perl itself.
|
@@ -31,7 +31,7 @@ use vars qw($VERSION);
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
use Image::ExifTool::Exif;
|
33
33
|
|
34
|
-
$VERSION = '1.
|
34
|
+
$VERSION = '1.92';
|
35
35
|
|
36
36
|
sub ProcessFujiDir($$$);
|
37
37
|
sub ProcessFaceRec($$$);
|
@@ -1187,6 +1187,8 @@ my %faceCategories = (
|
|
1187
1187
|
ValueConv => 'my @v=reverse split(" ",$val);"@v"', # reverse to show width first
|
1188
1188
|
PrintConv => '$val=~tr/ /x/; $val',
|
1189
1189
|
},
|
1190
|
+
# 0x112 - int16u[2] same as 0x111 but with width/height swapped?
|
1191
|
+
# 0x113 - int16u[2] same as 0x111?
|
1190
1192
|
0x115 => {
|
1191
1193
|
Name => 'RawImageAspectRatio',
|
1192
1194
|
Format => 'int16u',
|
@@ -1236,6 +1238,7 @@ my %faceCategories = (
|
|
1236
1238
|
Count => 36,
|
1237
1239
|
PrintConv => '$val =~ tr/012 /RGB/d; join " ", $val =~ /....../g',
|
1238
1240
|
},
|
1241
|
+
# 0x141 - int16u[2] Bit depth? "14 42" for 14-bit RAF and "16 48" for 16-bit RAF
|
1239
1242
|
0x2000 => { #IB
|
1240
1243
|
Name => 'WB_GRGBLevelsAuto',
|
1241
1244
|
Format => 'int16u',
|
@@ -1408,6 +1411,8 @@ my %faceCategories = (
|
|
1408
1411
|
0xf00e => 'WB_GRBLevels',
|
1409
1412
|
0xf00f => 'ChromaticAberrationParams', # (rational64s[23])
|
1410
1413
|
0xf010 => 'VignettingParams', #9 (rational64s[31 or 64])
|
1414
|
+
# 0xf013 - int32u[3] same as 0xf00d
|
1415
|
+
# 0xf014 - int32u[3] - also related to WhiteBalance
|
1411
1416
|
);
|
1412
1417
|
|
1413
1418
|
# information found in FFMV atom of MOV videos
|
@@ -1688,7 +1693,7 @@ sub WriteRAF($$)
|
|
1688
1693
|
# rewrite the embedded JPEG in memory
|
1689
1694
|
my %jpegInfo = (
|
1690
1695
|
Parent => 'RAF',
|
1691
|
-
RAF =>
|
1696
|
+
RAF => File::RandomAccess->new(\$jpeg),
|
1692
1697
|
OutFile => \$outJpeg,
|
1693
1698
|
);
|
1694
1699
|
$$et{FILE_TYPE} = 'JPEG';
|
@@ -1792,7 +1797,7 @@ sub ProcessRAF($$)
|
|
1792
1797
|
# extract information from embedded JPEG
|
1793
1798
|
my %dirInfo = (
|
1794
1799
|
Parent => 'RAF',
|
1795
|
-
RAF =>
|
1800
|
+
RAF => File::RandomAccess->new(\$jpeg),
|
1796
1801
|
);
|
1797
1802
|
if ($jpos) {
|
1798
1803
|
$$et{BASE} += $jpos;
|
@@ -1874,7 +1879,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
|
|
1874
1879
|
|
1875
1880
|
=head1 AUTHOR
|
1876
1881
|
|
1877
|
-
Copyright 2003-
|
1882
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1878
1883
|
|
1879
1884
|
This library is free software; you can redistribute it and/or modify it
|
1880
1885
|
under the same terms as Perl itself.
|
@@ -68,7 +68,7 @@ General Imaging maker notes.
|
|
68
68
|
|
69
69
|
=head1 AUTHOR
|
70
70
|
|
71
|
-
Copyright 2003-
|
71
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
72
72
|
|
73
73
|
This library is free software; you can redistribute it and/or modify it
|
74
74
|
under the same terms as Perl itself.
|
@@ -545,7 +545,7 @@ write GIF meta information.
|
|
545
545
|
|
546
546
|
=head1 AUTHOR
|
547
547
|
|
548
|
-
Copyright 2003-
|
548
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
549
549
|
|
550
550
|
This library is free software; you can redistribute it and/or modify it
|
551
551
|
under the same terms as Perl itself.
|
@@ -270,7 +270,7 @@ GIMP software.
|
|
270
270
|
|
271
271
|
=head1 AUTHOR
|
272
272
|
|
273
|
-
Copyright 2003-
|
273
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
274
274
|
|
275
275
|
This library is free software; you can redistribute it and/or modify it
|
276
276
|
under the same terms as Perl itself.
|
@@ -613,7 +613,7 @@ GPS (Global Positioning System) meta information in EXIF data.
|
|
613
613
|
|
614
614
|
=head1 AUTHOR
|
615
615
|
|
616
|
-
Copyright 2003-
|
616
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
617
617
|
|
618
618
|
This library is free software; you can redistribute it and/or modify it
|
619
619
|
under the same terms as Perl itself.
|
@@ -2242,7 +2242,7 @@ coordinates.
|
|
2242
2242
|
|
2243
2243
|
=head1 AUTHOR
|
2244
2244
|
|
2245
|
-
Copyright 2003-
|
2245
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
2246
2246
|
|
2247
2247
|
This library is free software; you can redistribute it and/or modify it
|
2248
2248
|
under the same terms as Perl itself.
|
@@ -29,7 +29,7 @@ use vars qw($VERSION);
|
|
29
29
|
use Image::ExifTool qw(:Public);
|
30
30
|
use Image::ExifTool::GPS;
|
31
31
|
|
32
|
-
$VERSION = '1.
|
32
|
+
$VERSION = '1.74';
|
33
33
|
|
34
34
|
sub JITTER() { return 2 } # maximum time jitter
|
35
35
|
|
@@ -174,7 +174,7 @@ sub LoadTrackLog($$;$)
|
|
174
174
|
# $val is track file name
|
175
175
|
if ($et->Open(\*EXIFTOOL_TRKFILE, $val)) {
|
176
176
|
$trackFile = $val;
|
177
|
-
$raf =
|
177
|
+
$raf = File::RandomAccess->new(\*EXIFTOOL_TRKFILE);
|
178
178
|
unless ($raf->Read($_, 256)) {
|
179
179
|
close EXIFTOOL_TRKFILE;
|
180
180
|
return "Empty track file '${val}'";
|
@@ -202,7 +202,7 @@ sub LoadTrackLog($$;$)
|
|
202
202
|
}
|
203
203
|
unless ($from) {
|
204
204
|
# set up RAF for reading log file in memory
|
205
|
-
$raf =
|
205
|
+
$raf = File::RandomAccess->new(\$val);
|
206
206
|
$from = 'data';
|
207
207
|
}
|
208
208
|
|
@@ -1492,7 +1492,7 @@ user-defined tag GPSRoll, must be active.
|
|
1492
1492
|
|
1493
1493
|
=head1 AUTHOR
|
1494
1494
|
|
1495
|
-
Copyright 2003-
|
1495
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1496
1496
|
|
1497
1497
|
This library is free software; you can redistribute it and/or modify it
|
1498
1498
|
under the same terms as Perl itself.
|
@@ -748,7 +748,7 @@ metadata from GoPro MP4 videos.
|
|
748
748
|
|
749
749
|
=head1 AUTHOR
|
750
750
|
|
751
|
-
Copyright 2003-
|
751
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
752
752
|
|
753
753
|
This library is free software; you can redistribute it and/or modify it
|
754
754
|
under the same terms as Perl itself.
|
@@ -1123,7 +1123,7 @@ information from H.264 video streams.
|
|
1123
1123
|
|
1124
1124
|
=head1 AUTHOR
|
1125
1125
|
|
1126
|
-
Copyright 2003-
|
1126
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1127
1127
|
|
1128
1128
|
This library is free software; you can redistribute it and/or modify it
|
1129
1129
|
under the same terms as Perl itself.
|
@@ -250,7 +250,7 @@ Hewlett-Packard maker notes.
|
|
250
250
|
|
251
251
|
=head1 AUTHOR
|
252
252
|
|
253
|
-
Copyright 2003-
|
253
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
254
254
|
|
255
255
|
This library is free software; you can redistribute it and/or modify it
|
256
256
|
under the same terms as Perl itself.
|
@@ -555,7 +555,7 @@ meta information from HTML documents.
|
|
555
555
|
|
556
556
|
=head1 AUTHOR
|
557
557
|
|
558
|
-
Copyright 2003-
|
558
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
559
559
|
|
560
560
|
This library is free software; you can redistribute it and/or modify it
|
561
561
|
under the same terms as Perl itself.
|
@@ -13,7 +13,7 @@ use vars qw($VERSION);
|
|
13
13
|
use Image::ExifTool; # only for FinishTiffDump()
|
14
14
|
use Image::ExifTool::HTML qw(EscapeHTML);
|
15
15
|
|
16
|
-
$VERSION = '1.
|
16
|
+
$VERSION = '1.40';
|
17
17
|
|
18
18
|
sub DumpTable($$$;$$$$$$);
|
19
19
|
sub Open($$$;@);
|
@@ -894,7 +894,7 @@ Image::ExifTool::HtmlDump - Dump information in hex to HTML page
|
|
894
894
|
=head1 SYNOPSIS
|
895
895
|
|
896
896
|
use Image::ExifTool::HtmlDump;
|
897
|
-
my $dump =
|
897
|
+
my $dump = Image::ExifTool::HtmlDump->new;
|
898
898
|
$dump->Add($start, $size, $comment);
|
899
899
|
$dump->Print($dumpInfo, $raf, $dataPt, $dataPos, $outfile);
|
900
900
|
|
@@ -917,7 +917,7 @@ page.
|
|
917
917
|
|
918
918
|
=head1 AUTHOR
|
919
919
|
|
920
|
-
Copyright 2003-
|
920
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
921
921
|
|
922
922
|
This library is free software; you can redistribute it and/or modify it
|
923
923
|
under the same terms as Perl itself.
|
@@ -1357,7 +1357,7 @@ data created on one device into another device's native color space.
|
|
1357
1357
|
|
1358
1358
|
=head1 AUTHOR
|
1359
1359
|
|
1360
|
-
Copyright 2003-
|
1360
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1361
1361
|
|
1362
1362
|
This library is free software; you can redistribute it and/or modify it
|
1363
1363
|
under the same terms as Perl itself.
|
@@ -121,7 +121,7 @@ information from Windows ICO (icon) and CUR (cursor) files.
|
|
121
121
|
|
122
122
|
=head1 AUTHOR
|
123
123
|
|
124
|
-
Copyright 2003-
|
124
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
125
125
|
|
126
126
|
This library is free software; you can redistribute it and/or modify it
|
127
127
|
under the same terms as Perl itself.
|
@@ -18,7 +18,7 @@ use strict;
|
|
18
18
|
use vars qw($VERSION);
|
19
19
|
use Image::ExifTool qw(:DataAccess :Utils);
|
20
20
|
|
21
|
-
$VERSION = '1.
|
21
|
+
$VERSION = '1.61';
|
22
22
|
|
23
23
|
sub ProcessID3v2($$$);
|
24
24
|
sub ProcessPrivate($$$);
|
@@ -1408,7 +1408,7 @@ sub ProcessID3($$)
|
|
1408
1408
|
$$et{DoneID3} = 1;
|
1409
1409
|
|
1410
1410
|
# allow this to be called with either RAF or DataPt
|
1411
|
-
my $raf = $$dirInfo{RAF} ||
|
1411
|
+
my $raf = $$dirInfo{RAF} || File::RandomAccess->new($$dirInfo{DataPt});
|
1412
1412
|
my ($buff, %id3Header, %id3Trailer, $hBuff, $tBuff, $eBuff, $tagTablePtr);
|
1413
1413
|
my $rtnVal = 0;
|
1414
1414
|
my $hdrEnd = 0;
|
@@ -1718,7 +1718,7 @@ other types of audio files.
|
|
1718
1718
|
|
1719
1719
|
=head1 AUTHOR
|
1720
1720
|
|
1721
|
-
Copyright 2003-
|
1721
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1722
1722
|
|
1723
1723
|
This library is free software; you can redistribute it and/or modify it
|
1724
1724
|
under the same terms as Perl itself.
|
@@ -1284,7 +1284,7 @@ image files.
|
|
1284
1284
|
|
1285
1285
|
=head1 AUTHOR
|
1286
1286
|
|
1287
|
-
Copyright 2003-
|
1287
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1288
1288
|
|
1289
1289
|
This library is free software; you can redistribute it and/or modify it
|
1290
1290
|
under the same terms as Perl itself.
|
@@ -184,7 +184,7 @@ information from ISO 9660 disk images.
|
|
184
184
|
|
185
185
|
=head1 AUTHOR
|
186
186
|
|
187
|
-
Copyright 2003-
|
187
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
188
188
|
|
189
189
|
This library is free software; you can redistribute it and/or modify it
|
190
190
|
under the same terms as Perl itself.
|
@@ -191,7 +191,7 @@ information (including artwork images) from iTunes Cover Flow files.
|
|
191
191
|
|
192
192
|
=head1 AUTHOR
|
193
193
|
|
194
|
-
Copyright 2003-
|
194
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
195
195
|
|
196
196
|
This library is free software; you can redistribute it and/or modify it
|
197
197
|
under the same terms as Perl itself.
|
@@ -12,7 +12,7 @@ require Exporter;
|
|
12
12
|
|
13
13
|
use vars qw($VERSION @ISA @EXPORT_OK);
|
14
14
|
|
15
|
-
$VERSION = '1.
|
15
|
+
$VERSION = '1.11';
|
16
16
|
@ISA = qw(Exporter);
|
17
17
|
@EXPORT_OK = qw(ReadCSV ReadJSON);
|
18
18
|
|
@@ -38,13 +38,13 @@ sub ReadCSV($$;$$)
|
|
38
38
|
$raf = $file;
|
39
39
|
$file = 'CSV file';
|
40
40
|
} elsif (ref $file eq 'GLOB') {
|
41
|
-
$raf =
|
41
|
+
$raf = File::RandomAccess->new($file);
|
42
42
|
$file = 'CSV file';
|
43
43
|
} else {
|
44
44
|
open CSVFILE, $file or return "Error opening CSV file '${file}'";
|
45
45
|
binmode CSVFILE;
|
46
46
|
$openedFile = 1;
|
47
|
-
$raf =
|
47
|
+
$raf = File::RandomAccess->new(\*CSVFILE);
|
48
48
|
}
|
49
49
|
$delim = ',' unless defined $delim;
|
50
50
|
# set input record separator by first newline found in the file
|
@@ -253,13 +253,13 @@ sub ReadJSON($$;$$)
|
|
253
253
|
$raf = $file;
|
254
254
|
$file = 'JSON file';
|
255
255
|
} elsif (ref $file eq 'GLOB') {
|
256
|
-
$raf =
|
256
|
+
$raf = File::RandomAccess->new($file);
|
257
257
|
$file = 'JSON file';
|
258
258
|
} else {
|
259
259
|
open JSONFILE, $file or return "Error opening JSON file '${file}'";
|
260
260
|
binmode JSONFILE;
|
261
261
|
$openedFile = 1;
|
262
|
-
$raf =
|
262
|
+
$raf = File::RandomAccess->new(\*JSONFILE);
|
263
263
|
}
|
264
264
|
my $obj = ReadJSONObject($raf);
|
265
265
|
close JSONFILE if $openedFile;
|
@@ -348,7 +348,7 @@ stored as hash lookups of tag name/value for each SourceFile.
|
|
348
348
|
|
349
349
|
=head1 AUTHOR
|
350
350
|
|
351
|
-
Copyright 2003-
|
351
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
352
352
|
|
353
353
|
This library is free software; you can redistribute it and/or modify it
|
354
354
|
under the same terms as Perl itself.
|
@@ -258,7 +258,7 @@ them and the LargeFileSupport option is enabled.
|
|
258
258
|
|
259
259
|
=head1 AUTHOR
|
260
260
|
|
261
|
-
Copyright 2003-
|
261
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
262
262
|
|
263
263
|
This library is free software; you can redistribute it and/or modify it
|
264
264
|
under the same terms as Perl itself.
|
@@ -206,7 +206,7 @@ IJPEG SDK, used in cameras such as the P2 Pro.
|
|
206
206
|
|
207
207
|
=head1 AUTHOR
|
208
208
|
|
209
|
-
Copyright 2003-
|
209
|
+
Copyright 2003-2024, Marcos Del Sol Vives (marcos at orca.pet)
|
210
210
|
|
211
211
|
This library is free software; you can redistribute it and/or modify it
|
212
212
|
under the same terms as Perl itself.
|
@@ -11,7 +11,7 @@ use strict;
|
|
11
11
|
use vars qw($VERSION);
|
12
12
|
use Image::ExifTool qw(:DataAccess :Utils);
|
13
13
|
|
14
|
-
$VERSION = '1.
|
14
|
+
$VERSION = '1.36';
|
15
15
|
|
16
16
|
sub ProcessOcad($$$);
|
17
17
|
sub ProcessJPEG_HDR($$$);
|
@@ -335,6 +335,9 @@ sub ProcessJPEG_HDR($$$);
|
|
335
335
|
Name => 'NikonApp',
|
336
336
|
Condition => '$$valPt =~ m(\0{6}/NIKON APP$)',
|
337
337
|
Notes => 'contains editing information in XMP format',
|
338
|
+
}, {
|
339
|
+
Name => 'SonyHiddenData',
|
340
|
+
Condition => '$$valPt =~ /^\x55\x26\x11\x05\0/',
|
338
341
|
}, {
|
339
342
|
Name => 'PreviewImage',
|
340
343
|
Condition => '$$valPt =~ /^\xff\xd8\xff/',
|
@@ -765,7 +768,7 @@ segments are included in the Image::ExifTool module itself.
|
|
765
768
|
|
766
769
|
=head1 AUTHOR
|
767
770
|
|
768
|
-
Copyright 2003-
|
771
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
769
772
|
|
770
773
|
This library is free software; you can redistribute it and/or modify it
|
771
774
|
under the same terms as Perl itself.
|
@@ -2590,7 +2590,7 @@ estimated JPEG quality if requested.
|
|
2590
2590
|
|
2591
2591
|
=head1 AUTHOR
|
2592
2592
|
|
2593
|
-
Copyright 2003-
|
2593
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
2594
2594
|
|
2595
2595
|
This library is free software; you can redistribute it and/or modify it
|
2596
2596
|
under the same terms as Perl itself.
|
@@ -14,7 +14,7 @@ use vars qw($VERSION);
|
|
14
14
|
use Image::ExifTool qw(:DataAccess :Utils);
|
15
15
|
use Image::ExifTool::Import;
|
16
16
|
|
17
|
-
$VERSION = '1.
|
17
|
+
$VERSION = '1.07';
|
18
18
|
|
19
19
|
sub ProcessJSON($$);
|
20
20
|
sub ProcessTag($$$$%);
|
@@ -120,7 +120,7 @@ sub ProcessJSON($$)
|
|
120
120
|
my $buff = substr(${$$dirInfo{DataPt}}, $$dirInfo{DirStart}, $$dirInfo{DirLen});
|
121
121
|
$dataPt = \$buff;
|
122
122
|
}
|
123
|
-
$raf =
|
123
|
+
$raf = File::RandomAccess->new($dataPt);
|
124
124
|
# extract as a block if requested
|
125
125
|
my $blockName = $$dirInfo{BlockInfo} ? $$dirInfo{BlockInfo}{Name} : '';
|
126
126
|
my $blockExtract = $et->Options('BlockExtract');
|
@@ -179,7 +179,7 @@ information from JSON files.
|
|
179
179
|
|
180
180
|
=head1 AUTHOR
|
181
181
|
|
182
|
-
Copyright 2003-
|
182
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
183
183
|
|
184
184
|
This library is free software; you can redistribute it and/or modify it
|
185
185
|
under the same terms as Perl itself.
|
@@ -13,7 +13,7 @@ use vars qw($VERSION);
|
|
13
13
|
use Image::ExifTool qw(:DataAccess :Utils);
|
14
14
|
use Image::ExifTool::Exif;
|
15
15
|
|
16
|
-
$VERSION = '1.
|
16
|
+
$VERSION = '1.04';
|
17
17
|
|
18
18
|
sub ProcessJVCText($$$);
|
19
19
|
|
@@ -88,7 +88,7 @@ sub ProcessJVCText($$$)
|
|
88
88
|
$tagInfo = {
|
89
89
|
Name => "JVC_Text_$tag",
|
90
90
|
Unknown => 1,
|
91
|
-
PrintConv =>
|
91
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
92
92
|
};
|
93
93
|
# add tag information to table
|
94
94
|
AddTagToTable($tagTablePtr, $tag, $tagInfo);
|
@@ -117,7 +117,7 @@ notes.
|
|
117
117
|
|
118
118
|
=head1 AUTHOR
|
119
119
|
|
120
|
-
Copyright 2003-
|
120
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
121
121
|
|
122
122
|
This library is free software; you can redistribute it and/or modify it
|
123
123
|
under the same terms as Perl itself.
|