exiftool_vendored 13.25.0 → 13.27.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 +28 -3
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/build_geolocation +1 -1
- data/bin/exiftool +8 -6
- data/bin/lib/Image/ExifTool/Canon.pm +3 -2
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -0
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -1
- data/bin/lib/Image/ExifTool/PCAP.pm +5 -5
- data/bin/lib/Image/ExifTool/Pentax.pm +51 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +27 -9
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +61 -9
- data/bin/lib/Image/ExifTool/README +7 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +15 -6
- data/bin/lib/Image/ExifTool/TagLookup.pm +16 -2
- data/bin/lib/Image/ExifTool/TagNames.pod +117 -90
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -0
- data/bin/lib/Image/ExifTool/XMP.pm +22 -15
- data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
- data/bin/lib/Image/ExifTool.pm +7 -3
- data/bin/lib/Image/ExifTool.pod +2 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -30,7 +30,7 @@ use strict;
|
|
30
30
|
use vars qw($VERSION $AUTOLOAD);
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
|
33
|
-
$VERSION = '1.
|
33
|
+
$VERSION = '1.71';
|
34
34
|
|
35
35
|
sub ConvertTimecode($);
|
36
36
|
sub ProcessSGLT($$$);
|
@@ -547,6 +547,10 @@ my %code2charset = (
|
|
547
547
|
Name => 'ID3',
|
548
548
|
SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' },
|
549
549
|
},
|
550
|
+
'ID3 ' => { # (NC)
|
551
|
+
Name => 'ID3-2',
|
552
|
+
SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' },
|
553
|
+
},
|
550
554
|
#
|
551
555
|
# WebP-specific tags
|
552
556
|
#
|
@@ -668,6 +672,9 @@ my %code2charset = (
|
|
668
672
|
Name => 'SEAL',
|
669
673
|
SubDirectory => { TagTable => 'Image::ExifTool::XMP::SEAL' },
|
670
674
|
},
|
675
|
+
# LGWV - written by Logic Pro
|
676
|
+
# minf, elm1, regn, umid, DGDA - written by Pro Tools
|
677
|
+
# MXrt, muma, chrp - written by Sequoia Pro
|
671
678
|
);
|
672
679
|
|
673
680
|
# the maker notes used by some digital cameras
|
@@ -1554,9 +1561,9 @@ my %code2charset = (
|
|
1554
1561
|
Name => 'Duration',
|
1555
1562
|
Require => {
|
1556
1563
|
0 => 'RIFF:AvgBytesPerSec',
|
1557
|
-
1 => 'FileSize',
|
1558
1564
|
},
|
1559
1565
|
Desire => {
|
1566
|
+
1 => 'FileSize', # (only used if 'data' length isn't available)
|
1560
1567
|
# check FrameCount because this calculation only applies
|
1561
1568
|
# to audio-only files (eg. WAV)
|
1562
1569
|
2 => 'FrameCount',
|
@@ -1564,8 +1571,9 @@ my %code2charset = (
|
|
1564
1571
|
},
|
1565
1572
|
# (can't calculate duration like this for compressed audio types)
|
1566
1573
|
RawConv => q{
|
1567
|
-
return undef if $$self{FileType} =~ /^(LA|OFR|PAC|WV)
|
1568
|
-
return
|
1574
|
+
return undef if $$self{FileType} =~ /^(LA|OFR|PAC|WV)$/ or $val[2] or $val[3];
|
1575
|
+
return undef unless $val[0] and ($$self{RIFFDataLen} or $val[1]);
|
1576
|
+
return(($$self{RIFFDataLen} || $val[1]) / $val[0]);
|
1569
1577
|
},
|
1570
1578
|
PrintConv => 'ConvertDuration($val)',
|
1571
1579
|
},
|
@@ -2098,8 +2106,9 @@ sub ProcessRIFF($$)
|
|
2098
2106
|
$pos += 4;
|
2099
2107
|
$tag .= "_$buff";
|
2100
2108
|
$len -= 4; # already read 4 bytes (the LIST type)
|
2101
|
-
} elsif ($tag eq 'data'
|
2102
|
-
$len = $$et{DataSize64};
|
2109
|
+
} elsif ($tag eq 'data') {
|
2110
|
+
$len = $$et{DataSize64} if $len == 0xffffffff and $$et{DataSize64};
|
2111
|
+
$$et{RIFFDataLen} = ($$et{RIFFDataLen} || 0) + $len;
|
2103
2112
|
}
|
2104
2113
|
$et->VPrint(0, "RIFF '${tag}' chunk ($len bytes of data):\n");
|
2105
2114
|
if ($len <= 0) {
|
@@ -785,7 +785,7 @@ my %tagLookup = (
|
|
785
785
|
'afpointmode' => { 374 => 0x3 },
|
786
786
|
'afpointposition' => { 119 => 0x2021, 358 => 0x4d },
|
787
787
|
'afpointregistration' => { 88 => 0x7 },
|
788
|
-
'afpoints' => { 190 => 0x10 },
|
788
|
+
'afpoints' => { 190 => 0x10, 369 => 0x12a },
|
789
789
|
'afpointsel' => { 329 => 0xb, 330 => 0xb, 331 => 0xb, 332 => 0xb },
|
790
790
|
'afpointselected' => { 191 => 0xd, 334 => 0x305, 394 => 0xe, 445 => 0x15, 446 => 0x14, 447 => [0x14,0x1c], 462 => 0x201e },
|
791
791
|
'afpointselected2' => { 374 => 0x4 },
|
@@ -797,10 +797,12 @@ my %tagLookup = (
|
|
797
797
|
'afpointspotmetering' => { 89 => 0xd },
|
798
798
|
'afpointsselected' => { 200 => 0x1c, 201 => 0x1c, 370 => '4.1', 497 => 0x4 },
|
799
799
|
'afpointsspecial' => { 370 => '4.2' },
|
800
|
+
'afpointsunknown' => { 369 => 0x18f },
|
800
801
|
'afpointsunknown1' => { 369 => 0x0 },
|
801
802
|
'afpointsunknown2' => { 369 => 0x2 },
|
802
803
|
'afpointsused' => { 200 => 0x8, 201 => [0x1c,0x8], 202 => 0x8, 203 => 0xa, 204 => 0xa, 441 => [0x10,0x16e] },
|
803
804
|
'afpointswitching' => { 2 => 0x4 },
|
805
|
+
'afpointvalues' => { 369 => 0x14 },
|
804
806
|
'afpredictor' => { 369 => 0x4 },
|
805
807
|
'afresponse' => { 246 => 0xad },
|
806
808
|
'afresult' => { 339 => 0x1038 },
|
@@ -6466,7 +6468,7 @@ my %tagLookup = (
|
|
6466
6468
|
'sensorserialnumber' => { 145 => 0x9ce },
|
6467
6469
|
'sensorshield' => { 253 => 0x76b, 254 => 0x77b, 255 => 0x66d, 256 => 0x69d, 257 => 0x705 },
|
6468
6470
|
'sensorsize' => { 163 => 'SensorSize', 394 => 0x35 },
|
6469
|
-
'sensortemperature' => { 337 => 0x1500, 339 => 0x1007, 399 => 0xc, 403 => 0x210, 438 => [0x39,0x55] },
|
6471
|
+
'sensortemperature' => { 337 => 0x1500, 339 => 0x1007, 399 => [0xc,0x2a], 403 => 0x210, 438 => [0x39,0x55] },
|
6470
6472
|
'sensortemperature2' => { 399 => 0xe, 403 => 0x211 },
|
6471
6473
|
'sensortopborder' => { 145 => 0x3ec },
|
6472
6474
|
'sensortopmargin' => { 403 => 0x10b },
|
@@ -7042,6 +7044,7 @@ my %tagLookup = (
|
|
7042
7044
|
'track' => { 412 => "\xa9trk", 420 => "\xa9trk" },
|
7043
7045
|
'trackcreatedate' => { 419 => 0x1 },
|
7044
7046
|
'trackmodifydate' => { 419 => 0x2 },
|
7047
|
+
'trackname' => { 420 => 'tnam' },
|
7045
7048
|
'tracknumber' => { 412 => 'trkn', 557 => 'trackNumber' },
|
7046
7049
|
'tracks' => { 557 => 'Tracks' },
|
7047
7050
|
'tracksframerate' => { 557 => [\'Tracks','TracksFrameRate'] },
|
@@ -7818,6 +7821,7 @@ my %tagExists = (
|
|
7818
7821
|
'alternateduotonecolors' => 1,
|
7819
7822
|
'alternateellipsoidheight' => 1,
|
7820
7823
|
'alternateellipsoidheightextended' => 1,
|
7824
|
+
'alternateformattrack' => 1,
|
7821
7825
|
'alternateheading' => 1,
|
7822
7826
|
'alternatelatitude' => 1,
|
7823
7827
|
'alternatelongitude' => 1,
|
@@ -8573,6 +8577,7 @@ my %tagExists = (
|
|
8573
8577
|
'cloneobject' => 1,
|
8574
8578
|
'clonetype' => 1,
|
8575
8579
|
'closedcaptioning' => 1,
|
8580
|
+
'closedcaptiontrack' => 1,
|
8576
8581
|
'cmddialsaperturesetting' => 1,
|
8577
8582
|
'cmddialschangemainsub' => 1,
|
8578
8583
|
'cmddialschangemainsubexposure' => 1,
|
@@ -9388,6 +9393,7 @@ my %tagExists = (
|
|
9388
9393
|
'extendedcontentdescr' => 1,
|
9389
9394
|
'extendedcontentencryption' => 1,
|
9390
9395
|
'extendedinfo' => 1,
|
9396
|
+
'extendedlanguagetag' => 1,
|
9391
9397
|
'extendedstreamprops' => 1,
|
9392
9398
|
'extendedtracktitle' => 1,
|
9393
9399
|
'extendedxmp' => 1,
|
@@ -9632,6 +9638,7 @@ my %tagExists = (
|
|
9632
9638
|
'fontweight' => 1,
|
9633
9639
|
'footerposition' => 1,
|
9634
9640
|
'footnotes' => 1,
|
9641
|
+
'forcedsubtitletrack' => 1,
|
9635
9642
|
'form' => 1,
|
9636
9643
|
'formatsdcard' => 1,
|
9637
9644
|
'formattag' => 1,
|
@@ -10022,6 +10029,7 @@ my %tagExists = (
|
|
10022
10029
|
'ics' => 1,
|
10023
10030
|
'id' => 1,
|
10024
10031
|
'id3' => 1,
|
10032
|
+
'id3-2' => 1,
|
10025
10033
|
'id3size' => 1,
|
10026
10034
|
'id3v1' => 1,
|
10027
10035
|
'id3v1_enh' => 1,
|
@@ -11116,6 +11124,7 @@ my %tagExists = (
|
|
11116
11124
|
'nominalplaytime' => 1,
|
11117
11125
|
'nominalvideobitrate' => 1,
|
11118
11126
|
'nomssmarttags' => 1,
|
11127
|
+
'non-primarysourcetrack' => 1,
|
11119
11128
|
'normallinetransfertiming' => 1,
|
11120
11129
|
'noseslimming' => 1,
|
11121
11130
|
'note' => 1,
|
@@ -12034,6 +12043,7 @@ my %tagExists = (
|
|
12034
12043
|
'rotationxyz' => 1,
|
12035
12044
|
'rotmode' => 1,
|
12036
12045
|
'roundtripversion' => 1,
|
12046
|
+
'rovegps' => 1,
|
12037
12047
|
'rowcount' => 1,
|
12038
12048
|
'rowinterleavefactor' => 1,
|
12039
12049
|
'rsrc' => 1,
|
@@ -12561,6 +12571,7 @@ my %tagExists = (
|
|
12561
12571
|
'subsystemversion' => 1,
|
12562
12572
|
'subtileblocksize' => 1,
|
12563
12573
|
'subtitledescription' => 1,
|
12574
|
+
'subtitletrack' => 1,
|
12564
12575
|
'suffix' => 1,
|
12565
12576
|
'suggestedpalette' => 1,
|
12566
12577
|
'summary' => 1,
|
@@ -12591,6 +12602,7 @@ my %tagExists = (
|
|
12591
12602
|
'synchronizedlyricstext' => 1,
|
12592
12603
|
'synchronizedlyricstype' => 1,
|
12593
12604
|
'synconly' => 1,
|
12605
|
+
'syncronizedtrack' => 1,
|
12594
12606
|
'syncsampletable' => 1,
|
12595
12607
|
'syncstate' => 1,
|
12596
12608
|
'synlyrics' => 1,
|
@@ -12761,6 +12773,7 @@ my %tagExists = (
|
|
12761
12773
|
'timecode' => 1,
|
12762
12774
|
'timecodeindex' => 1,
|
12763
12775
|
'timecodeindexparms' => 1,
|
12776
|
+
'timecodetrack' => 1,
|
12764
12777
|
'timeinfo' => 1,
|
12765
12778
|
'timelapse' => 1,
|
12766
12779
|
'timelineinfo' => 1,
|
@@ -12859,6 +12872,7 @@ my %tagExists = (
|
|
12859
12872
|
'trackvolume' => 1,
|
12860
12873
|
'trademark' => 1,
|
12861
12874
|
'transactionid' => 1,
|
12875
|
+
'transcripttrack' => 1,
|
12862
12876
|
'transfercharacteristic' => 1,
|
12863
12877
|
'transfercharacteristics' => 1,
|
12864
12878
|
'transferrange' => 1,
|
@@ -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
|
15
|
+
They contain a total of 28440 tags, with 17667 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
|
@@ -6366,7 +6366,9 @@ These tags belong to the ExifTool XMP-xmpBJ family 1 group.
|
|
6366
6366
|
|
6367
6367
|
=head3 XMP xmpDM Tags
|
6368
6368
|
|
6369
|
-
XMP Dynamic Media namespace tags.
|
6369
|
+
XMP Dynamic Media namespace tags. See
|
6370
|
+
L<https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpDM/> for the
|
6371
|
+
specification.
|
6370
6372
|
|
6371
6373
|
These tags belong to the ExifTool XMP-xmpDM family 1 group.
|
6372
6374
|
|
@@ -20664,6 +20666,9 @@ Flash information tags for the K10D, K20D and K200D.
|
|
20664
20666
|
6 AFDefocus int8u
|
20665
20667
|
7 AFIntegrationTime int8u
|
20666
20668
|
11 AFPointsInFocus int8u
|
20669
|
+
20 AFPointValues? no
|
20670
|
+
298 AFPoints int8u[41]~
|
20671
|
+
399 AFPointsUnknown? int8u[41]~
|
20667
20672
|
506 LiveView int8u
|
20668
20673
|
509 AFHold int8u
|
20669
20674
|
|
@@ -20900,6 +20905,7 @@ sensors are located in the camera.
|
|
20900
20905
|
14 SensorTemperature2 int16s
|
20901
20906
|
20 CameraTemperature4 int16s
|
20902
20907
|
22 CameraTemperature5 int16s
|
20908
|
+
42 SensorTemperature int16s
|
20903
20909
|
|
20904
20910
|
=head3 Pentax UnknownInfo Tags
|
20905
20911
|
|
@@ -30316,7 +30322,7 @@ for the official QuickTime specification.
|
|
30316
30322
|
'meta' Meta QuickTime Meta
|
30317
30323
|
'moof' MovieFragment QuickTime MovieFragment
|
30318
30324
|
'moov' Movie QuickTime Movie
|
30319
|
-
'mpvd' MotionPhotoVideo
|
30325
|
+
'mpvd' MotionPhotoVideo undef
|
30320
30326
|
'nbmt' NextbaseMeta QuickTime Stream
|
30321
30327
|
'pict' PreviewPICT no
|
30322
30328
|
'pnot' Preview QuickTime Preview
|
@@ -30351,81 +30357,83 @@ for the official QuickTime specification.
|
|
30351
30357
|
The tags below are extracted from timed metadata in QuickTime and other
|
30352
30358
|
formats of video files when the ExtractEmbedded option is used. Although
|
30353
30359
|
most of these tags are combined into the single table below, ExifTool
|
30354
|
-
currently reads
|
30360
|
+
currently reads 104 different types of timed GPS metadata from video files.
|
30355
30361
|
|
30356
|
-
Tag Name
|
30357
|
-
--------
|
30358
|
-
Accelerometer
|
30359
|
-
AccelerometerData
|
30360
|
-
AngularVelocity
|
30361
|
-
CTMD
|
30362
|
-
CameraDateTime
|
30363
|
-
CameraModel
|
30364
|
-
Car
|
30365
|
-
|
30366
|
-
|
30367
|
-
|
30368
|
-
|
30369
|
-
|
30370
|
-
|
30371
|
-
|
30372
|
-
|
30373
|
-
|
30374
|
-
|
30375
|
-
|
30376
|
-
|
30377
|
-
|
30378
|
-
|
30379
|
-
|
30380
|
-
|
30381
|
-
|
30382
|
-
|
30383
|
-
|
30384
|
-
|
30385
|
-
|
30386
|
-
|
30387
|
-
|
30388
|
-
|
30389
|
-
|
30390
|
-
|
30391
|
-
|
30392
|
-
|
30393
|
-
|
30394
|
-
|
30395
|
-
|
30396
|
-
|
30397
|
-
|
30398
|
-
|
30399
|
-
|
30400
|
-
|
30401
|
-
|
30402
|
-
|
30403
|
-
|
30404
|
-
|
30405
|
-
|
30406
|
-
|
30407
|
-
|
30408
|
-
|
30409
|
-
|
30410
|
-
|
30411
|
-
|
30412
|
-
|
30413
|
-
|
30414
|
-
|
30415
|
-
|
30416
|
-
|
30417
|
-
|
30418
|
-
|
30419
|
-
|
30420
|
-
|
30421
|
-
|
30422
|
-
|
30423
|
-
|
30424
|
-
|
30425
|
-
|
30426
|
-
|
30427
|
-
|
30428
|
-
|
30362
|
+
Tag ID Tag Name Writable
|
30363
|
+
------ -------- --------
|
30364
|
+
'Accelerometer' Accelerometer no
|
30365
|
+
'AccelerometerData' AccelerometerData no
|
30366
|
+
'AngularVelocity' AngularVelocity no
|
30367
|
+
'CTMD' CTMD Canon CTMD
|
30368
|
+
'CameraDateTime' CameraDateTime no
|
30369
|
+
'CameraModel' CameraModel no
|
30370
|
+
'Car' Car no
|
30371
|
+
'DateTimeOriginal' DateTimeOriginal no
|
30372
|
+
'DateTimeStamp' DateTimeStamp no
|
30373
|
+
'Distance' Distance no
|
30374
|
+
'ExposureCompensation' ExposureCompensation no
|
30375
|
+
'ExposureTime' ExposureTime no
|
30376
|
+
'FNumber' FNumber no
|
30377
|
+
'FrameNumber' FrameNumber no
|
30378
|
+
'GPSAltitude' GPSAltitude no
|
30379
|
+
'GPSDOP' GPSDOP no
|
30380
|
+
'GPSDateTime' GPSDateTime no
|
30381
|
+
'GPSLatitude' GPSLatitude no
|
30382
|
+
'GPSLatitude2' GPSLatitude2 no
|
30383
|
+
'GPSLongitude' GPSLongitude no
|
30384
|
+
'GPSLongitude2' GPSLongitude2 no
|
30385
|
+
'GPSSatellites' GPSSatellites no
|
30386
|
+
'GPSSpeed' GPSSpeed no
|
30387
|
+
'GPSSpeedRef' GPSSpeedRef no
|
30388
|
+
'GPSTimeStamp' GPSTimeStamp no
|
30389
|
+
'GPSTrack' GPSTrack no
|
30390
|
+
'GPSTrackRef' GPSTrackRef no
|
30391
|
+
'GSensor' GSensor no
|
30392
|
+
'INSV' INSV QuickTime INSV_MakerNotes
|
30393
|
+
'ISO' ISO no
|
30394
|
+
'JPEG' JpgFromRaw no
|
30395
|
+
'KiloCalories' KiloCalories no
|
30396
|
+
'MagneticVariation' MagneticVariation no
|
30397
|
+
'RVMI' RVMI_gReV QuickTime RVMI_gReV
|
30398
|
+
RVMI_sReV QuickTime RVMI_sReV
|
30399
|
+
'RawGSensor' RawGSensor no
|
30400
|
+
'SampleDateTime' SampleDateTime no
|
30401
|
+
'SampleDuration' SampleDuration no
|
30402
|
+
'SampleTime' SampleTime no
|
30403
|
+
'Text' Text no
|
30404
|
+
'TimeCode' TimeCode no
|
30405
|
+
'Unknown00' Unknown00? no
|
30406
|
+
'Unknown01' Unknown01? no
|
30407
|
+
'Unknown02' Unknown02? no
|
30408
|
+
'Unknown03' Unknown03? no
|
30409
|
+
'UserLabel' UserLabel no
|
30410
|
+
'VerticalSpeed' VerticalSpeed no
|
30411
|
+
'VideoTimeStamp' VideoTimeStamp no
|
30412
|
+
'camm' camm0 QuickTime camm0
|
30413
|
+
camm1 QuickTime camm1
|
30414
|
+
camm2 QuickTime camm2
|
30415
|
+
camm3 QuickTime camm3
|
30416
|
+
camm4 QuickTime camm4
|
30417
|
+
camm5 QuickTime camm5
|
30418
|
+
camm6 QuickTime camm6
|
30419
|
+
camm7 QuickTime camm7
|
30420
|
+
'dbgi' DJIDebug? DJI Protobuf
|
30421
|
+
'djmd' DJIMetadata DJI Protobuf
|
30422
|
+
'fdsc' fdsc GoPro fdsc
|
30423
|
+
'gpmd' gpmd_Kingslim QuickTime Stream
|
30424
|
+
gpmd_Rove QuickTime Stream
|
30425
|
+
gpmd_FMAS QuickTime Stream
|
30426
|
+
gpmd_Wolfbox QuickTime Stream
|
30427
|
+
gpmd_GoPro GoPro GPMF
|
30428
|
+
'marl' marl GM marl
|
30429
|
+
'mebx' mebx QuickTime Keys
|
30430
|
+
'mett' mett Parrot mett
|
30431
|
+
'rtmd' rtmd Sony rtmd
|
30432
|
+
'ssmd' RoveGPS QuickTime RoveGPS
|
30433
|
+
Accelerometer no
|
30434
|
+
PreviewImage no
|
30435
|
+
'text' PreviewInfo QuickTime PreviewInfo
|
30436
|
+
'tx3g' tx3g QuickTime tx3g
|
30429
30437
|
|
30430
30438
|
=head3 QuickTime INSV_MakerNotes Tags
|
30431
30439
|
|
@@ -30436,14 +30444,6 @@ currently reads 103 different types of timed GPS metadata from video files.
|
|
30436
30444
|
0x001a Firmware no
|
30437
30445
|
0x002a Parameters no
|
30438
30446
|
|
30439
|
-
=head3 QuickTime PreviewInfo Tags
|
30440
|
-
|
30441
|
-
Preview stored by TomTom Bandit ActionCam.
|
30442
|
-
|
30443
|
-
Index1 Tag Name Writable
|
30444
|
-
------ -------- --------
|
30445
|
-
8 PreviewImage no
|
30446
|
-
|
30447
30447
|
=head3 QuickTime RVMI_gReV Tags
|
30448
30448
|
|
30449
30449
|
GPS information extracted from the RVMI box of MOV videos.
|
@@ -30668,6 +30668,23 @@ VideoKeys family 1 gorup.
|
|
30668
30668
|
------ -------- --------
|
30669
30669
|
'cits' FaceItem QuickTime Keys
|
30670
30670
|
|
30671
|
+
=head3 QuickTime RoveGPS Tags
|
30672
|
+
|
30673
|
+
Index1 Tag Name Writable
|
30674
|
+
------ -------- --------
|
30675
|
+
0 GPSLatitude no
|
30676
|
+
8 GPSLongitude no
|
30677
|
+
20 GPSSpeed no
|
30678
|
+
22 GPSDateTime no
|
30679
|
+
|
30680
|
+
=head3 QuickTime PreviewInfo Tags
|
30681
|
+
|
30682
|
+
Preview stored by TomTom Bandit ActionCam.
|
30683
|
+
|
30684
|
+
Index1 Tag Name Writable
|
30685
|
+
------ -------- --------
|
30686
|
+
8 PreviewImage no
|
30687
|
+
|
30671
30688
|
=head3 QuickTime tx3g Tags
|
30672
30689
|
|
30673
30690
|
Tags extracted from the tx3g sbtl timed metadata of Yuneec and Autel drones,
|
@@ -31157,6 +31174,7 @@ MP4 media box.
|
|
31157
31174
|
|
31158
31175
|
Tag ID Tag Name Writable
|
31159
31176
|
------ -------- --------
|
31177
|
+
'elng' ExtendedLanguageTag no
|
31160
31178
|
'hdlr' Handler QuickTime Handler
|
31161
31179
|
'mdhd' MediaHeader QuickTime MediaHeader
|
31162
31180
|
'minf' MediaInfo QuickTime MediaInfo
|
@@ -31556,8 +31574,15 @@ MP4 video media header.
|
|
31556
31574
|
------ -------- --------
|
31557
31575
|
'cdsc' ContentDescribes no
|
31558
31576
|
'chap' ChapterListTrackID no
|
31577
|
+
'clcp' ClosedCaptionTrack no
|
31578
|
+
'fall' AlternateFormatTrack no
|
31579
|
+
'folw' SubtitleTrack no
|
31580
|
+
'forc' ForcedSubtitleTrack no
|
31559
31581
|
'mpod' ElementaryStreamTrack no
|
31560
|
-
'
|
31582
|
+
'scpt' TranscriptTrack no
|
31583
|
+
'ssrc' Non-primarySourceTrack no
|
31584
|
+
'sync' SyncronizedTrack no
|
31585
|
+
'tmcd' TimecodeTrack no
|
31561
31586
|
|
31562
31587
|
=head3 QuickTime UserData Tags
|
31563
31588
|
|
@@ -31705,6 +31730,7 @@ the config file.
|
|
31705
31730
|
UnknownThumbnail string
|
31706
31731
|
'time' TimeStamp no
|
31707
31732
|
'titl' Title string/
|
31733
|
+
'tnam' TrackName string
|
31708
31734
|
'urat' UserRating undef/
|
31709
31735
|
'uuid' GarminSoftware string
|
31710
31736
|
GarminModel no
|
@@ -32120,6 +32146,7 @@ metadata to WEBP images, but can't yet write to other RIFF-based formats.
|
|
32120
32146
|
'EXIF' EXIF EXIF
|
32121
32147
|
UnknownEXIF no
|
32122
32148
|
'ICCP' ICC_Profile ICC_Profile
|
32149
|
+
'ID3 ' ID3-2 ID3
|
32123
32150
|
'IDIT' DateTimeOriginal no
|
32124
32151
|
'JUNK' OlympusJunk Olympus AVI
|
32125
32152
|
CasioJunk EXIF
|
@@ -40185,7 +40212,7 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
40185
40212
|
0x0bac CustomOption1 no
|
40186
40213
|
0x0bad CustomOption2 no
|
40187
40214
|
0x4bac CustomOption3 no
|
40188
|
-
0x4bad
|
40215
|
+
0x4bad CustomOption4 no
|
40189
40216
|
'ByteOrder' ByteOrder no
|
40190
40217
|
'IDB-2' DeviceName no
|
40191
40218
|
'IDB-3' Description no
|
@@ -40197,8 +40224,8 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
40197
40224
|
'IDB-9' TimeStampResolution no
|
40198
40225
|
'IDB-10' TimeZone no
|
40199
40226
|
'IDB-11' Filter no
|
40200
|
-
'IDB-12'
|
40201
|
-
'IDB-13'
|
40227
|
+
'IDB-12' OperatingSystem no
|
40228
|
+
'IDB-13' FrameCheckSequenceLength no
|
40202
40229
|
'IDB-14' TimeStampOffset no
|
40203
40230
|
'IDB-15' Hardware no
|
40204
40231
|
'IDB-16' TXSpeed no
|
@@ -40207,7 +40234,7 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
40207
40234
|
'LinkType' LinkType no
|
40208
40235
|
'PCAPVersion' PCAPVersion no
|
40209
40236
|
'SHB-2' Hardware no
|
40210
|
-
'SHB-3'
|
40237
|
+
'SHB-3' OperatingSystem no
|
40211
40238
|
'SHB-4' UserApplication no
|
40212
40239
|
'TimeStamp' TimeStamp no
|
40213
40240
|
|
@@ -1729,6 +1729,7 @@ ItemID2: foreach $id (reverse sort { $a <=> $b } keys %$items) {
|
|
1729
1729
|
# (note that $tag may be a binary Keys index here)
|
1730
1730
|
foreach $tag (@addTags) {
|
1731
1731
|
my $tagInfo = $$dirs{$tag} || $$newTags{$tag};
|
1732
|
+
next unless ref $tagInfo eq 'HASH'; # (shouldn't happen, but somehow there is forum17260)
|
1732
1733
|
next if defined $$tagInfo{CanCreate} and not $$tagInfo{CanCreate};
|
1733
1734
|
next if defined $$tagInfo{MediaType} and $$et{MediaType} ne $$tagInfo{MediaType};
|
1734
1735
|
my $subdir = $$tagInfo{SubDirectory};
|
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
|
|
50
50
|
use Image::ExifTool::GPS;
|
51
51
|
require Exporter;
|
52
52
|
|
53
|
-
$VERSION = '3.
|
53
|
+
$VERSION = '3.73';
|
54
54
|
@ISA = qw(Exporter);
|
55
55
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
56
56
|
|
@@ -3539,14 +3539,19 @@ NoLoop:
|
|
3539
3539
|
}
|
3540
3540
|
last unless $sti;
|
3541
3541
|
}
|
3542
|
-
#
|
3543
|
-
|
3544
|
-
|
3545
|
-
|
3546
|
-
|
3547
|
-
|
3548
|
-
|
3549
|
-
|
3542
|
+
# use existing definition if we already added this tag
|
3543
|
+
if ($$tagTablePtr{$tagID}) {
|
3544
|
+
$tagInfo = $$tagTablePtr{$tagID};
|
3545
|
+
} else {
|
3546
|
+
# generate new tagInfo hash based on existing top-level tag
|
3547
|
+
$tagInfo = { %$sti, Name => $flat . $$sti{Name} };
|
3548
|
+
# be careful not to copy elements we shouldn't...
|
3549
|
+
delete $$tagInfo{Description}; # Description will be different
|
3550
|
+
# can't copy group hash because group 1 will be different and
|
3551
|
+
# we need to check this when writing tag to a specific group
|
3552
|
+
delete $$tagInfo{Groups};
|
3553
|
+
$$tagInfo{Groups}{2} = $$sti{Groups}{2} if $$sti{Groups};
|
3554
|
+
}
|
3550
3555
|
last;
|
3551
3556
|
}
|
3552
3557
|
}
|
@@ -3592,13 +3597,15 @@ NoLoop:
|
|
3592
3597
|
#} elsif (grep / /, @$props) {
|
3593
3598
|
# $$tagInfo{List} = 1;
|
3594
3599
|
}
|
3595
|
-
|
3596
|
-
|
3597
|
-
|
3598
|
-
|
3599
|
-
$$
|
3600
|
+
unless ($$tagTablePtr{$tagID} and $$tagTablePtr{$tagID} eq $tagInfo) {
|
3601
|
+
# save property list for verbose "adding" message unless this tag already exists
|
3602
|
+
$added = \@tagList unless $$tagTablePtr{$tagID};
|
3603
|
+
# if this is an empty structure, we must add a Struct field
|
3604
|
+
if (not length $val and $$attrs{'rdf:parseType'} and $$attrs{'rdf:parseType'} eq 'Resource') {
|
3605
|
+
$$tagInfo{Struct} = { STRUCT_NAME => 'XMP Unknown' } unless $$tagInfo{Struct};
|
3606
|
+
}
|
3607
|
+
AddTagToTable($tagTablePtr, $tagID, $tagInfo);
|
3600
3608
|
}
|
3601
|
-
AddTagToTable($tagTablePtr, $tagID, $tagInfo);
|
3602
3609
|
last;
|
3603
3610
|
}
|
3604
3611
|
# decode value if necessary (et:encoding was used before exiftool 7.71)
|
@@ -170,7 +170,11 @@ my %sAppInfo = (
|
|
170
170
|
%xmpTableDefaults,
|
171
171
|
GROUPS => { 1 => 'XMP-xmpDM', 2 => 'Image' },
|
172
172
|
NAMESPACE => 'xmpDM',
|
173
|
-
NOTES =>
|
173
|
+
NOTES => q{
|
174
|
+
XMP Dynamic Media namespace tags. See
|
175
|
+
L<https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpDM/> for the
|
176
|
+
specification.
|
177
|
+
},
|
174
178
|
absPeakAudioFilePath=> { },
|
175
179
|
album => { },
|
176
180
|
altTapeName => { },
|
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 $advFmtSelf);
|
31
31
|
|
32
|
-
$VERSION = '13.
|
32
|
+
$VERSION = '13.27';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -9213,10 +9213,14 @@ sub HandleTag($$$$;%)
|
|
9213
9213
|
if ($start >= 0 and $start + $size <= $dLen) {
|
9214
9214
|
$format = $$tagInfo{Format} || $$tagTablePtr{FORMAT};
|
9215
9215
|
$format = $pfmt if not $format and $pfmt and $formatSize{$pfmt};
|
9216
|
-
if ($format) {
|
9216
|
+
if (not $format) {
|
9217
|
+
$val = substr($$dataPt, $start, $size);
|
9218
|
+
} elsif (not $$tagInfo{ByteOrder}) {
|
9217
9219
|
$val = ReadValue($dataPt, $start, $format, $$tagInfo{Count}, $size, \$rational);
|
9218
9220
|
} else {
|
9219
|
-
$
|
9221
|
+
my $oldOrder = GetByteOrder(), SetByteOrder($$tagInfo{ByteOrder});
|
9222
|
+
$val = ReadValue($dataPt, $start, $format, $$tagInfo{Count}, $size, \$rational);
|
9223
|
+
SetByteOrder($oldOrder);
|
9220
9224
|
}
|
9221
9225
|
$binVal = substr($$dataPt, $start, $size) if $$self{OPTIONS}{SaveBin};
|
9222
9226
|
} else {
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -895,7 +895,8 @@ Supported options are 'MD5', 'SHA256', and 'SHA512'. Default is 'MD5'.
|
|
895
895
|
=item KeepUTCTime
|
896
896
|
|
897
897
|
Flag to keep UTC times in Zulu time zone instead of converting to local
|
898
|
-
time.
|
898
|
+
time. Affects only times which are stored as seconds since the UTC epoch.
|
899
|
+
Default is undef.
|
899
900
|
|
900
901
|
=item Lang
|
901
902
|
|