exiftool_vendored 13.36.0 → 13.38.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 +39 -1
- data/bin/MANIFEST +9 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +47 -47
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +65 -63
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +16 -9
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +59 -5
- 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 +5 -5
- data/bin/lib/Image/ExifTool/DSF.pm +138 -0
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +5 -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 +5 -4
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- data/bin/lib/Image/ExifTool/Geolocation.pm +3 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +13 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +11 -8
- data/bin/lib/Image/ExifTool/Google.pm +814 -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 +14 -13
- 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 +34 -25
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- 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 +4 -4
- 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 +2 -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 +18 -7
- 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 +2 -0
- data/bin/lib/Image/ExifTool/README +7 -6
- 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 +22 -7
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5753 -5696
- data/bin/lib/Image/ExifTool/TagNames.pod +707 -518
- 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/WavPack.pm +144 -0
- data/bin/lib/Image/ExifTool/XMP.pm +43 -37
- 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 +42 -27
- data/bin/lib/Image/ExifTool.pod +60 -59
- data/bin/perl-Image-ExifTool.spec +46 -46
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -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 => 'HDRPlus (HDRP) data', #NealKrawetz
|
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
|