exiftool_vendored 12.62.0 → 12.64.0

Sign up to get free protection for your applications and to get access to all the features.
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