exiftool_vendored 13.34.0 → 13.37.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 +55 -1
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/Makefile.PL +1 -0
- data/bin/README +2 -2
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +43 -33
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +15 -8
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +86 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +59 -8
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +3 -2
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +91 -33
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +3 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +10 -2
- data/bin/lib/Image/ExifTool/GoPro.pm +5 -5
- data/bin/lib/Image/ExifTool/Google.pm +804 -0
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +3 -3
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +2 -2
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +4 -6
- data/bin/lib/Image/ExifTool/MPEG.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 +2 -2
- data/bin/lib/Image/ExifTool/MakerNotes.pm +30 -7
- data/bin/lib/Image/ExifTool/Microsoft.pm +4 -4
- data/bin/lib/Image/ExifTool/Nikon.pm +6 -5
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +6 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +51 -39
- data/bin/lib/Image/ExifTool/Protobuf.pm +12 -6
- data/bin/lib/Image/ExifTool/Qualcomm.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +30 -8
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/README +7 -6
- data/bin/lib/Image/ExifTool/RIFF.pm +5 -3
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +375 -91
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +8 -5
- data/bin/lib/Image/ExifTool/Sony.pm +20 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5749 -5695
- data/bin/lib/Image/ExifTool/TagNames.pod +690 -519
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Trailer.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/Writer.pl +2 -1
- data/bin/lib/Image/ExifTool/XMP.pm +39 -32
- data/bin/lib/Image/ExifTool/XMP2.pl +0 -482
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +6 -4
- data/bin/lib/Image/ExifTool.pod +3 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -6
@@ -79,79 +79,6 @@ my %sTimecode = (
|
|
79
79
|
timeValue => { },
|
80
80
|
value => { Writable => 'integer', Notes => 'only in XMP 2008 spec; an error?' },
|
81
81
|
);
|
82
|
-
my %sPose = (
|
83
|
-
STRUCT_NAME => 'Pose',
|
84
|
-
NAMESPACE => { Pose => 'http://ns.google.com/photos/dd/1.0/pose/' },
|
85
|
-
PositionX => { Writable => 'real', Groups => { 2 => 'Location' } },
|
86
|
-
PositionY => { Writable => 'real', Groups => { 2 => 'Location' } },
|
87
|
-
PositionZ => { Writable => 'real', Groups => { 2 => 'Location' } },
|
88
|
-
RotationX => { Writable => 'real', Groups => { 2 => 'Location' } },
|
89
|
-
RotationY => { Writable => 'real', Groups => { 2 => 'Location' } },
|
90
|
-
RotationZ => { Writable => 'real', Groups => { 2 => 'Location' } },
|
91
|
-
RotationW => { Writable => 'real', Groups => { 2 => 'Location' } },
|
92
|
-
Timestamp => {
|
93
|
-
Writable => 'integer',
|
94
|
-
Shift => 'Time',
|
95
|
-
Groups => { 2 => 'Time' },
|
96
|
-
ValueConv => 'ConvertUnixTime($val / 1000, 1, 3)',
|
97
|
-
ValueConvInv => 'int(GetUnixTime($val, 1) * 1000)',
|
98
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
99
|
-
PrintConvInv => '$self->InverseDateTime($val,undef,1)',
|
100
|
-
},
|
101
|
-
);
|
102
|
-
my %sEarthPose = (
|
103
|
-
STRUCT_NAME => 'EarthPose',
|
104
|
-
NAMESPACE => { EarthPose => 'http://ns.google.com/photos/dd/1.0/earthpose/' },
|
105
|
-
Latitude => {
|
106
|
-
Writable => 'real',
|
107
|
-
Groups => { 2 => 'Location' },
|
108
|
-
ValueConv => 'Image::ExifTool::GPS::ToDegrees($val, 1)',
|
109
|
-
ValueConvInv => '$val',
|
110
|
-
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
111
|
-
PrintConvInv => 'Image::ExifTool::GPS::ToDegrees($val, 1, "lat")',
|
112
|
-
},
|
113
|
-
Longitude => {
|
114
|
-
Writable => 'real',
|
115
|
-
Groups => { 2 => 'Location' },
|
116
|
-
ValueConv => 'Image::ExifTool::GPS::ToDegrees($val, 1)',
|
117
|
-
ValueConvInv => '$val',
|
118
|
-
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
119
|
-
PrintConvInv => 'Image::ExifTool::GPS::ToDegrees($val, 1, "lon")',
|
120
|
-
},
|
121
|
-
Altitude => {
|
122
|
-
Writable => 'real',
|
123
|
-
Groups => { 2 => 'Location' },
|
124
|
-
PrintConv => '"$val m"',
|
125
|
-
PrintConvInv => '$val=~s/\s*m$//;$val',
|
126
|
-
},
|
127
|
-
RotationX => { Writable => 'real', Groups => { 2 => 'Location' } },
|
128
|
-
RotationY => { Writable => 'real', Groups => { 2 => 'Location' } },
|
129
|
-
RotationZ => { Writable => 'real', Groups => { 2 => 'Location' } },
|
130
|
-
RotationW => { Writable => 'real', Groups => { 2 => 'Location' } },
|
131
|
-
Timestamp => {
|
132
|
-
Writable => 'integer',
|
133
|
-
Shift => 'Time',
|
134
|
-
Groups => { 2 => 'Time' },
|
135
|
-
ValueConv => 'ConvertUnixTime($val / 1000, 1, 3)',
|
136
|
-
ValueConvInv => 'int(GetUnixTime($val, 1) * 1000)',
|
137
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
138
|
-
PrintConvInv => '$self->InverseDateTime($val,undef,1)',
|
139
|
-
},
|
140
|
-
);
|
141
|
-
my %sVendorInfo = (
|
142
|
-
STRUCT_NAME => 'VendorInfo',
|
143
|
-
NAMESPACE => { VendorInfo => 'http://ns.google.com/photos/dd/1.0/vendorinfo/' },
|
144
|
-
Model => { },
|
145
|
-
Manufacturer => { },
|
146
|
-
Notes => { },
|
147
|
-
);
|
148
|
-
my %sAppInfo = (
|
149
|
-
STRUCT_NAME => 'AppInfo',
|
150
|
-
NAMESPACE => { AppInfo => 'http://ns.google.com/photos/dd/1.0/appinfo/' },
|
151
|
-
Application => { },
|
152
|
-
Version => { },
|
153
|
-
ItemURI => { },
|
154
|
-
);
|
155
82
|
|
156
83
|
# camera-raw defaults
|
157
84
|
%Image::ExifTool::XMP::crd = (
|
@@ -1760,414 +1687,6 @@ my %sACDSeeRegionStruct = (
|
|
1760
1687
|
ConfidenceLevel => { Writable => 'integer' },
|
1761
1688
|
);
|
1762
1689
|
|
1763
|
-
# Google audio namespace
|
1764
|
-
%Image::ExifTool::XMP::GAudio = (
|
1765
|
-
%xmpTableDefaults,
|
1766
|
-
GROUPS => { 1 => 'XMP-GAudio', 2 => 'Audio' },
|
1767
|
-
NAMESPACE => 'GAudio',
|
1768
|
-
Data => {
|
1769
|
-
Name => 'AudioData',
|
1770
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1771
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1772
|
-
},
|
1773
|
-
Mime => { Name => 'AudioMimeType' },
|
1774
|
-
);
|
1775
|
-
|
1776
|
-
# Google image namespace
|
1777
|
-
%Image::ExifTool::XMP::GImage = (
|
1778
|
-
%xmpTableDefaults,
|
1779
|
-
GROUPS => { 1 => 'XMP-GImage', 2 => 'Image' },
|
1780
|
-
NAMESPACE => 'GImage',
|
1781
|
-
Data => {
|
1782
|
-
Name => 'ImageData',
|
1783
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1784
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1785
|
-
},
|
1786
|
-
Mime => { Name => 'ImageMimeType' },
|
1787
|
-
);
|
1788
|
-
|
1789
|
-
# Google panorama namespace properties
|
1790
|
-
# (ref https://exiftool.org/forum/index.php/topic,4569.0.html)
|
1791
|
-
%Image::ExifTool::XMP::GPano = (
|
1792
|
-
%xmpTableDefaults,
|
1793
|
-
GROUPS => { 1 => 'XMP-GPano', 2 => 'Image' },
|
1794
|
-
NAMESPACE => 'GPano',
|
1795
|
-
NOTES => q{
|
1796
|
-
Panorama tags written by Google Photosphere. See
|
1797
|
-
L<https://developers.google.com/panorama/metadata/> for the specification.
|
1798
|
-
},
|
1799
|
-
UsePanoramaViewer => { Writable => 'boolean' },
|
1800
|
-
CaptureSoftware => { },
|
1801
|
-
StitchingSoftware => { },
|
1802
|
-
ProjectionType => { },
|
1803
|
-
PoseHeadingDegrees => { Writable => 'real' },
|
1804
|
-
PosePitchDegrees => { Writable => 'real' },
|
1805
|
-
PoseRollDegrees => { Writable => 'real' },
|
1806
|
-
InitialViewHeadingDegrees => { Writable => 'real' },
|
1807
|
-
InitialViewPitchDegrees => { Writable => 'real' },
|
1808
|
-
InitialViewRollDegrees => { Writable => 'real' },
|
1809
|
-
InitialHorizontalFOVDegrees => { Writable => 'real' },
|
1810
|
-
InitialVerticalFOVDegrees => { Writable => 'real' },
|
1811
|
-
FirstPhotoDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
1812
|
-
LastPhotoDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
1813
|
-
SourcePhotosCount => { Writable => 'integer' },
|
1814
|
-
ExposureLockUsed => { Writable => 'boolean' },
|
1815
|
-
CroppedAreaImageWidthPixels => { Writable => 'real' },
|
1816
|
-
CroppedAreaImageHeightPixels => { Writable => 'real' },
|
1817
|
-
FullPanoWidthPixels => { Writable => 'real' },
|
1818
|
-
FullPanoHeightPixels => { Writable => 'real' },
|
1819
|
-
CroppedAreaLeftPixels => { Writable => 'real' },
|
1820
|
-
CroppedAreaTopPixels => { Writable => 'real' },
|
1821
|
-
InitialCameraDolly => { Writable => 'real' },
|
1822
|
-
# (the following have been observed, but are not in the specification)
|
1823
|
-
LargestValidInteriorRectLeft => { Writable => 'real' },
|
1824
|
-
LargestValidInteriorRectTop => { Writable => 'real' },
|
1825
|
-
LargestValidInteriorRectWidth => { Writable => 'real' },
|
1826
|
-
LargestValidInteriorRectHeight => { Writable => 'real' },
|
1827
|
-
);
|
1828
|
-
|
1829
|
-
# Google Spherical Images namespace (ref https://github.com/google/spatial-media/blob/master/docs/spherical-video-rfc.md)
|
1830
|
-
%Image::ExifTool::XMP::GSpherical = (
|
1831
|
-
%xmpTableDefaults,
|
1832
|
-
GROUPS => { 1 => 'XMP-GSpherical', 2 => 'Image' },
|
1833
|
-
WRITE_GROUP => 'GSpherical', # write in special location for video files
|
1834
|
-
NAMESPACE => 'GSpherical',
|
1835
|
-
AVOID => 1,
|
1836
|
-
NOTES => q{
|
1837
|
-
Not actually XMP. These RDF/XML tags are used in Google spherical MP4
|
1838
|
-
videos. These tags are written into the video track of MOV/MP4 files, and
|
1839
|
-
not at the top level like other XMP tags. See
|
1840
|
-
L<https://github.com/google/spatial-media/blob/master/docs/spherical-video-rfc.md>
|
1841
|
-
for the specification.
|
1842
|
-
},
|
1843
|
-
# (avoid due to conflicts with XMP-GPano tags)
|
1844
|
-
Spherical => { Writable => 'boolean' },
|
1845
|
-
Stitched => { Writable => 'boolean' },
|
1846
|
-
StitchingSoftware => { },
|
1847
|
-
ProjectionType => { },
|
1848
|
-
StereoMode => { },
|
1849
|
-
SourceCount => { Writable => 'integer' },
|
1850
|
-
InitialViewHeadingDegrees => { Writable => 'real' },
|
1851
|
-
InitialViewPitchDegrees => { Writable => 'real' },
|
1852
|
-
InitialViewRollDegrees => { Writable => 'real' },
|
1853
|
-
Timestamp => {
|
1854
|
-
Name => 'TimeStamp',
|
1855
|
-
Groups => { 2 => 'Time' },
|
1856
|
-
Writable => 'integer',
|
1857
|
-
Shift => 'Time',
|
1858
|
-
ValueConv => 'ConvertUnixTime($val)', #(NC)
|
1859
|
-
ValueConvInv => 'GetUnixTime($val)',
|
1860
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
1861
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
1862
|
-
},
|
1863
|
-
FullPanoWidthPixels => { Writable => 'integer' },
|
1864
|
-
FullPanoHeightPixels => { Writable => 'integer' },
|
1865
|
-
CroppedAreaImageWidthPixels => { Writable => 'integer' },
|
1866
|
-
CroppedAreaImageHeightPixels=> { Writable => 'integer' },
|
1867
|
-
CroppedAreaLeftPixels => { Writable => 'integer' },
|
1868
|
-
CroppedAreaTopPixels => { Writable => 'integer' },
|
1869
|
-
);
|
1870
|
-
|
1871
|
-
# Google depthmap information (ref https://developers.google.com/depthmap-metadata/reference)
|
1872
|
-
%Image::ExifTool::XMP::GDepth = (
|
1873
|
-
GROUPS => { 0 => 'XMP', 1 => 'XMP-GDepth', 2 => 'Image' },
|
1874
|
-
NAMESPACE => 'GDepth',
|
1875
|
-
AVOID => 1, # (too many potential tag name conflicts)
|
1876
|
-
NOTES => q{
|
1877
|
-
Google depthmap information. See
|
1878
|
-
L<https://developers.google.com/depthmap-metadata/> for the specification.
|
1879
|
-
},
|
1880
|
-
WRITABLE => 'string', # (default to string-type tags)
|
1881
|
-
PRIORITY => 0,
|
1882
|
-
Format => {
|
1883
|
-
PrintConv => {
|
1884
|
-
RangeInverse => 'RangeInverse',
|
1885
|
-
RangeLinear => 'RangeLinear',
|
1886
|
-
},
|
1887
|
-
},
|
1888
|
-
Near => { Writable => 'real' },
|
1889
|
-
Far => { Writable => 'real' },
|
1890
|
-
Mime => { },
|
1891
|
-
Data => {
|
1892
|
-
Name => 'DepthImage',
|
1893
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1894
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1895
|
-
},
|
1896
|
-
Units => { },
|
1897
|
-
MeasureType => {
|
1898
|
-
PrintConv => {
|
1899
|
-
OpticalAxis => 'OpticalAxis',
|
1900
|
-
OpticalRay => 'OpticalRay',
|
1901
|
-
},
|
1902
|
-
},
|
1903
|
-
ConfidenceMime => { },
|
1904
|
-
Confidence => {
|
1905
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1906
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1907
|
-
},
|
1908
|
-
Manufacturer=> { },
|
1909
|
-
Model => { },
|
1910
|
-
Software => { },
|
1911
|
-
ImageWidth => { Writable => 'real' },
|
1912
|
-
ImageHeight => { Writable => 'real' },
|
1913
|
-
);
|
1914
|
-
|
1915
|
-
# Google focus namespace
|
1916
|
-
%Image::ExifTool::XMP::GFocus = (
|
1917
|
-
%xmpTableDefaults,
|
1918
|
-
GROUPS => { 1 => 'XMP-GFocus', 2 => 'Image' },
|
1919
|
-
NAMESPACE => 'GFocus',
|
1920
|
-
NOTES => 'Focus information found in Google depthmap images.',
|
1921
|
-
BlurAtInfinity => { Writable => 'real' },
|
1922
|
-
FocalDistance => { Writable => 'real' },
|
1923
|
-
FocalPointX => { Writable => 'real' },
|
1924
|
-
FocalPointY => { Writable => 'real' },
|
1925
|
-
);
|
1926
|
-
|
1927
|
-
# Google camera namespace (ref PH)
|
1928
|
-
%Image::ExifTool::XMP::GCamera = (
|
1929
|
-
%xmpTableDefaults,
|
1930
|
-
GROUPS => { 1 => 'XMP-GCamera', 2 => 'Camera' },
|
1931
|
-
NAMESPACE => 'GCamera',
|
1932
|
-
NOTES => 'Camera information found in Google panorama images.',
|
1933
|
-
BurstID => { },
|
1934
|
-
BurstPrimary => { },
|
1935
|
-
PortraitNote => { },
|
1936
|
-
PortraitRequest => {
|
1937
|
-
Notes => 'High Definition Render Pipeline (HDRP) data', #PH (guess)
|
1938
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1939
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1940
|
-
},
|
1941
|
-
PortraitVersion => { },
|
1942
|
-
SpecialTypeID => { List => 'Bag' },
|
1943
|
-
PortraitNote => { },
|
1944
|
-
DisableAutoCreation => { List => 'Bag' },
|
1945
|
-
DisableSuggestedAction => { List => 'Bag' }, #forum16147
|
1946
|
-
hdrp_makernote => {
|
1947
|
-
Name => 'HDRPMakerNote',
|
1948
|
-
# decoded data starts with the following bytes, but nothing yet is known about its contents:
|
1949
|
-
# 48 44 52 50 02 ef 64 35 6d 5e 70 1e 2c ea e3 4c [HDRP..d5m^p.,..L]
|
1950
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1951
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1952
|
-
},
|
1953
|
-
MicroVideo => { Writable => 'integer' },
|
1954
|
-
MicroVideoVersion => { Writable => 'integer' },
|
1955
|
-
MicroVideoOffset => { Writable => 'integer' },
|
1956
|
-
MicroVideoPresentationTimestampUs => { Writable => 'integer' },
|
1957
|
-
shot_log_data => { #forum14108
|
1958
|
-
Name => 'ShotLogData',
|
1959
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1960
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1961
|
-
},
|
1962
|
-
HdrPlusMakernote => {
|
1963
|
-
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1964
|
-
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1965
|
-
},
|
1966
|
-
MotionPhoto => { Writable => 'integer' },
|
1967
|
-
MotionPhotoVersion => { Writable => 'integer' },
|
1968
|
-
MotionPhotoPresentationTimestampUs => { Writable => 'integer' },
|
1969
|
-
);
|
1970
|
-
|
1971
|
-
# Google creations namespace (ref PH)
|
1972
|
-
%Image::ExifTool::XMP::GCreations = (
|
1973
|
-
%xmpTableDefaults,
|
1974
|
-
GROUPS => { 1 => 'XMP-GCreations', 2 => 'Camera' },
|
1975
|
-
NAMESPACE => 'GCreations',
|
1976
|
-
NOTES => 'Google creations tags.',
|
1977
|
-
CameraBurstID => { },
|
1978
|
-
Type => { Avoid => 1 },
|
1979
|
-
);
|
1980
|
-
|
1981
|
-
# Google depth-map Device namespace (ref 13)
|
1982
|
-
%Image::ExifTool::XMP::Device = (
|
1983
|
-
%xmpTableDefaults,
|
1984
|
-
GROUPS => { 1 => 'XMP-Device', 2 => 'Camera' },
|
1985
|
-
NAMESPACE => { Device => 'http://ns.google.com/photos/dd/1.0/device/' },
|
1986
|
-
NOTES => q{
|
1987
|
-
Google depth-map Device tags. See
|
1988
|
-
L<https://developer.android.com/training/camera2/Dynamic-depth-v1.0.pdf> for
|
1989
|
-
the specification.
|
1990
|
-
},
|
1991
|
-
Container => {
|
1992
|
-
Struct => {
|
1993
|
-
STRUCT_NAME => 'DeviceContainer',
|
1994
|
-
NAMESPACE => { Container => 'http://ns.google.com/photos/dd/1.0/container/' },
|
1995
|
-
Directory => {
|
1996
|
-
List => 'Seq',
|
1997
|
-
Struct => {
|
1998
|
-
STRUCT_NAME => 'DeviceDirectory',
|
1999
|
-
NAMESPACE => { Container => 'http://ns.google.com/photos/dd/1.0/container/' },
|
2000
|
-
Item => {
|
2001
|
-
Struct => {
|
2002
|
-
STRUCT_NAME => 'DeviceItem',
|
2003
|
-
NAMESPACE => { Item => 'http://ns.google.com/photos/dd/1.0/item/' },
|
2004
|
-
# use this as a key to process Google trailer
|
2005
|
-
Mime => { RawConv => '$$self{ProcessGoogleTrailer} = $val' },
|
2006
|
-
Length => { Writable => 'integer' },
|
2007
|
-
Padding => { Writable => 'integer' },
|
2008
|
-
DataURI => { },
|
2009
|
-
},
|
2010
|
-
},
|
2011
|
-
},
|
2012
|
-
}
|
2013
|
-
},
|
2014
|
-
},
|
2015
|
-
Profiles => {
|
2016
|
-
List => 'Seq',
|
2017
|
-
FlatName => '',
|
2018
|
-
Struct => {
|
2019
|
-
STRUCT_NAME => 'DeviceProfiles',
|
2020
|
-
NAMESPACE => { Device => 'http://ns.google.com/photos/dd/1.0/device/' },
|
2021
|
-
Profile => {
|
2022
|
-
Struct => {
|
2023
|
-
STRUCT_NAME => 'DeviceProfile',
|
2024
|
-
NAMESPACE => { Profile => 'http://ns.google.com/photos/dd/1.0/profile/' },
|
2025
|
-
CameraIndices => { List => 'Seq', Writable => 'integer' },
|
2026
|
-
Type => { },
|
2027
|
-
},
|
2028
|
-
},
|
2029
|
-
},
|
2030
|
-
},
|
2031
|
-
Cameras => {
|
2032
|
-
List => 'Seq',
|
2033
|
-
FlatName => '',
|
2034
|
-
Struct => {
|
2035
|
-
STRUCT_NAME => 'DeviceCameras',
|
2036
|
-
NAMESPACE => { Device => 'http://ns.google.com/photos/dd/1.0/device/' },
|
2037
|
-
Camera => {
|
2038
|
-
Struct => {
|
2039
|
-
STRUCT_NAME => 'DeviceCamera',
|
2040
|
-
NAMESPACE => { Camera => 'http://ns.google.com/photos/dd/1.0/camera/' },
|
2041
|
-
DepthMap => {
|
2042
|
-
Struct => {
|
2043
|
-
STRUCT_NAME => 'DeviceDepthMap',
|
2044
|
-
NAMESPACE => { DepthMap => 'http://ns.google.com/photos/dd/1.0/depthmap/' },
|
2045
|
-
ConfidenceURI => { },
|
2046
|
-
DepthURI => { },
|
2047
|
-
Far => { Writable => 'real' },
|
2048
|
-
Format => { },
|
2049
|
-
ItemSemantic=> { },
|
2050
|
-
MeasureType => { },
|
2051
|
-
Near => { Writable => 'real' },
|
2052
|
-
Units => { },
|
2053
|
-
Software => { },
|
2054
|
-
FocalTableEntryCount => { Writable => 'integer' },
|
2055
|
-
FocalTable => { }, # (base64)
|
2056
|
-
},
|
2057
|
-
},
|
2058
|
-
Image => {
|
2059
|
-
Struct => {
|
2060
|
-
STRUCT_NAME => 'DeviceImage',
|
2061
|
-
NAMESPACE => { Image => 'http://ns.google.com/photos/dd/1.0/image/' },
|
2062
|
-
ItemSemantic=> { },
|
2063
|
-
ItemURI => { },
|
2064
|
-
},
|
2065
|
-
},
|
2066
|
-
ImagingModel => {
|
2067
|
-
Struct => {
|
2068
|
-
STRUCT_NAME => 'DeviceImagingModel',
|
2069
|
-
NAMESPACE => { ImagingModel => 'http://ns.google.com/photos/dd/1.0/imagingmodel/' },
|
2070
|
-
Distortion => { }, # (base64)
|
2071
|
-
DistortionCount => { Writable => 'integer' },
|
2072
|
-
FocalLengthX => { Writable => 'real' },
|
2073
|
-
FocalLengthY => { Writable => 'real' },
|
2074
|
-
ImageHeight => { Writable => 'integer' },
|
2075
|
-
ImageWidth => { Writable => 'integer' },
|
2076
|
-
PixelAspectRatio=> { Writable => 'real' },
|
2077
|
-
PrincipalPointX => { Writable => 'real' },
|
2078
|
-
PrincipalPointY => { Writable => 'real' },
|
2079
|
-
Skew => { Writable => 'real' },
|
2080
|
-
},
|
2081
|
-
},
|
2082
|
-
PointCloud => {
|
2083
|
-
Struct => {
|
2084
|
-
STRUCT_NAME => 'DevicePointCloud',
|
2085
|
-
NAMESPACE => { PointCloud => 'http://ns.google.com/photos/dd/1.0/pointcloud/' },
|
2086
|
-
PointCloud => { Writable => 'integer' },
|
2087
|
-
Points => { },
|
2088
|
-
Metric => { Writable => 'boolean' },
|
2089
|
-
},
|
2090
|
-
},
|
2091
|
-
Pose => { Struct => \%sPose },
|
2092
|
-
LightEstimate => {
|
2093
|
-
Struct => {
|
2094
|
-
STRUCT_NAME => 'DeviceLightEstimate',
|
2095
|
-
NAMESPACE => { LightEstimate => 'http://ns.google.com/photos/dd/1.0/lightestimate/' },
|
2096
|
-
ColorCorrectionR => { Writable => 'real' },
|
2097
|
-
ColorCorrectionG => { Writable => 'real' },
|
2098
|
-
ColorCorrectionB => { Writable => 'real' },
|
2099
|
-
PixelIntensity => { Writable => 'real' },
|
2100
|
-
},
|
2101
|
-
},
|
2102
|
-
VendorInfo => { Struct => \%sVendorInfo },
|
2103
|
-
AppInfo => { Struct => \%sAppInfo },
|
2104
|
-
Trait => { },
|
2105
|
-
},
|
2106
|
-
},
|
2107
|
-
},
|
2108
|
-
},
|
2109
|
-
VendorInfo => { Struct => \%sVendorInfo },
|
2110
|
-
AppInfo => { Struct => \%sAppInfo },
|
2111
|
-
EarthPos => { Struct => \%sEarthPose },
|
2112
|
-
Pose => { Struct => \%sPose },
|
2113
|
-
Planes => {
|
2114
|
-
List => 'Seq',
|
2115
|
-
FlatName => '',
|
2116
|
-
Struct => {
|
2117
|
-
STRUCT_NAME => 'DevicePlanes',
|
2118
|
-
NAMESPACE => { Device => 'http://ns.google.com/photos/dd/1.0/device/' },
|
2119
|
-
Plane => {
|
2120
|
-
Struct => {
|
2121
|
-
STRUCT_NAME => 'DevicePlane',
|
2122
|
-
NAMESPACE => { Plane => 'http://ns.google.com/photos/dd/1.0/plane/' },
|
2123
|
-
Pose => { Struct => \%sPose },
|
2124
|
-
ExtentX => { Writable => 'real' },
|
2125
|
-
ExtentZ => { Writable => 'real' },
|
2126
|
-
BoundaryVertexCount => { Writable => 'integer' },
|
2127
|
-
Boundary => { },
|
2128
|
-
},
|
2129
|
-
},
|
2130
|
-
},
|
2131
|
-
},
|
2132
|
-
);
|
2133
|
-
|
2134
|
-
# Google container tags (ref https://developer.android.com/guide/topics/media/platform/hdr-image-format)
|
2135
|
-
# NOTE: The namespace prefix used by ExifTool is 'GContainer' instead of 'Container'
|
2136
|
-
# dueo to a conflict with Google's depth-map Device 'Container' namespace!
|
2137
|
-
# (see ../pics/GooglePixel8Pro.jpg sample image)
|
2138
|
-
%Image::ExifTool::XMP::GContainer = (
|
2139
|
-
%xmpTableDefaults,
|
2140
|
-
GROUPS => { 1 => 'XMP-GContainer', 2 => 'Image' },
|
2141
|
-
NAMESPACE => 'GContainer',
|
2142
|
-
NOTES => q{
|
2143
|
-
Google Container namespace. ExifTool uses the prefix 'GContainer' instead
|
2144
|
-
of 'Container' to avoid a conflict with the Google Device Container
|
2145
|
-
namespace.
|
2146
|
-
},
|
2147
|
-
Directory => {
|
2148
|
-
Name => 'ContainerDirectory',
|
2149
|
-
FlatName => 'Directory',
|
2150
|
-
List => 'Seq',
|
2151
|
-
Struct => {
|
2152
|
-
STRUCT_NAME => 'Directory',
|
2153
|
-
Item => {
|
2154
|
-
Namespace => 'GContainer',
|
2155
|
-
Struct => {
|
2156
|
-
STRUCT_NAME => 'Item',
|
2157
|
-
# (use 'GItem' to avoid conflict with Google Device Container Item)
|
2158
|
-
NAMESPACE => { GItem => 'http://ns.google.com/photos/1.0/container/item/'},
|
2159
|
-
Mime => { RawConv => '$$self{ProcessGoogleTrailer} = $val' },
|
2160
|
-
Semantic => { },
|
2161
|
-
Length => { Writable => 'integer' },
|
2162
|
-
Label => { },
|
2163
|
-
Padding => { Writable => 'integer' },
|
2164
|
-
URI => { },
|
2165
|
-
},
|
2166
|
-
},
|
2167
|
-
},
|
2168
|
-
},
|
2169
|
-
);
|
2170
|
-
|
2171
1690
|
# Getty Images namespace (ref PH)
|
2172
1691
|
%Image::ExifTool::XMP::GettyImages = (
|
2173
1692
|
%xmpTableDefaults,
|
@@ -2415,7 +1934,6 @@ sub Init_crd($)
|
|
2415
1934
|
}
|
2416
1935
|
}
|
2417
1936
|
|
2418
|
-
|
2419
1937
|
1; #end
|
2420
1938
|
|
2421
1939
|
__END__
|
@@ -258,7 +258,7 @@ my %iWorkType = (
|
|
258
258
|
# RAR v5 tags (ref 7, github#203)
|
259
259
|
%Image::ExifTool::ZIP::RAR5 = (
|
260
260
|
GROUPS => { 2 => 'Other' },
|
261
|
-
VARS => {
|
261
|
+
VARS => { ID_FMT => 'none' },
|
262
262
|
NOTES => 'These tags are extracted from RAR v5 and 7z archive files.',
|
263
263
|
FileVersion => { },
|
264
264
|
CompressedSize => { },
|
@@ -48,7 +48,7 @@ my %mimeType = (
|
|
48
48
|
%Image::ExifTool::iWork::Main = (
|
49
49
|
GROUPS => { 0 => 'XML', 1 => 'XML', 2 => 'Document' },
|
50
50
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
51
|
-
VARS => {
|
51
|
+
VARS => { ID_FMT => 'none' },
|
52
52
|
NOTES => q{
|
53
53
|
The Apple iWork '09 file format is a ZIP archive containing XML files
|
54
54
|
similar to the Office Open XML (OOXML) format. Metadata tags in iWork
|
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 $configFile @configFiles $noConfig);
|
31
31
|
|
32
|
-
$VERSION = '13.
|
32
|
+
$VERSION = '13.37';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -1259,7 +1259,7 @@ my %systemTagsNotes = (
|
|
1259
1259
|
# used to write the entire corresponding directory as a block.
|
1260
1260
|
%Image::ExifTool::Extra = (
|
1261
1261
|
GROUPS => { 0 => 'File', 1 => 'File', 2 => 'Image' },
|
1262
|
-
VARS => {
|
1262
|
+
VARS => { ID_FMT => 'none' }, # tag ID's aren't meaningful for these tags
|
1263
1263
|
WRITE_PROC => \&DummyWriteProc,
|
1264
1264
|
Error => {
|
1265
1265
|
Priority => 0,
|
@@ -2122,7 +2122,7 @@ my %systemTagsNotes = (
|
|
2122
2122
|
%Image::ExifTool::JPEG::SOF = (
|
2123
2123
|
GROUPS => { 0 => 'File', 1 => 'File', 2 => 'Image' },
|
2124
2124
|
NOTES => 'This information is extracted from the JPEG Start Of Frame segment.',
|
2125
|
-
VARS => {
|
2125
|
+
VARS => { ID_FMT => 'none' }, # tag ID's aren't meaningful for these tags
|
2126
2126
|
EncodingProcess => {
|
2127
2127
|
PrintHex => 1,
|
2128
2128
|
PrintConv => {
|
@@ -2261,7 +2261,7 @@ my %systemTagsNotes = (
|
|
2261
2261
|
GROUPS => { 0 => 'Composite', 1 => 'Composite' },
|
2262
2262
|
TABLE_NAME => 'Image::ExifTool::Composite',
|
2263
2263
|
SHORT_NAME => 'Composite',
|
2264
|
-
VARS => {
|
2264
|
+
VARS => { ID_FMT => 'none' }, # want empty tagID's for Composite tags
|
2265
2265
|
WRITE_PROC => \&DummyWriteProc,
|
2266
2266
|
);
|
2267
2267
|
|
@@ -2825,6 +2825,8 @@ sub ExtractInfo($;@)
|
|
2825
2825
|
$isDir = 1;
|
2826
2826
|
} else {
|
2827
2827
|
$self->Error('Error opening file');
|
2828
|
+
# continue to process alt files if necessary
|
2829
|
+
$self->DoneExtract() if $$self{ALT_EXIFTOOL};
|
2828
2830
|
}
|
2829
2831
|
} else {
|
2830
2832
|
$self->Error('No file specified');
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -2298,14 +2298,14 @@ identical group names unless the family string begins with a colon.
|
|
2298
2298
|
The group family numbers are currently available:
|
2299
2299
|
|
2300
2300
|
0) Information Type (eg. EXIF, XMP, IPTC)
|
2301
|
-
1) Specific Location (eg. IFD0, XMP-dc)
|
2301
|
+
1) Specific Location (eg. IFD0, ExifIFD, XMP-dc)
|
2302
2302
|
2) Category (eg. Author, Time)
|
2303
2303
|
3) Document Number (eg. Main, Doc1, Doc3-2)
|
2304
|
-
4) Instance Number (eg. Copy1, Copy2, Copy3
|
2304
|
+
4) Instance Number (eg. Copy1, Copy2, Copy3)
|
2305
2305
|
5) Metadata Path (eg. JPEG-APP1-IFD0-ExifIFD)
|
2306
2306
|
6) EXIF/TIFF Format (eg. int8u, int32u, undef, string)
|
2307
2307
|
7) Tag ID (eg. ID-271, ID-rights, ID-a9aut)
|
2308
|
-
8) Alternate File Number (eg. File1, File2, File3
|
2308
|
+
8) Alternate File Number (eg. File1, File2, File3)
|
2309
2309
|
|
2310
2310
|
Families 0 and 1 are based on the file structure, and are similar except
|
2311
2311
|
that family 1 is more specific and sub-divides some groups to give more
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
8
8
|
- Sergey Morozov
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: exiftool
|
@@ -164,6 +163,7 @@ files:
|
|
164
163
|
- bin/lib/Image/ExifTool/Geolocation.pm
|
165
164
|
- bin/lib/Image/ExifTool/Geotag.pm
|
166
165
|
- bin/lib/Image/ExifTool/GoPro.pm
|
166
|
+
- bin/lib/Image/ExifTool/Google.pm
|
167
167
|
- bin/lib/Image/ExifTool/H264.pm
|
168
168
|
- bin/lib/Image/ExifTool/HP.pm
|
169
169
|
- bin/lib/Image/ExifTool/HTML.pm
|
@@ -325,7 +325,6 @@ licenses:
|
|
325
325
|
- MIT
|
326
326
|
metadata:
|
327
327
|
rubygems_mfa_required: 'true'
|
328
|
-
post_install_message:
|
329
328
|
rdoc_options: []
|
330
329
|
require_paths:
|
331
330
|
- lib
|
@@ -340,8 +339,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
340
339
|
- !ruby/object:Gem::Version
|
341
340
|
version: '0'
|
342
341
|
requirements: []
|
343
|
-
rubygems_version: 3.
|
344
|
-
signing_key:
|
342
|
+
rubygems_version: 3.6.9
|
345
343
|
specification_version: 4
|
346
344
|
summary: Vendored version of exiftool
|
347
345
|
test_files: []
|