exiftool-vendored.pl 12.60.0 → 12.65.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 (59) hide show
  1. package/bin/Changes +110 -0
  2. package/bin/LICENSE +674 -0
  3. package/bin/MANIFEST +11 -0
  4. package/bin/META.json +5 -3
  5. package/bin/META.yml +5 -3
  6. package/bin/Makefile.PL +7 -1
  7. package/bin/README +50 -45
  8. package/bin/config_files/guano.config +161 -0
  9. package/bin/exiftool +163 -103
  10. package/bin/lib/Image/ExifTool/7Z.pm +793 -0
  11. package/bin/lib/Image/ExifTool/Apple.pm +14 -7
  12. package/bin/lib/Image/ExifTool/BMP.pm +0 -1
  13. package/bin/lib/Image/ExifTool/BigTIFF.pm +8 -1
  14. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
  15. package/bin/lib/Image/ExifTool/Canon.pm +4 -1
  16. package/bin/lib/Image/ExifTool/CanonRaw.pm +4 -4
  17. package/bin/lib/Image/ExifTool/CanonVRD.pm +4 -1
  18. package/bin/lib/Image/ExifTool/Exif.pm +31 -14
  19. package/bin/lib/Image/ExifTool/FlashPix.pm +9 -2
  20. package/bin/lib/Image/ExifTool/FujiFilm.pm +3 -3
  21. package/bin/lib/Image/ExifTool/GPS.pm +5 -2
  22. package/bin/lib/Image/ExifTool/Geotag.pm +4 -1
  23. package/bin/lib/Image/ExifTool/Jpeg2000.pm +243 -20
  24. package/bin/lib/Image/ExifTool/Lang/fr.pm +1467 -202
  25. package/bin/lib/Image/ExifTool/MPF.pm +2 -1
  26. package/bin/lib/Image/ExifTool/Matroska.pm +16 -1
  27. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  28. package/bin/lib/Image/ExifTool/Nikon.pm +941 -33
  29. package/bin/lib/Image/ExifTool/NikonCustom.pm +874 -63
  30. package/bin/lib/Image/ExifTool/PDF.pm +39 -12
  31. package/bin/lib/Image/ExifTool/PLIST.pm +8 -1
  32. package/bin/lib/Image/ExifTool/PNG.pm +6 -6
  33. package/bin/lib/Image/ExifTool/PhaseOne.pm +5 -5
  34. package/bin/lib/Image/ExifTool/QuickTime.pm +96 -32
  35. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +68 -37
  36. package/bin/lib/Image/ExifTool/README +2 -2
  37. package/bin/lib/Image/ExifTool/RIFF.pm +11 -9
  38. package/bin/lib/Image/ExifTool/Samsung.pm +227 -227
  39. package/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
  40. package/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  41. package/bin/lib/Image/ExifTool/Sony.pm +237 -32
  42. package/bin/lib/Image/ExifTool/TagLookup.pm +4762 -4629
  43. package/bin/lib/Image/ExifTool/TagNames.pod +737 -20
  44. package/bin/lib/Image/ExifTool/Validate.pm +17 -1
  45. package/bin/lib/Image/ExifTool/WPG.pm +296 -0
  46. package/bin/lib/Image/ExifTool/WriteExif.pl +9 -7
  47. package/bin/lib/Image/ExifTool/WritePDF.pl +7 -8
  48. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
  49. package/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
  50. package/bin/lib/Image/ExifTool/Writer.pl +47 -16
  51. package/bin/lib/Image/ExifTool/XMP.pm +30 -6
  52. package/bin/lib/Image/ExifTool/XMP2.pl +32 -0
  53. package/bin/lib/Image/ExifTool/XMPStruct.pl +96 -28
  54. package/bin/lib/Image/ExifTool/ZIP.pm +159 -41
  55. package/bin/lib/Image/ExifTool.pm +280 -164
  56. package/bin/lib/Image/ExifTool.pod +117 -52
  57. package/bin/perl-Image-ExifTool.spec +44 -43
  58. package/bin/pp_build_exe.args +8 -4
  59. package/package.json +3 -3
package/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
@@ -176,6 +177,7 @@ html/TagNames/Torrent.html
176
177
  html/TagNames/Unknown.html
177
178
  html/TagNames/VCard.html
178
179
  html/TagNames/Vorbis.html
180
+ html/TagNames/WPG.html
179
181
  html/TagNames/WTV.html
180
182
  html/TagNames/XMP.html
181
183
  html/TagNames/ZIP.html
@@ -210,6 +212,7 @@ lib/File/RandomAccess.pm
210
212
  lib/File/RandomAccess.pod
211
213
  lib/Image/ExifTool.pm
212
214
  lib/Image/ExifTool.pod
215
+ lib/Image/ExifTool/7Z.pm
213
216
  lib/Image/ExifTool/AES.pm
214
217
  lib/Image/ExifTool/AFCP.pm
215
218
  lib/Image/ExifTool/AIFF.pm
@@ -416,6 +419,7 @@ lib/Image/ExifTool/Unknown.pm
416
419
  lib/Image/ExifTool/VCard.pm
417
420
  lib/Image/ExifTool/Validate.pm
418
421
  lib/Image/ExifTool/Vorbis.pm
422
+ lib/Image/ExifTool/WPG.pm
419
423
  lib/Image/ExifTool/WTV.pm
420
424
  lib/Image/ExifTool/WriteCanonRaw.pl
421
425
  lib/Image/ExifTool/WriteExif.pl
@@ -631,6 +635,7 @@ t/JVC_3.out
631
635
  t/JXL.t
632
636
  t/JXL_2.out
633
637
  t/JXL_3.out
638
+ t/JXL_4.out
634
639
  t/Jpeg2000.t
635
640
  t/Jpeg2000_2.out
636
641
  t/Jpeg2000_3.out
@@ -856,6 +861,8 @@ t/VCard_2.out
856
861
  t/VCard_3.out
857
862
  t/Vorbis.t
858
863
  t/Vorbis_2.out
864
+ t/WPG.t
865
+ t/WPG_2.out
859
866
  t/WTV.t
860
867
  t/WTV_2.out
861
868
  t/Writer.t
@@ -965,6 +972,7 @@ t/ZIP_4.out
965
972
  t/ZIP_5.out
966
973
  t/ZIP_6.out
967
974
  t/ZIP_7.out
975
+ t/ZIP_8.out
968
976
  t/ZISRAW.t
969
977
  t/ZISRAW_2.out
970
978
  t/images/AFCP.jpg
@@ -1047,6 +1055,7 @@ t/images/JSON.json
1047
1055
  t/images/JVC.jpg
1048
1056
  t/images/JVC2.jpg
1049
1057
  t/images/JXL.jxl
1058
+ t/images/JXL2.jxl
1050
1059
  t/images/Jpeg2000.j2c
1051
1060
  t/images/Jpeg2000.jp2
1052
1061
  t/images/Kodak.jpg
@@ -1132,6 +1141,7 @@ t/images/Unknown.jpg
1132
1141
  t/images/VCard.ics
1133
1142
  t/images/VCard.vcf
1134
1143
  t/images/Vorbis.ogg
1144
+ t/images/WPG.wpg
1135
1145
  t/images/WTV.wtv
1136
1146
  t/images/Writer.jpg
1137
1147
  t/images/XMP.inx
@@ -1148,6 +1158,7 @@ t/images/XMP7.xmp
1148
1158
  t/images/XMP8.xmp
1149
1159
  t/images/XMP9.xmp
1150
1160
  t/images/ZIP.gz
1161
+ t/images/ZIP.rar
1151
1162
  t/images/ZIP.zip
1152
1163
  t/images/ZISRAW.czi
1153
1164
  t/images/iWork.numbers
package/bin/META.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "Phil Harvey (philharvey66 at gmail.com)"
5
5
  ],
6
6
  "dynamic_config" : 0,
7
- "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.150010",
7
+ "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.133380",
8
8
  "license" : [
9
9
  "perl_5"
10
10
  ],
@@ -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,6 +50,5 @@
47
50
  }
48
51
  },
49
52
  "release_status" : "stable",
50
- "version" : "12.60",
51
- "x_serialization_backend" : "JSON::PP version 4.02"
53
+ "version" : "12.65"
52
54
  }
package/bin/META.yml CHANGED
@@ -7,7 +7,7 @@ build_requires:
7
7
  configure_requires:
8
8
  ExtUtils::MakeMaker: 0
9
9
  dynamic_config: 0
10
- generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.150010'
10
+ generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.133380'
11
11
  license: perl
12
12
  meta-spec:
13
13
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,14 +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.60
32
- x_serialization_backend: 'JSON::PP version 4.02'
34
+ version: 12.65
package/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
  },
package/bin/README CHANGED
@@ -14,48 +14,49 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 360 r/w | DPX r | ITC r | NRW r/w | RAM r
18
- 3FR r | DR4 r/w/c | J2C r | NUMBERS r | RAR r
19
- 3G2 r/w | DSS r | JNG r/w | O r | RAW r/w
20
- 3GP r/w | DV r | JP2 r/w | ODP r | RIFF r
21
- A r | DVB r/w | JPEG r/w | ODS r | RSRC r
22
- AA r | DVR-MS r | JSON r | ODT r | RTF r
23
- AAE r | DYLIB r | JXL r | OFR r | RW2 r/w
24
- AAX r/w | EIP r | K25 r | OGG r | RWL r/w
25
- ACR r | EPS r/w | KDC r | OGV r | RWZ r
26
- AFM r | EPUB r | KEY r | ONP r | RM r
27
- AI r/w | ERF r/w | LA r | OPUS r | SEQ r
28
- AIFF r | EXE r | LFP r | ORF r/w | SKETCH r
29
- APE r | EXIF r/w/c | LIF r | ORI r/w | SO r
30
- ARQ r/w | EXR r | LNK r | OTF r | SR2 r/w
31
- ARW r/w | EXV r/w/c | LRV r/w | PAC r | SRF r
32
- ASF r | F4A/V r/w | M2TS r | PAGES r | SRW r/w
33
- AVI r | FFF r/w | M4A/V r/w | PBM r/w | SVG r
34
- AVIF r/w | FITS r | MACOS r | PCD r | SWF r
35
- AZW r | FLA r | MAX r | PCX r | THM r/w
36
- BMP r | FLAC r | MEF r/w | PDB r | TIFF r/w
37
- BPG r | FLIF r/w | MIE r/w/c | PDF r/w | TORRENT r
38
- BTF r | FLV r | MIFF r | PEF r/w | TTC r
39
- CHM r | FPF r | MKA r | PFA r | TTF r
40
- COS r | FPX r | MKS r | PFB r | TXT r
41
- CR2 r/w | GIF r/w | MKV r | PFM r | VCF r
42
- CR3 r/w | GPR r/w | MNG r/w | PGF r | VNT r
43
- CRM r/w | GZ r | MOBI r | PGM r/w | VRD r/w/c
44
- CRW r/w | HDP r/w | MODD r | PLIST r | VSD r
45
- CS1 r/w | HDR r | MOI r | PICT r | WAV r
46
- CSV r | HEIC r/w | MOS r/w | PMP r | WDP r/w
47
- CUR r | HEIF r/w | MOV r/w | PNG r/w | WEBP r/w
48
- CZI r | HTML r | MP3 r | PPM r/w | WEBM r
49
- DCM r | ICC r/w/c | MP4 r/w | PPT r | WMA r
50
- DCP r/w | ICO r | MPC r | PPTX r | WMV r
51
- DCR r | ICS r | MPG r | PS r/w | WTV r
52
- DFONT r | IDML r | MPO r/w | PSB r/w | WV r
53
- DIVX r | IIQ r/w | MQV r/w | PSD r/w | X3F r/w
54
- DJVU r | IND r/w | MRC r | PSP r | XCF r
55
- DLL r | INSP r/w | MRW r/w | QTIF r/w | XLS r
56
- DNG r/w | INSV r | MXF r | R3D r | XLSX r
57
- DOC r | INX r | NEF r/w | RA r | XMP r/w/c
58
- DOCX r | ISO r | NKSC r/w | RAF r/w | ZIP 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 |
59
60
 
60
61
  Meta Information
61
62
  ----------------------+----------------------+---------------------
@@ -107,8 +108,8 @@ your home directory, then you would type the following commands in a
107
108
  terminal window to extract and run ExifTool:
108
109
 
109
110
  cd ~/Desktop
110
- gzip -dc Image-ExifTool-12.60.tar.gz | tar -xf -
111
- cd Image-ExifTool-12.60
111
+ gzip -dc Image-ExifTool-12.65.tar.gz | tar -xf -
112
+ cd Image-ExifTool-12.65
112
113
  ./exiftool t/images/ExifTool.jpg
113
114
 
114
115
  Note: These commands extract meta information from one of the test images.
@@ -157,8 +158,11 @@ for calculating digest values and providing other features listed below:
157
158
  Win32::API (for proper handling of Windows file times)
158
159
  Win32::FindFile (for Windows Unicode directory support, app only)
159
160
  Win32API::File (for Windows Unicode file names and file times)
161
+ Compress::Raw::Lzma (for reading encoded 7z files)
160
162
  IO::Compress::RawDeflate (for writing FLIF images)
161
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)
162
166
 
163
167
  COPYRIGHT AND LICENSE
164
168
 
@@ -201,10 +205,11 @@ distribution package:
201
205
  fotoware.config - Definitions for writing Fotoware XMP tags
202
206
  frameCount.config - Extract FrameCount from MP4 videos
203
207
  gps2utm.config - Generate UTM coordinate tags from GPS info
204
- gpsdatetime.config - Make GPSDateTime from CreateDate+SampleTime
208
+ guano.config - Decode individual tags from Guano metadata
205
209
  nksc.config - Decode tags in Nikon ViewNX NKSC files
206
210
  photoshop_paths.config - For extracting or copying Photoshop paths
207
211
  picasa_faces.config - Convert from Picasa to MWG/MP face regions
212
+ pix4d.config - Definitions for writing Pix4D XMP tags
208
213
  rotate_regions.config - Rotate MWG and MP region tags
209
214
  tiff_version.config - Determine the version of a TIFF file
210
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