exiftool_vendored 12.62.0 → 12.64.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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +50 -1
  3. data/bin/MANIFEST +4 -0
  4. data/bin/META.json +4 -1
  5. data/bin/META.yml +4 -1
  6. data/bin/Makefile.PL +7 -1
  7. data/bin/README +50 -46
  8. data/bin/config_files/guano.config +161 -0
  9. data/bin/exiftool +88 -62
  10. data/bin/lib/Image/ExifTool/7Z.pm +793 -0
  11. data/bin/lib/Image/ExifTool/Apple.pm +6 -3
  12. data/bin/lib/Image/ExifTool/Canon.pm +1 -0
  13. data/bin/lib/Image/ExifTool/CanonRaw.pm +4 -4
  14. data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -1
  15. data/bin/lib/Image/ExifTool/Exif.pm +31 -14
  16. data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -3
  17. data/bin/lib/Image/ExifTool/GPS.pm +5 -2
  18. data/bin/lib/Image/ExifTool/Geotag.pm +4 -1
  19. data/bin/lib/Image/ExifTool/Jpeg2000.pm +226 -28
  20. data/bin/lib/Image/ExifTool/Lang/fr.pm +1467 -202
  21. data/bin/lib/Image/ExifTool/MPF.pm +2 -1
  22. data/bin/lib/Image/ExifTool/Matroska.pm +16 -1
  23. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  24. data/bin/lib/Image/ExifTool/Nikon.pm +419 -5
  25. data/bin/lib/Image/ExifTool/NikonCustom.pm +13 -3
  26. data/bin/lib/Image/ExifTool/PDF.pm +9 -1
  27. data/bin/lib/Image/ExifTool/PLIST.pm +8 -1
  28. data/bin/lib/Image/ExifTool/PNG.pm +6 -6
  29. data/bin/lib/Image/ExifTool/PhaseOne.pm +5 -5
  30. data/bin/lib/Image/ExifTool/QuickTime.pm +74 -21
  31. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +20 -19
  32. data/bin/lib/Image/ExifTool/README +2 -2
  33. data/bin/lib/Image/ExifTool/RIFF.pm +11 -9
  34. data/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
  35. data/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  36. data/bin/lib/Image/ExifTool/Sony.pm +103 -8
  37. data/bin/lib/Image/ExifTool/TagLookup.pm +4738 -4630
  38. data/bin/lib/Image/ExifTool/TagNames.pod +249 -5
  39. data/bin/lib/Image/ExifTool/Validate.pm +17 -1
  40. data/bin/lib/Image/ExifTool/WriteExif.pl +9 -7
  41. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
  42. data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
  43. data/bin/lib/Image/ExifTool/Writer.pl +28 -10
  44. data/bin/lib/Image/ExifTool/XMP.pm +14 -2
  45. data/bin/lib/Image/ExifTool/XMP2.pl +32 -0
  46. data/bin/lib/Image/ExifTool/XMPStruct.pl +96 -28
  47. data/bin/lib/Image/ExifTool/ZIP.pm +5 -5
  48. data/bin/lib/Image/ExifTool.pm +67 -39
  49. data/bin/lib/Image/ExifTool.pod +83 -52
  50. data/bin/perl-Image-ExifTool.spec +44 -44
  51. data/lib/exiftool_vendored/version.rb +1 -1
  52. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9425d3689f85ae893c11f1e1ebb63d8392eefe696b6ff685a35536da9b2b79c
4
- data.tar.gz: a343f14b8c717420458456579562c12d399c0687865a6e54ea5df8945b096e66
3
+ metadata.gz: dd7bba924fc8d29d342ec53188b3331ed2e8e9a28143eb169464ad1f65d8e404
4
+ data.tar.gz: 17f3c5d49583b5f614f70c861e2277aab6fdcce3b28203749bc77517150dcb55
5
5
  SHA512:
6
- metadata.gz: 559fb2be9a0a2c441ff8e12fd13dd077825c71655a9e99407f602e2ecaae8f997cb9475b3bb5a79dddec1897a9f22ef3c9d9506b8df885da5ee4dfc9baad1a7d
7
- data.tar.gz: bcd3a86f5375904081c86ef8c4904bf6cf5283d4f67519df0d05711b456ab63721dd0412fe6c46d7c2774919e0f4b13a00e8eb745253937c252a86fac423182e
6
+ metadata.gz: 0bfff20448186ed9958ecc67b4aaee95e67563b8bdadbb374d1d7ae1bd2f9300f5c80ba4ac4bd8efc0a1b13b8a89be0425afa2d3a4357b7d00c2250b6a69b6d3
7
+ data.tar.gz: 87adab8506730664feccc82d398351791b4ff17732b7f090883dcae3607f74bf2c1049ada6107140a0052cc734cbe1e91044c9c025e9968384294eda5f3f1355
data/bin/Changes CHANGED
@@ -7,11 +7,60 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.60. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ June 28, 2023 - Version 12.64
11
+
12
+ - Added a new Sony LensType (thanks Jos Roost)
13
+ - Added config_files/guano.config to the distribution (thanks StarGeek)
14
+ - Added support for Garmin Low-resolution Video (GLV) files
15
+ - Added JUMBF to the list of deletable groups
16
+ - Added (untested) read support for spherical video tags in Matroska videos
17
+ - Decode a number of new Nikon Z9 tags (thanks Warren Hatch)
18
+ - Decode AmbisonicAudio tags in spherical MP4 vidoes
19
+ - Decode another Apple tag
20
+ - Improved French translations (thanks Philippe Bonnaure of GraphicConverter)
21
+ - Patched to allow writing QuickTime-based videos where the audio/video sample
22
+ description comes after the sample pointers
23
+ - Fixed parsing of GPS from Insta360 videos to properly skip void fixes
24
+ - Fixed problem where Apple iPhone 14 images produced invalid XML in -X output
25
+ when using -struct option
26
+ - API Changes:
27
+ - Added StructFormat option to allow JSON-format serialized structures
28
+ - Added NoDups option to eliminate duplicate items from queued values when
29
+ writing List-type tags
30
+
31
+ June 8, 2023 - Version 12.63
32
+
33
+ - Added ability to read/write/create Brotli-compressed metadata in JXL images
34
+ (requires IO::Compress::Brotli)
35
+ - Added partial support for Exif 3.0 specification:
36
+ - Added new EXIF tags
37
+ - Added MPF Original Preservation Image type
38
+ - Support for reading 'utf8' values (but still write only as 'string')
39
+ - Added support for Adobe XMP-hdrgm (HDR Gain Map) tags
40
+ - Added support for reading 7z files (thanks Amir Gooran, github #205) (but
41
+ currently this doesn't work for the Windows .exe version because I haven't
42
+ been able to install Compress::Raw::Lzma for ActivePerl)
43
+ - Added XMP-panorama tags
44
+ - Added warning if -csv is used with -p
45
+ - Added warning if trying to geotag from a UTF-16 track log
46
+ - Decode ImageWidth/Height from JXL images using partial codestreams
47
+ - Decode more Sony tags for some newer models (thanks Jos Roost)
48
+ - Extract GainMapImage (hrgm box) from JXL files
49
+ - Extract Guano information from WAV files
50
+ - Enhanced ImageDataMD5 feature and renamed to ImageDataHash (with
51
+ ImageDataMD5 alias for backward compatibility)
52
+ - Changed RARVersion tag name to FileVersion
53
+ - Fixed bug introduced in 12.46 which could cause a hang when reading a
54
+ corrupted RIFF-based file
55
+ - Fixed writing of Composition:GPSPosition when -n is used
56
+ - API Changes:
57
+ - Added ImageHashType option
58
+
10
59
  May 3, 2023 - Version 12.62
11
60
 
12
61
  - Added basic read support for WPG images
13
62
  - Added ImageDataMD5 support for HEIC images
14
- - Added support for RAR version 5.0 compressed files (thanks Amir Gooran)
63
+ - Added support for RAR version 5.0 files (thanks Amir Gooran, github #203)
15
64
  - Added a few new XMP-aux tags (thanks John Ellis)
16
65
  - Made Composite tags available for use in -fileNUM argument
17
66
  - Better handling of FlashPix VT_EMPTY value
data/bin/MANIFEST CHANGED
@@ -25,6 +25,7 @@ config_files/example.config
25
25
  config_files/fotoware.config
26
26
  config_files/frameCount.config
27
27
  config_files/gps2utm.config
28
+ config_files/guano.config
28
29
  config_files/nksc.config
29
30
  config_files/photoshop_paths.config
30
31
  config_files/picasa_faces.config
@@ -211,6 +212,7 @@ lib/File/RandomAccess.pm
211
212
  lib/File/RandomAccess.pod
212
213
  lib/Image/ExifTool.pm
213
214
  lib/Image/ExifTool.pod
215
+ lib/Image/ExifTool/7Z.pm
214
216
  lib/Image/ExifTool/AES.pm
215
217
  lib/Image/ExifTool/AFCP.pm
216
218
  lib/Image/ExifTool/AIFF.pm
@@ -633,6 +635,7 @@ t/JVC_3.out
633
635
  t/JXL.t
634
636
  t/JXL_2.out
635
637
  t/JXL_3.out
638
+ t/JXL_4.out
636
639
  t/Jpeg2000.t
637
640
  t/Jpeg2000_2.out
638
641
  t/Jpeg2000_3.out
@@ -1052,6 +1055,7 @@ t/images/JSON.json
1052
1055
  t/images/JVC.jpg
1053
1056
  t/images/JVC2.jpg
1054
1057
  t/images/JXL.jxl
1058
+ t/images/JXL2.jxl
1055
1059
  t/images/Jpeg2000.j2c
1056
1060
  t/images/Jpeg2000.jp2
1057
1061
  t/images/Kodak.jpg
data/bin/META.json CHANGED
@@ -33,10 +33,13 @@
33
33
  "runtime" : {
34
34
  "recommends" : {
35
35
  "Archive::Zip" : "0",
36
+ "Compress::Raw::Lzma" : "0",
36
37
  "Compress::Zlib" : "0",
37
38
  "Digest::MD5" : "0",
38
39
  "Digest::SHA" : "0",
40
+ "IO::Compress::Brotli" : "0",
39
41
  "IO::Compress::RawDeflate" : "0",
42
+ "IO::Uncompress::Brotli" : "0",
40
43
  "IO::Uncompress::RawInflate" : "0",
41
44
  "POSIX::strptime" : "0",
42
45
  "Time::HiRes" : "0"
@@ -47,5 +50,5 @@
47
50
  }
48
51
  },
49
52
  "release_status" : "stable",
50
- "version" : "12.62"
53
+ "version" : "12.64"
51
54
  }
data/bin/META.yml CHANGED
@@ -19,13 +19,16 @@ no_index:
19
19
  - inc
20
20
  recommends:
21
21
  Archive::Zip: 0
22
+ Compress::Raw::Lzma: 0
22
23
  Compress::Zlib: 0
23
24
  Digest::MD5: 0
24
25
  Digest::SHA: 0
26
+ IO::Compress::Brotli: 0
25
27
  IO::Compress::RawDeflate: 0
28
+ IO::Uncompress::Brotli: 0
26
29
  IO::Uncompress::RawInflate: 0
27
30
  POSIX::strptime: 0
28
31
  Time::HiRes: 0
29
32
  requires:
30
33
  perl: 5.004
31
- version: 12.62
34
+ version: 12.64
data/bin/Makefile.PL CHANGED
@@ -17,8 +17,11 @@ WriteMakefile(
17
17
  " Digest::SHA: 0\n" .
18
18
  " Time::HiRes: 0\n" .
19
19
  " POSIX::strptime: 0\n" .
20
+ " Compress::Raw::Lzma: 0\n" .
20
21
  " IO::Compress::RawDeflate: 0\n" .
21
- " IO::Uncompress::RawInflate: 0\n" ,
22
+ " IO::Uncompress::RawInflate: 0\n" .
23
+ " IO::Compress::Brotli: 0\n" .
24
+ " IO::Uncompress::Brotli: 0\n",
22
25
  # (not worth recommending -- only for column alignment of some languages)
23
26
  # " Unicode::LineBreak: 0\n",
24
27
  # (not worth recommending -- only for Rawzor files)
@@ -33,8 +36,11 @@ WriteMakefile(
33
36
  'Digest::SHA' => 0,
34
37
  'Time::HiRes' => 0,
35
38
  'POSIX::strptime' => 0,
39
+ 'Compress::Raw::Lzma' => 0,
36
40
  'IO::Compress::RawDeflate' => 0,
37
41
  'IO::Uncompress::RawInflate' => 0,
42
+ 'IO::Compress::Brotli' => 0,
43
+ 'IO::Uncompress::Brotli' => 0,
38
44
  # 'Unicode::LineBreak' => 0,
39
45
  # 'IO::Compress::Bzip2' => 0,
40
46
  },
data/bin/README CHANGED
@@ -14,49 +14,49 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
18
- 3FR r | DSS r | JP2 r/w | ODS r | RTF r
19
- 3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
20
- 3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
21
- A r | DVR-MS r | JXL r | OGG r | RWZ r
22
- AA r | DYLIB r | K25 r | OGV r | RM r
23
- AAE r | EIP r | KDC r | ONP r | SEQ r
24
- AAX r/w | EPS r/w | KEY r | OPUS r | SKETCH r
25
- ACR r | EPUB r | LA r | ORF r/w | SO r
26
- AFM r | ERF r/w | LFP r | ORI r/w | SR2 r/w
27
- AI r/w | EXE r | LIF r | OTF r | SRF r
28
- AIFF r | EXIF r/w/c | LNK r | PAC r | SRW r/w
29
- APE r | EXR r | LRV r/w | PAGES r | SVG r
30
- ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SWF r
31
- ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | THM r/w
32
- ASF r | FFF r/w | MACOS r | PCX r | TIFF r/w
33
- AVI r | FITS r | MAX r | PDB r | TORRENT r
34
- AVIF r/w | FLA r | MEF r/w | PDF r/w | TTC r
35
- AZW r | FLAC r | MIE r/w/c | PEF r/w | TTF r
36
- BMP r | FLIF r/w | MIFF r | PFA r | TXT r
37
- BPG r | FLV r | MKA r | PFB r | VCF r
38
- BTF r | FPF r | MKS r | PFM r | VNT r
39
- CHM r | FPX r | MKV r | PGF r | VRD r/w/c
40
- COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
41
- CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
42
- CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
43
- CRM r/w | HDP r/w | MOI r | PMP r | WEBP r/w
44
- CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
45
- CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
46
- CSV r | HEIF r/w | MP3 r | PPT r | WMV r
47
- CUR r | HTML r | MP4 r/w | PPTX r | WPG r
48
- CZI r | ICC r/w/c | MPC r | PS r/w | WTV r
49
- DCM r | ICO r | MPG r | PSB r/w | WV r
50
- DCP r/w | ICS r | MPO r/w | PSD r/w | X3F r/w
51
- DCR r | IDML r | MQV r/w | PSP r | XCF r
52
- DFONT r | IIQ r/w | MRC r | QTIF r/w | XLS r
53
- DIVX r | IND r/w | MRW r/w | R3D r | XLSX r
54
- DJVU r | INSP r/w | MXF r | RA r | XMP r/w/c
55
- DLL r | INSV r | NEF r/w | RAF r/w | ZIP r
56
- DNG r/w | INX r | NKSC r/w | RAM r |
57
- DOC r | ISO r | NRW r/w | RAR r |
58
- DOCX r | ITC r | NUMBERS r | RAW r/w |
59
- DPX r | J2C r | O r | RIFF r |
17
+ 360 r/w | DPX r | ITC r | NUMBERS r | RAW r/w
18
+ 3FR r | DR4 r/w/c | J2C r | O r | RIFF r
19
+ 3G2 r/w | DSS r | JNG r/w | ODP r | RSRC r
20
+ 3GP r/w | DV r | JP2 r/w | ODS r | RTF r
21
+ 7Z r | DVB r/w | JPEG r/w | ODT r | RW2 r/w
22
+ A r | DVR-MS r | JSON r | OFR r | RWL r/w
23
+ AA r | DYLIB r | JXL r | OGG r | RWZ r
24
+ AAE r | EIP r | K25 r | OGV r | RM r
25
+ AAX r/w | EPS r/w | KDC r | ONP r | SEQ r
26
+ ACR r | EPUB r | KEY r | OPUS r | SKETCH r
27
+ AFM r | ERF r/w | LA r | ORF r/w | SO r
28
+ AI r/w | EXE r | LFP r | ORI r/w | SR2 r/w
29
+ AIFF r | EXIF r/w/c | LIF r | OTF r | SRF r
30
+ APE r | EXR r | LNK r | PAC r | SRW r/w
31
+ ARQ r/w | EXV r/w/c | LRV r/w | PAGES r | SVG r
32
+ ARW r/w | F4A/V r/w | M2TS r | PBM r/w | SWF r
33
+ ASF r | FFF r/w | M4A/V r/w | PCD r | THM r/w
34
+ AVI r | FITS r | MACOS r | PCX r | TIFF r/w
35
+ AVIF r/w | FLA r | MAX r | PDB r | TORRENT r
36
+ AZW r | FLAC r | MEF r/w | PDF r/w | TTC r
37
+ BMP r | FLIF r/w | MIE r/w/c | PEF r/w | TTF r
38
+ BPG r | FLV r | MIFF r | PFA r | TXT r
39
+ BTF r | FPF r | MKA r | PFB r | VCF r
40
+ CHM r | FPX r | MKS r | PFM r | VNT r
41
+ COS r | GIF r/w | MKV r | PGF r | VRD r/w/c
42
+ CR2 r/w | GLV r/w | MNG r/w | PGM r/w | VSD r
43
+ CR3 r/w | GPR r/w | MOBI r | PLIST r | WAV r
44
+ CRM r/w | GZ r | MODD r | PICT r | WDP r/w
45
+ CRW r/w | HDP r/w | MOI r | PMP r | WEBP r/w
46
+ CS1 r/w | HDR r | MOS r/w | PNG r/w | WEBM r
47
+ CSV r | HEIC r/w | MOV r/w | PPM r/w | WMA r
48
+ CUR r | HEIF r/w | MP3 r | PPT r | WMV r
49
+ CZI r | HTML r | MP4 r/w | PPTX r | WPG r
50
+ DCM r | ICC r/w/c | MPC r | PS r/w | WTV r
51
+ DCP r/w | ICO r | MPG r | PSB r/w | WV r
52
+ DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
53
+ DFONT r | IDML r | MQV r/w | PSP r | XCF r
54
+ DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
55
+ DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
56
+ DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
57
+ DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
58
+ DOC r | INX r | NKSC r/w | RAM r |
59
+ DOCX r | ISO r | NRW r/w | RAR r |
60
60
 
61
61
  Meta Information
62
62
  ----------------------+----------------------+---------------------
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
108
108
  terminal window to extract and run ExifTool:
109
109
 
110
110
  cd ~/Desktop
111
- gzip -dc Image-ExifTool-12.62.tar.gz | tar -xf -
112
- cd Image-ExifTool-12.62
111
+ gzip -dc Image-ExifTool-12.64.tar.gz | tar -xf -
112
+ cd Image-ExifTool-12.64
113
113
  ./exiftool t/images/ExifTool.jpg
114
114
 
115
115
  Note: These commands extract meta information from one of the test images.
@@ -158,8 +158,11 @@ for calculating digest values and providing other features listed below:
158
158
  Win32::API (for proper handling of Windows file times)
159
159
  Win32::FindFile (for Windows Unicode directory support, app only)
160
160
  Win32API::File (for Windows Unicode file names and file times)
161
+ Compress::Raw::Lzma (for reading encoded 7z files)
161
162
  IO::Compress::RawDeflate (for writing FLIF images)
162
163
  IO::Uncompress::RawInflate (for reading FLIF images)
164
+ IO::Compress::Brotli (for writing compressed JXL metadata)
165
+ IO::Uncompress::Brotli (for reading compressed JXL metadata)
163
166
 
164
167
  COPYRIGHT AND LICENSE
165
168
 
@@ -202,10 +205,11 @@ distribution package:
202
205
  fotoware.config - Definitions for writing Fotoware XMP tags
203
206
  frameCount.config - Extract FrameCount from MP4 videos
204
207
  gps2utm.config - Generate UTM coordinate tags from GPS info
205
- gpsdatetime.config - Make GPSDateTime from CreateDate+SampleTime
208
+ guano.config - Decode individual tags from Guano metadata
206
209
  nksc.config - Decode tags in Nikon ViewNX NKSC files
207
210
  photoshop_paths.config - For extracting or copying Photoshop paths
208
211
  picasa_faces.config - Convert from Picasa to MWG/MP face regions
212
+ pix4d.config - Definitions for writing Pix4D XMP tags
209
213
  rotate_regions.config - Rotate MWG and MP region tags
210
214
  tiff_version.config - Determine the version of a TIFF file
211
215
  time_zone.config - Calculate time zone from EXIF tags
@@ -0,0 +1,161 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: Guano.config
3
+ #
4
+ # Description: User-defined Composite tag definitions to extract individual entries
5
+ # from the RIFF:Guano text block.
6
+ #
7
+ # Requires exiftool version 12.63+
8
+ #
9
+ # See GUANO - Grand Unified Acoustic Notation Ontology
10
+ # https://github.com/riggsd/guano-spec/blob/master/guano_specification.md
11
+ #
12
+ # The code itself is simply a regex match. If other entries are needed,
13
+ # then all that needs to be done is to copy/paste one of the blocks, change
14
+ # the name and edit the regex
15
+ #
16
+ # Examples:
17
+ # This will list the Make and Model from the Guano text block, if they exist
18
+ # exiftool -config Guano.config -GuanoModel -GuanoMake /path/to/files/
19
+ #
20
+ # Lists all the Guano entries in the Guano text block
21
+ # exiftool -config Guano.config -Guano* /path/to/files/
22
+ #
23
+ # Revisions: 2023/06/09 - Bryan K. Williams (aka StarGeek) Created
24
+ #------------------------------------------------------------------------------
25
+
26
+ %Image::ExifTool::UserDefined = (
27
+ 'Image::ExifTool::Composite' => {
28
+ GuanoVersion => {
29
+ Require => 'Guano',
30
+ ValueConv => '$val =~ /GUANO\|Version:\s+(.*)/m ? $1 : undef',
31
+ },
32
+ GuanoMake => {
33
+ Require => 'Guano',
34
+ ValueConv => '$val =~ /Make:\s+(.*)/m ? $1 : undef',
35
+ },
36
+ GuanoModel => {
37
+ Require => 'Guano',
38
+ ValueConv => '$val =~ /Model:\s+(.*)/m ? $1 : undef',
39
+ },
40
+ GuanoFirmwareVersion => {
41
+ Require => 'Guano',
42
+ ValueConv => '$val =~ /Firmware Version:\s+(.*)/m ? $1 : undef',
43
+ },
44
+ GuanoSerial => {
45
+ Require => 'Guano',
46
+ ValueConv => '$val =~ /Serial:\s+(.*)/m ? $1 : undef',
47
+ },
48
+ GuanoTimestamp => {
49
+ Require => 'Guano',
50
+ Groups => { 2 => 'Time' },
51
+ ValueConv => '$val =~ /Timestamp:\s+(.*)/m ? $1 : undef',
52
+ PrintConv => '$self->ConvertDateTime($val)',
53
+ },
54
+ GuanoLocPosition => {
55
+ Require => 'Guano',
56
+ Groups => { 2 => 'Location' },
57
+ ValueConv => '$val =~ /Loc Position:\s+(.*)/m ? $1 : undef',
58
+ PrintConv => q{
59
+ require Image::ExifTool::GPS;
60
+ my @v = split ' ', $val;
61
+ return Image::ExifTool::GPS::ToDMS($self, $v[0], 1, "N") . ', ' .
62
+ Image::ExifTool::GPS::ToDMS($self, $v[1], 1, "E");
63
+ },
64
+ },
65
+ GuanoLocElevation => {
66
+ Require => 'Guano',
67
+ Groups => { 2 => 'Location' },
68
+ ValueConv => '$val =~ /Loc Elevation:\s+(.*)/m ? $1 : undef',
69
+ },
70
+ GuanoTemperatureInt => {
71
+ Require => 'Guano',
72
+ ValueConv => '$val =~ /Temperature Int:\s+(.*)/m ? $1 : undef',
73
+ },
74
+ GuanoFilterHP => {
75
+ Require => 'Guano',
76
+ ValueConv => '$val =~ /^Filter HP:\s+(.*)/m ? $1 : undef',
77
+ },
78
+ GuanoAnabatBatteryVoltage => {
79
+ Require => 'Guano',
80
+ ValueConv => '$val =~ /Anabat\|Battery voltage:\s+(.*)/m ? $1 : undef',
81
+ },
82
+ GuanoAnabatMicrophone => {
83
+ Require => 'Guano',
84
+ ValueConv => '$val =~ /Anabat\|Microphone:\s+(.*)/m ? $1 : undef',
85
+ },
86
+ GuanoAnabatActivation => {
87
+ Require => 'Guano',
88
+ ValueConv => '$val =~ /Anabat\|Activation:\s+(.*)/m ? $1 : undef',
89
+ },
90
+ GuanoAnabatZcSensitivity => {
91
+ Require => 'Guano',
92
+ ValueConv => '$val =~ /Anabat\|Zc Sensitivity:\s+(.*)/m ? $1 : undef',
93
+ },
94
+ GuanoAnabatTriggerMinFreq => {
95
+ Require => 'Guano',
96
+ ValueConv => '$val =~ /Anabat\|Trigger min freq:\s+(.*)/m ? $1 : undef',
97
+ },
98
+ GuanoAnabatTriggerMaxFreq => {
99
+ Require => 'Guano',
100
+ ValueConv => '$val =~ /Anabat\|Trigger max freq:\s+(.*)/m ? $1 : undef',
101
+ },
102
+ GuanoAnabatMinEvent => {
103
+ Require => 'Guano',
104
+ ValueConv => '$val =~ /Anabat\|Min event:\s+(.*)/m ? $1 : undef',
105
+ },
106
+ GuanoAnabatTriggerWindow => {
107
+ Require => 'Guano',
108
+ ValueConv => '$val =~ /Anabat\|Trigger Window:\s+(.*)/m ? $1 : undef',
109
+ },
110
+ GuanoAnabatMaximumFileDuration => {
111
+ Require => 'Guano',
112
+ ValueConv => '$val =~ /Anabat\|Maximum File Duration:\s+(.*)/m ? $1 : undef',
113
+ },
114
+ GuanoSBVersion => {
115
+ Require => 'Guano',
116
+ ValueConv => '$val =~ /SB\|Version:\s+(.*)/m ? $1 : undef',
117
+ },
118
+ GuanoSBSpeciesAutoID => {
119
+ Require => 'Guano',
120
+ ValueConv => '$val =~ /SB\|Species Auto ID:\s+(.*)/m ? $1 : undef',
121
+ },
122
+ GuanoSpeciesAutoID => {
123
+ Require => 'Guano',
124
+ ValueConv => '$val =~ /Species Auto ID:\s+(.*)/m ? $1 : undef',
125
+ },
126
+ GuanoSpeciesManualID => {
127
+ Require => 'Guano',
128
+ ValueConv => '$val =~ /Species Manual ID:\s+(.*)/m ? $1 : undef',
129
+ },
130
+ GuanoSampleRate => {
131
+ Require => 'Guano',
132
+ ValueConv => '$val =~ /Samplerate:\s+(.*)/m ? $1 : undef',
133
+ },
134
+ GuanoLength => {
135
+ Require => 'Guano',
136
+ ValueConv => '$val =~ /Length:\s+(.*)/m ? $1 : undef',
137
+ },
138
+ GuanoTE => {
139
+ Require => 'Guano',
140
+ ValueConv => '$val =~ /TE:\s+(.*)/m ? $1 : undef',
141
+ },
142
+ GuanoSBFilterHP => {
143
+ Require => 'Guano',
144
+ ValueConv => '$val =~ /SB\|Filter HP:\s+(.*)/m ? $1 : undef',
145
+ },
146
+ GuanoNote => {
147
+ Require => 'Guano',
148
+ ValueConv => '$val =~ /Note:\s+(.*)/m ? $1 : undef',
149
+ },
150
+ GuanoSBRegion => {
151
+ Require => 'Guano',
152
+ ValueConv => '$val =~ /SB\|Region:\s+(.*)/m ? $1 : undef',
153
+ },
154
+ GuanoSBClassifier => {
155
+ Require => 'Guano',
156
+ ValueConv => '$val =~ /SB\|Classifier:\s+(.*)/m ? $1 : undef',
157
+ },
158
+ },
159
+ );
160
+ #------------------------------------------------------------------------------
161
+ 1; #end