exiftool_vendored 9.37.0 → 9.41.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +6 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Changes +74 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/MANIFEST +14 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/META.yml +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Makefile.PL +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/README +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/gps2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptcCore.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/pdf2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2gps.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2pdf.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/ExifTool_config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/convert_regions.config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/exiftool +266 -226
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx_wpt.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/kml.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ExifTool.html +79 -54
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/MIE1.1-20070121.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/Shift.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AFCP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APP12.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ASF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Apple.html +11 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/BMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Canon.html +138 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonVRD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Casio.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Composite.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DICOM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DNG.html +0 -0
- data/bin/Image-ExifTool-9.41/html/TagNames/DPX.html +190 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DV.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DarwinCore.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DjVu.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Extra.html +13 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLAC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLIR.html +166 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Flash.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FlashPix.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Font.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FotoStation.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FujiFilm.html +11 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GPS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GeoTiff.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/H264.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ICC_Profile.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ID3.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/IPTC.html +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ITC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JFIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JPEG.html +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JVC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Jpeg2000.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Kodak.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/KyoceraRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/LNK.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Leaf.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/M2TS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MNG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPEG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MWG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MXF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Matroska.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Microsoft.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Minolta.html +30 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MinoltaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Nikon.html +81 -60
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCapture.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OOXML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ogg.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Olympus.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OpenEXR.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PDF.html +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PGF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PICT.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PLIST.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PNG.html +25 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PSP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Panasonic.html +51 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PanasonicRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Pentax.html +23 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhaseOne.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoCD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoMechanic.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Photoshop.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PostScript.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PrintIM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Qualcomm.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/QuickTime.html +404 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RIFF.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RSRC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RTF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Radiance.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Rawzor.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Real.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Reconyx.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ricoh.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Samsung.html +27 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sanyo.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Scalado.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Shortcuts.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sigma.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SigmaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sony.html +491 -121
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SonyIDC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Stim.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Theora.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Torrent.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Unknown.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Vorbis.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/XMP.html +824 -175
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ZIP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/iWork.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/index.html +7 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ancient_history.html +201 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/canon_raw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/commentary.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/config.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/data_members.html +9 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/exiftool_pod.html +92 -71
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/faq.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/filename.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/geotag.html +13 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/history.html +82 -201
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/htmldump.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/idiosyncracies.html +4 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/index.html +46 -35
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/install.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/metafiles.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/overview.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/standards.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/struct.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/under.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/verbose.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/writing.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pm +387 -331
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pod +101 -81
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AES.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AFCP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APE.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APP12.pm +21 -21
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ASF.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Apple.pm +31 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BMP.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BZZ.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BigTIFF.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BuildTagLookup.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Canon.pm +126 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonCustom.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonRaw.pm +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonVRD.pm +75 -75
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CaptureOne.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Casio.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset.pm +13 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DICOM.pm +56 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DNG.pm +85 -85
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/DPX.pm +151 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DV.pm +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DarwinCore.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DjVu.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/EXE.pm +47 -47
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Exif.pm +126 -116
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLAC.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLIR.pm +282 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Fixup.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Flash.pm +41 -41
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FlashPix.pm +97 -97
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Font.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FotoStation.pm +21 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FujiFilm.pm +40 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GE.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIF.pm +32 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIMP.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GeoTiff.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Geotag.pm +69 -66
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/H264.pm +42 -42
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HP.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HTML.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HtmlDump.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ICC_Profile.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ID3.pm +84 -84
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/IPTC.pm +38 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ITC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Import.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/InDesign.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEG.pm +10 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEGDigest.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JVC.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Jpeg2000.pm +50 -58
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Kodak.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/KyoceraRaw.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/LNK.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/cs.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/de.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_ca.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_gb.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/es.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fi.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/it.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ja.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ko.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/nl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/pl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ru.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/sv.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/tr.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_cn.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_tw.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Leaf.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/M2TS.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIE.pm +95 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIEUnits.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MNG.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPEG.pm +28 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPF.pm +22 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MWG.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MXF.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MakerNotes.pm +61 -59
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Matroska.pm +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Microsoft.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Minolta.pm +50 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MinoltaRaw.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Nikon.pm +80 -63
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCapture.pm +29 -29
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCustom.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OOXML.pm +20 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ogg.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Olympus.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OpenEXR.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PDF.pm +126 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PGF.pm +7 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PICT.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PLIST.pm +39 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PNG.pm +141 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PPM.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PSP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Panasonic.pm +82 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PanasonicRaw.pm +40 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Pentax.pm +86 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhaseOne.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoCD.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoMechanic.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Photoshop.pm +23 -23
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PostScript.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PrintIM.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Qualcomm.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/QuickTime.pm +528 -219
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/README +5 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RIFF.pm +40 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RSRC.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RTF.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Radiance.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Rawzor.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Real.pm +43 -43
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Reconyx.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ricoh.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Samsung.pm +41 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sanyo.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Scalado.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shift.pl +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shortcuts.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sigma.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SigmaRaw.pm +56 -56
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sony.pm +450 -166
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SonyIDC.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Stim.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagInfoXML.pm +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagLookup.pm +1707 -1468
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagNames.pod +568 -102
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Theora.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Torrent.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Unknown.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Vorbis.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteCanonRaw.pl +51 -51
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteExif.pl +273 -273
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteIPTC.pl +44 -44
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePDF.pl +45 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePNG.pl +86 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePhotoshop.pl +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePostScript.pl +47 -47
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/WriteQuickTime.pl +344 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteXMP.pl +112 -112
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Writer.pl +428 -360
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP.pm +195 -104
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP2.pl +1 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMPStruct.pl +53 -52
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ZIP.pm +50 -50
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/iWork.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/perl-Image-ExifTool.spec +31 -31
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_4.out +5 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_2.out +4 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/DPX.t +28 -0
- data/bin/Image-ExifTool-9.41/t/DPX_2.out +35 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag.t +18 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_8.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Geotag_9.out +7 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_1.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG.t +31 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_4.out +0 -0
- data/bin/Image-ExifTool-9.41/t/PNG_5.out +17 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime.t +54 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_2.out +10 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_3.out +10 -8
- data/bin/Image-ExifTool-9.41/t/QuickTime_4.out +16 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime_5.out +12 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/TestLib.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer.t +53 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_33.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_35.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_38.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_42.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_43.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_44.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_45.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_46.out +8 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_47.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_48.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_50.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_51.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Writer_52.out +22 -0
- data/bin/Image-ExifTool-9.41/t/Writer_53.out +33 -0
- data/bin/Image-ExifTool-9.41/t/Writer_54.out +2 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AFCP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AIFF.aif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.ape +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.mpc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ASF.wmv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BMP.bmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BigTIFF.btf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon1DmkIII.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.cr2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.crw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonVRD.vrd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CaptureOne.eip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CasioQVCI.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DICOM.dcm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DNG.dng +0 -0
- data/bin/Image-ExifTool-9.41/t/images/DPX.dpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DV.dv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DjVu.djvu +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.elf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.exe +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.macho +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExtendedXMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.flac +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.fpf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.flv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.swf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FlashPix.ppt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.afm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.dfont +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfa +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfb +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.ttf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FotoStation.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.raf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GE.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIF.gif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIMP.xcf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GPS.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GeoTiff.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.gpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.igc +0 -0
- data/bin/Image-ExifTool-9.41/t/images/Geotag.kml +55 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag2.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/IPTC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ITC.itc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/InDesign.indd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.j2c +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.jp2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Kodak.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/KyoceraRaw.raw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/LNK.lnk +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/M2TS.mts +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIE.mie +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIFF.miff +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MP3.mp3 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MWG.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MXF.mxf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Matroska.mkv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.mrw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.nef +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD2Hs.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD70.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OOXML.docx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OlympusE1.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenDoc.ods +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenEXR.exr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF2.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PGF.pgf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PICT.pict +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-bin.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-xml.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PNG.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PPM.ppm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PSP.psp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.rw2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoCD.pcd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoMechanic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Photoshop.psd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PostScript.eps +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.m4a +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.mov +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.wav +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.webp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RTF.rtf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Radiance.hdr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ra +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ram +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.rm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sanyo.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/SigmaDP2.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.pmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Torrent.torrent +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Unknown.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Vorbis.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Writer.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.inx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.svg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP2.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP3.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP4.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP5.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.gz +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.zip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/iWork.numbers +0 -0
- data/lib/exiftool_vendored.rb +11 -3
- data/lib/exiftool_vendored/version.rb +1 -1
- data/lib/exiftool_vendored/version_extractor.rb +5 -7
- metadata +942 -886
- data/bin/Image-ExifTool-9.37/t/QuickTime.t +0 -31
@@ -8,42 +8,51 @@
|
|
8
8
|
# 09/22/2006 - P. Harvey Added M4A support
|
9
9
|
# 07/27/2010 - P. Harvey Updated to 2010-05-03 QuickTime spec
|
10
10
|
#
|
11
|
-
# References:
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
11
|
+
# References:
|
12
|
+
#
|
13
|
+
# 1) http://developer.apple.com/mac/library/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html
|
14
|
+
# 2) http://search.cpan.org/dist/MP4-Info-1.04/
|
15
|
+
# 3) http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt
|
16
|
+
# 4) http://wiki.multimedia.cx/index.php?title=Apple_QuickTime
|
17
|
+
# 5) ISO 14496-12 (http://read.pudn.com/downloads64/ebook/226547/ISO_base_media_file_format.pdf)
|
18
|
+
# 6) ISO 14496-16 (http://www.iec-normen.de/previewpdf/info_isoiec14496-16%7Bed2.0%7Den.pdf)
|
19
|
+
# 7) http://atomicparsley.sourceforge.net/mpeg-4files.html
|
20
|
+
# 8) http://wiki.multimedia.cx/index.php?title=QuickTime_container
|
21
|
+
# 9) http://www.adobe.com/devnet/xmp/pdfs/XMPSpecificationPart3.pdf (Oct 2008)
|
22
|
+
# 10) http://code.google.com/p/mp4v2/wiki/iTunesMetadata
|
23
|
+
# 11) http://www.canieti.com.mx/assets/files/1011/IEC_100_1384_DC.pdf
|
24
|
+
# 12) QuickTime file format specification 2010-05-03
|
25
|
+
# 13) http://www.adobe.com/devnet/flv/pdf/video_file_format_spec_v10.pdf
|
26
|
+
# 14) http://standards.iso.org/ittf/PubliclyAvailableStandards/c051533_ISO_IEC_14496-12_2008.zip
|
27
|
+
# 15) http://getid3.sourceforge.net/source/module.audio-video.quicktime.phps
|
28
|
+
# 16) http://qtra.apple.com/atoms.html
|
29
|
+
# 17) http://www.etsi.org/deliver/etsi_ts/126200_126299/126244/10.01.00_60/ts_126244v100100p.pdf
|
30
|
+
# 18) https://github.com/appsec-labs/iNalyzer/blob/master/scinfo.m
|
31
|
+
# 19) http://nah6.com/~itsme/cvs-xdadevtools/iphone/tools/decodesinf.pl
|
32
|
+
# 20) https://developer.apple.com/legacy/library/documentation/quicktime/reference/QT7-1_Update_Reference/QT7-1_Update_Reference.pdf
|
28
33
|
#------------------------------------------------------------------------------
|
29
34
|
|
30
35
|
package Image::ExifTool::QuickTime;
|
31
36
|
|
32
37
|
use strict;
|
33
|
-
use vars qw($VERSION);
|
38
|
+
use vars qw($VERSION $AUTOLOAD);
|
34
39
|
use Image::ExifTool qw(:DataAccess :Utils);
|
35
40
|
use Image::ExifTool::Exif;
|
36
41
|
|
37
|
-
$VERSION = '1.
|
42
|
+
$VERSION = '1.72';
|
38
43
|
|
39
44
|
sub FixWrongFormat($);
|
40
45
|
sub ProcessMOV($$;$);
|
41
46
|
sub ProcessKeys($$$);
|
42
47
|
sub ProcessMetaData($$$);
|
43
48
|
sub ProcessEncodingParams($$$);
|
49
|
+
sub ProcessHybrid($$$);
|
50
|
+
sub ProcessRights($$$);
|
44
51
|
sub ConvertISO6709($);
|
45
52
|
sub PrintGPSCoordinates($);
|
46
53
|
sub UnpackLang($);
|
54
|
+
sub WriteQuickTime($$$);
|
55
|
+
sub WriteMOV($$);
|
47
56
|
|
48
57
|
# MIME types for all entries in the ftypLookup with file extensions
|
49
58
|
# (defaults to 'video/mp4' if not found in this lookup)
|
@@ -167,9 +176,15 @@ my %timeInfo = (
|
|
167
176
|
$self->WarnOnce('Patched incorrect time zero for QuickTime date/time tag',1) if $val;
|
168
177
|
return $val;
|
169
178
|
},
|
179
|
+
Shift => 'Time',
|
180
|
+
Writable => 1,
|
181
|
+
Permanent => 1,
|
182
|
+
DelValue => 0,
|
170
183
|
# Note: This value will be in UTC if generated by a system that is aware of the time zone
|
171
184
|
ValueConv => 'ConvertUnixTime($val, $self->Options("QuickTimeUTC"))',
|
185
|
+
ValueConvInv => 'GetUnixTime($val) + (66 * 365 + 17) * 24 * 3600',
|
172
186
|
PrintConv => '$self->ConvertDateTime($val)',
|
187
|
+
PrintConvInv => '$self->InverseDateTime($val)',
|
173
188
|
# (can't put Groups here because they aren't constant!)
|
174
189
|
);
|
175
190
|
# information for duration tags
|
@@ -259,6 +274,7 @@ my %graphicsMode = (
|
|
259
274
|
# QuickTime atoms
|
260
275
|
%Image::ExifTool::QuickTime::Main = (
|
261
276
|
PROCESS_PROC => \&ProcessMOV,
|
277
|
+
WRITE_PROC => \&WriteQuickTime,
|
262
278
|
GROUPS => { 2 => 'Video' },
|
263
279
|
NOTES => q{
|
264
280
|
The QuickTime format is used for many different types of audio, video and
|
@@ -267,6 +283,9 @@ my %graphicsMode = (
|
|
267
283
|
proprietary information written by many camera models. Tags with a question
|
268
284
|
mark after their name are not extracted unless the Unknown option is set.
|
269
285
|
|
286
|
+
ExifTool has the ability to write/create XMP, and edit date/time tags in
|
287
|
+
QuickTime format files.
|
288
|
+
|
270
289
|
According to the specification, many QuickTime date/time tags should be
|
271
290
|
stored as UTC. Unfortunately, digital cameras often store local time values
|
272
291
|
instead (presumably because they don't know the time zone). For this
|
@@ -274,7 +293,7 @@ my %graphicsMode = (
|
|
274
293
|
However, if the QuickTimeUTC option is set via the API or the ExifTool
|
275
294
|
configuration file, then ExifTool will assume these values are properly
|
276
295
|
stored as UTC, and will convert them to local time when extracting.
|
277
|
-
|
296
|
+
|
278
297
|
See
|
279
298
|
L<http://developer.apple.com/mac/library/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html>
|
280
299
|
for the official specification.
|
@@ -332,6 +351,7 @@ my %graphicsMode = (
|
|
332
351
|
uuid => [
|
333
352
|
{ #9 (MP4 files)
|
334
353
|
Name => 'UUID-XMP',
|
354
|
+
# *** this is where ExifTool writes XMP in MP4 videos (as per XMP spec) ***
|
335
355
|
Condition => '$$valPt=~/^\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac/',
|
336
356
|
SubDirectory => {
|
337
357
|
TagTable => 'Image::ExifTool::XMP::Main',
|
@@ -366,8 +386,8 @@ my %graphicsMode = (
|
|
366
386
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::HTC' },
|
367
387
|
},
|
368
388
|
udta => {
|
369
|
-
Name => '
|
370
|
-
SubDirectory => { TagTable => 'Image::ExifTool::
|
389
|
+
Name => 'UserData',
|
390
|
+
SubDirectory => { TagTable => 'Image::ExifTool::FLIR::UserData' },
|
371
391
|
},
|
372
392
|
);
|
373
393
|
|
@@ -391,7 +411,7 @@ my %graphicsMode = (
|
|
391
411
|
Name => 'CompatibleBrands',
|
392
412
|
Format => 'undef[$size-8]',
|
393
413
|
# ignore any entry with a null, and return others as a list
|
394
|
-
ValueConv => 'my @a=($val=~/.{4}/sg); @a=grep(!/\0/,@a); \@a',
|
414
|
+
ValueConv => 'my @a=($val=~/.{4}/sg); @a=grep(!/\0/,@a); \@a',
|
395
415
|
},
|
396
416
|
);
|
397
417
|
|
@@ -428,7 +448,8 @@ my %graphicsMode = (
|
|
428
448
|
|
429
449
|
# image description data block
|
430
450
|
%Image::ExifTool::QuickTime::ImageDesc = (
|
431
|
-
PROCESS_PROC => \&
|
451
|
+
PROCESS_PROC => \&ProcessHybrid,
|
452
|
+
VARS => { ID_LABEL => 'ID/Index' },
|
432
453
|
GROUPS => { 2 => 'Image' },
|
433
454
|
FORMAT => 'int16u',
|
434
455
|
2 => {
|
@@ -487,11 +508,75 @@ my %graphicsMode = (
|
|
487
508
|
},
|
488
509
|
},
|
489
510
|
41 => 'BitDepth',
|
511
|
+
#
|
512
|
+
# Observed offsets for child atoms of various CompressorID types:
|
513
|
+
#
|
514
|
+
# CompressorID Offset Child atoms
|
515
|
+
# ----------- ------ ----------------
|
516
|
+
# avc1 86 avcC, btrt, colr, pasp, fiel, clap
|
517
|
+
# mp4v 86 esds, pasp
|
518
|
+
# s263 86 d263
|
519
|
+
#
|
520
|
+
btrt => {
|
521
|
+
Name => 'BitrateInfo',
|
522
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Bitrate' },
|
523
|
+
},
|
524
|
+
# Reference for fiel, colr, pasp, clap:
|
525
|
+
# https://developer.apple.com/library/mac/technotes/tn2162/_index.html#//apple_ref/doc/uid/DTS40013070-CH1-TNTAG9
|
526
|
+
fiel => {
|
527
|
+
Name => 'VideoFieldOrder',
|
528
|
+
ValueConv => 'join(" ", unpack("C*",$val))',
|
529
|
+
PrintConv => [{
|
530
|
+
1 => 'Progressive',
|
531
|
+
2 => '2:1 Interlaced',
|
532
|
+
}],
|
533
|
+
},
|
534
|
+
colr => {
|
535
|
+
Name => 'ColorRepresentation',
|
536
|
+
ValueConv => 'join(" ", substr($val,0,4), unpack("x4n*",$val))',
|
537
|
+
},
|
538
|
+
pasp => {
|
539
|
+
Name => 'PixelAspectRatio',
|
540
|
+
ValueConv => 'join(":", unpack("N*",$val))',
|
541
|
+
},
|
542
|
+
clap => {
|
543
|
+
Name => 'CleanAperture',
|
544
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::CleanAperture' },
|
545
|
+
},
|
546
|
+
# avcC - AVC configuration (ref http://thompsonng.blogspot.ca/2010/11/mp4-file-format-part-2.html)
|
547
|
+
# esds - elementary stream descriptor
|
548
|
+
# d263
|
549
|
+
gama => { Name => 'Gamma', Format => 'fixed32u' },
|
550
|
+
# mjqt - default quantization table for MJPEG
|
551
|
+
# mjht - default Huffman table for MJPEG
|
552
|
+
);
|
553
|
+
|
554
|
+
# 'btrt' atom information (ref http://lists.freedesktop.org/archives/gstreamer-commits/2011-October/054459.html)
|
555
|
+
%Image::ExifTool::QuickTime::Bitrate = (
|
556
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
557
|
+
GROUPS => { 2 => 'Video' },
|
558
|
+
FORMAT => 'int32u',
|
559
|
+
PRIORITY => 0, # often filled with zeros
|
560
|
+
0 => 'BufferSize',
|
561
|
+
1 => 'MaxBitrate',
|
562
|
+
2 => 'AverageBitrate',
|
563
|
+
);
|
564
|
+
|
565
|
+
# 'clap' atom information (ref https://developer.apple.com/library/mac/technotes/tn2162/_index.html#//apple_ref/doc/uid/DTS40013070-CH1-TNTAG9)
|
566
|
+
%Image::ExifTool::QuickTime::CleanAperture = (
|
567
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
568
|
+
GROUPS => { 2 => 'Video' },
|
569
|
+
FORMAT => 'rational64u',
|
570
|
+
0 => 'CleanApertureWidth',
|
571
|
+
1 => 'CleanApertureHeight',
|
572
|
+
2 => 'CleanApertureOffsetX',
|
573
|
+
3 => 'CleanApertureOffsetY',
|
490
574
|
);
|
491
575
|
|
492
576
|
# preview data block
|
493
577
|
%Image::ExifTool::QuickTime::Preview = (
|
494
578
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
579
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
495
580
|
GROUPS => { 2 => 'Image' },
|
496
581
|
FORMAT => 'int16u',
|
497
582
|
0 => {
|
@@ -511,6 +596,7 @@ my %graphicsMode = (
|
|
511
596
|
# movie atoms
|
512
597
|
%Image::ExifTool::QuickTime::Movie = (
|
513
598
|
PROCESS_PROC => \&ProcessMOV,
|
599
|
+
WRITE_PROC => \&WriteQuickTime,
|
514
600
|
GROUPS => { 2 => 'Video' },
|
515
601
|
mvhd => {
|
516
602
|
Name => 'MovieHeader',
|
@@ -567,8 +653,10 @@ my %graphicsMode = (
|
|
567
653
|
# movie header data block
|
568
654
|
%Image::ExifTool::QuickTime::MovieHeader = (
|
569
655
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
656
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
570
657
|
GROUPS => { 2 => 'Video' },
|
571
658
|
FORMAT => 'int32u',
|
659
|
+
DATAMEMBER => [ 0, 1, 2, 3, 4 ],
|
572
660
|
0 => {
|
573
661
|
Name => 'MovieHeaderVersion',
|
574
662
|
Format => 'int8u',
|
@@ -630,7 +718,8 @@ my %graphicsMode = (
|
|
630
718
|
# track atoms
|
631
719
|
%Image::ExifTool::QuickTime::Track = (
|
632
720
|
PROCESS_PROC => \&ProcessMOV,
|
633
|
-
|
721
|
+
WRITE_PROC => \&WriteQuickTime,
|
722
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
634
723
|
tkhd => {
|
635
724
|
Name => 'TrackHeader',
|
636
725
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::TrackHeader' },
|
@@ -681,8 +770,10 @@ my %graphicsMode = (
|
|
681
770
|
# track header data block
|
682
771
|
%Image::ExifTool::QuickTime::TrackHeader = (
|
683
772
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
773
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
684
774
|
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
685
775
|
FORMAT => 'int32u',
|
776
|
+
DATAMEMBER => [ 0, 1, 2, 5 ],
|
686
777
|
0 => {
|
687
778
|
Name => 'TrackHeaderVersion',
|
688
779
|
Format => 'int8u',
|
@@ -753,6 +844,7 @@ my %graphicsMode = (
|
|
753
844
|
# user data atoms
|
754
845
|
%Image::ExifTool::QuickTime::UserData = (
|
755
846
|
PROCESS_PROC => \&ProcessMOV,
|
847
|
+
WRITE_PROC => \&WriteQuickTime,
|
756
848
|
GROUPS => { 2 => 'Video' },
|
757
849
|
NOTES => q{
|
758
850
|
Tag ID's beginning with the copyright symbol (hex 0xa9) are multi-language
|
@@ -868,6 +960,7 @@ my %graphicsMode = (
|
|
868
960
|
hinv => 'HintVersion', #PH (guess)
|
869
961
|
XMP_ => { #PH (Adobe CS3 Bridge)
|
870
962
|
Name => 'XMP',
|
963
|
+
# *** this is where ExifTool writes XMP in MOV videos (as per XMP spec) ***
|
871
964
|
SubDirectory => { TagTable => 'Image::ExifTool::XMP::Main' },
|
872
965
|
},
|
873
966
|
# the following are 3gp tags, references:
|
@@ -1022,6 +1115,14 @@ my %graphicsMode = (
|
|
1022
1115
|
scen => { Name => 'Scene', Format => 'string' }, # (NC)
|
1023
1116
|
shot => { Name => 'ShotName', Format => 'string' }, # (NC)
|
1024
1117
|
slno => { Name => 'SerialNumber', Format => 'string' }, # (NC)
|
1118
|
+
apmd => { Name => 'ApertureMode', Format => 'undef' }, #20
|
1119
|
+
kgtt => { #http://lists.ffmpeg.org/pipermail/ffmpeg-devel-irc/2012-June/000707.html
|
1120
|
+
# 'TrackType' will expand to 'Track#Type' when found inside a track
|
1121
|
+
Name => 'TrackType',
|
1122
|
+
# set flag to process this as international text
|
1123
|
+
# even though the tag ID doesn't start with 0xa9
|
1124
|
+
IText => 1,
|
1125
|
+
},
|
1025
1126
|
# other non-Apple tags (ref 16)
|
1026
1127
|
# hpix - HipixRichPicture (ref 16, HIPIX)
|
1027
1128
|
# strk - sub-track information (ref 16, ISO)
|
@@ -1305,10 +1406,18 @@ my %graphicsMode = (
|
|
1305
1406
|
# ducp - 4 bytes all zero (Samsung ST96,WB750), 52 bytes all zero (Samsung WB30F)
|
1306
1407
|
# edli - 52 bytes all zero (Samsung WB30F)
|
1307
1408
|
# @etc - 4 bytes all zero (Samsung WB30F)
|
1409
|
+
# smrd - string "TRUEBLUE" (Samsung SM-C101)
|
1308
1410
|
'@sec' => { #PH (Samsung WB30F)
|
1309
1411
|
Name => 'SamsungSec',
|
1310
1412
|
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::sec' },
|
1311
1413
|
},
|
1414
|
+
'smta' => { #PH (Samsung SM-C101)
|
1415
|
+
Name => 'SamsungSmta',
|
1416
|
+
SubDirectory => {
|
1417
|
+
TagTable => 'Image::ExifTool::Samsung::smta',
|
1418
|
+
Start => 4,
|
1419
|
+
},
|
1420
|
+
},
|
1312
1421
|
#
|
1313
1422
|
# other 3rd-party tags
|
1314
1423
|
# (ref http://code.google.com/p/mp4parser/source/browse/trunk/isoparser/src/main/resources/isoparser-default.properties?r=814)
|
@@ -1332,88 +1441,6 @@ my %graphicsMode = (
|
|
1332
1441
|
},
|
1333
1442
|
);
|
1334
1443
|
|
1335
|
-
# top-level user data written by FLIR cameras in MP4 videos
|
1336
|
-
%Image::ExifTool::QuickTime::TopUserData = (
|
1337
|
-
PROCESS_PROC => \&ProcessMOV,
|
1338
|
-
GROUPS => { 1 => 'FLIR', 2 => 'Camera' },
|
1339
|
-
NOTES => 'Tags written in MP4 videos from some FLIR cameras.',
|
1340
|
-
uuid => [
|
1341
|
-
{
|
1342
|
-
Name => 'FLIR_Parts',
|
1343
|
-
Condition => '$$valPt=~/^\x43\xc3\x99\x3b\x0f\x94\x42\x4b\x82\x05\x6b\x66\x51\x3f\x48\x5d/s',
|
1344
|
-
SubDirectory => {
|
1345
|
-
TagTable => 'Image::ExifTool::FLIR::Parts',
|
1346
|
-
Start => 16,
|
1347
|
-
},
|
1348
|
-
},
|
1349
|
-
{
|
1350
|
-
Name => 'FLIR_Serial',
|
1351
|
-
Condition => '$$valPt=~/^\x57\xf5\xb9\x3e\x51\xe4\x48\xaf\xa0\xd9\xc3\xef\x1b\x37\xf7\x12/s',
|
1352
|
-
SubDirectory => {
|
1353
|
-
TagTable => 'Image::ExifTool::FLIR::SerialNums',
|
1354
|
-
Start => 16,
|
1355
|
-
},
|
1356
|
-
},
|
1357
|
-
{
|
1358
|
-
Name => 'FLIR_Params',
|
1359
|
-
Condition => '$$valPt=~/^\x41\xe5\xdc\xf9\xe8\x0a\x41\xce\xad\xfe\x7f\x0c\x58\x08\x2c\x19/s',
|
1360
|
-
SubDirectory => {
|
1361
|
-
TagTable => 'Image::ExifTool::FLIR::Params',
|
1362
|
-
Start => 16,
|
1363
|
-
},
|
1364
|
-
},
|
1365
|
-
{
|
1366
|
-
Name => 'FLIR_UnknownUUID',
|
1367
|
-
Condition => '$$valPt=~/^\x57\x45\x20\x50\x2c\xbb\x44\xad\xae\x54\x15\xe9\xb8\x39\xd9\x03/s',
|
1368
|
-
SubDirectory => {
|
1369
|
-
TagTable => 'Image::ExifTool::FLIR::UnknownUUID',
|
1370
|
-
Start => 16,
|
1371
|
-
},
|
1372
|
-
},
|
1373
|
-
{
|
1374
|
-
Name => 'FLIR_GPS',
|
1375
|
-
Condition => '$$valPt=~/^\x7f\x2e\x21\x00\x8b\x46\x49\x18\xaf\xb1\xde\x70\x9a\x74\xf6\xf5/s',
|
1376
|
-
SubDirectory => {
|
1377
|
-
TagTable => 'Image::ExifTool::FLIR::GPS_UUID',
|
1378
|
-
Start => 16,
|
1379
|
-
},
|
1380
|
-
},
|
1381
|
-
{
|
1382
|
-
Name => 'FLIR_MoreInfo',
|
1383
|
-
Condition => '$$valPt=~/^\x2b\x45\x2f\xdc\x74\x35\x40\x94\xba\xee\x22\xa6\xb2\x3a\x7c\xf8/s',
|
1384
|
-
SubDirectory => {
|
1385
|
-
TagTable => 'Image::ExifTool::FLIR::MoreInfo',
|
1386
|
-
Start => 16,
|
1387
|
-
},
|
1388
|
-
},
|
1389
|
-
{
|
1390
|
-
Name => 'SoftwareComponents',
|
1391
|
-
Condition => '$$valPt=~/^\x78\x3f\xc7\x83\x0c\x95\x4b\x00\x8c\xc7\xac\xf1\xec\xb4\xd3\x9a/s',
|
1392
|
-
Unknown => 1,
|
1393
|
-
ValueConv => 'join " ", unpack "x20N4xZ*", $val',
|
1394
|
-
},
|
1395
|
-
{
|
1396
|
-
Name => 'FLIR_Unknown',
|
1397
|
-
Condition => '$$valPt=~/^\x52\xae\xda\x45\x17\x1e\x48\xb1\x92\x47\x93\xa4\x21\x4e\x43\xf5/s',
|
1398
|
-
Unknown => 1,
|
1399
|
-
ValueConv => 'unpack "x20C*", $val',
|
1400
|
-
},
|
1401
|
-
{
|
1402
|
-
Name => 'Units',
|
1403
|
-
Condition => '$$valPt=~/^\xf8\xab\x72\x1e\x84\x73\x44\xa0\xb8\xc8\x1b\x04\x82\x6e\x07\x24/s',
|
1404
|
-
List => 1,
|
1405
|
-
RawConv => 'my @a = split "\0", substr($val, 20); \@a',
|
1406
|
-
},
|
1407
|
-
{
|
1408
|
-
Name => 'ThumbnailImage',
|
1409
|
-
Groups => { 2 => 'Image' },
|
1410
|
-
Condition => '$$valPt=~/^\x91\xaf\x9b\x93\x45\x9b\x44\x56\x98\xd1\x5e\x76\xea\x01\x04\xac....\xff\xd8\xff/s',
|
1411
|
-
RawConv => 'substr($val, 20)',
|
1412
|
-
Binary => 1,
|
1413
|
-
},
|
1414
|
-
],
|
1415
|
-
);
|
1416
|
-
|
1417
1444
|
# User-specific media data atoms (ref 11)
|
1418
1445
|
%Image::ExifTool::QuickTime::MetaData = (
|
1419
1446
|
PROCESS_PROC => \&Image::ExifTool::QuickTime::ProcessMetaData,
|
@@ -1636,6 +1663,7 @@ my %graphicsMode = (
|
|
1636
1663
|
},
|
1637
1664
|
'xml ' => {
|
1638
1665
|
Name => 'XML',
|
1666
|
+
Flags => [ 'Binary', 'Protected', 'BlockExtract' ],
|
1639
1667
|
SubDirectory => { TagTable => 'Image::ExifTool::XMP::Main' },
|
1640
1668
|
},
|
1641
1669
|
'keys' => {
|
@@ -1659,7 +1687,7 @@ my %graphicsMode = (
|
|
1659
1687
|
# track reference atoms
|
1660
1688
|
%Image::ExifTool::QuickTime::TrackRef = (
|
1661
1689
|
PROCESS_PROC => \&ProcessMOV,
|
1662
|
-
GROUPS => { 2 => 'Video' },
|
1690
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
1663
1691
|
chap => { Name => 'ChapterList', Format => 'int32u' },
|
1664
1692
|
tmcd => { Name => 'TimeCode', Format => 'int32u' },
|
1665
1693
|
mpod => { #PH (FLIR MP4)
|
@@ -1674,7 +1702,7 @@ my %graphicsMode = (
|
|
1674
1702
|
# (ref https://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap2/qtff2.html)
|
1675
1703
|
%Image::ExifTool::QuickTime::TrackAperture = (
|
1676
1704
|
PROCESS_PROC => \&ProcessMOV,
|
1677
|
-
GROUPS => { 2 => 'Video' },
|
1705
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
1678
1706
|
clef => {
|
1679
1707
|
Name => 'CleanApertureDimensions',
|
1680
1708
|
Format => 'fixed32u',
|
@@ -2063,7 +2091,7 @@ my %graphicsMode = (
|
|
2063
2091
|
GROUPS => { 2 => 'Audio' },
|
2064
2092
|
# (I have commented out the ones that don't have integer values because they
|
2065
2093
|
# probably don't appear, and definitly wouldn't work with current decoding - PH)
|
2066
|
-
|
2094
|
+
|
2067
2095
|
# global codec properties
|
2068
2096
|
#'lnam' => 'AudioCodecName',
|
2069
2097
|
#'lmak' => 'AudioCodecManufacturer',
|
@@ -2209,7 +2237,8 @@ my %graphicsMode = (
|
|
2209
2237
|
# MP4 media box (ref 5)
|
2210
2238
|
%Image::ExifTool::QuickTime::Media = (
|
2211
2239
|
PROCESS_PROC => \&ProcessMOV,
|
2212
|
-
|
2240
|
+
WRITE_PROC => \&WriteQuickTime,
|
2241
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
2213
2242
|
NOTES => 'MP4 media box.',
|
2214
2243
|
mdhd => {
|
2215
2244
|
Name => 'MediaHeader',
|
@@ -2228,8 +2257,10 @@ my %graphicsMode = (
|
|
2228
2257
|
# MP4 media header box (ref 5)
|
2229
2258
|
%Image::ExifTool::QuickTime::MediaHeader = (
|
2230
2259
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2231
|
-
|
2260
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
2261
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
2232
2262
|
FORMAT => 'int32u',
|
2263
|
+
DATAMEMBER => [ 0, 1, 2, 3, 4 ],
|
2233
2264
|
0 => {
|
2234
2265
|
Name => 'MediaHeaderVersion',
|
2235
2266
|
RawConv => '$$self{MediaHeaderVersion} = $val',
|
@@ -2276,7 +2307,7 @@ my %graphicsMode = (
|
|
2276
2307
|
# MP4 media information box (ref 5)
|
2277
2308
|
%Image::ExifTool::QuickTime::MediaInfo = (
|
2278
2309
|
PROCESS_PROC => \&ProcessMOV,
|
2279
|
-
GROUPS => { 2 => 'Video' },
|
2310
|
+
GROUPS => { 1 => 'Track#', 2 => 'Video' },
|
2280
2311
|
NOTES => 'MP4 media info box.',
|
2281
2312
|
vmhd => {
|
2282
2313
|
Name => 'VideoHeader',
|
@@ -2460,53 +2491,211 @@ my %graphicsMode = (
|
|
2460
2491
|
},
|
2461
2492
|
);
|
2462
2493
|
|
2463
|
-
# MP4 audio sample description box (ref 5)
|
2494
|
+
# MP4 audio sample description box (ref 5/AtomicParsley 0.9.4 parsley.cpp)
|
2464
2495
|
%Image::ExifTool::QuickTime::AudioSampleDesc = (
|
2465
|
-
PROCESS_PROC => \&
|
2496
|
+
PROCESS_PROC => \&ProcessHybrid,
|
2497
|
+
VARS => { ID_LABEL => 'ID/Index' },
|
2466
2498
|
GROUPS => { 2 => 'Audio' },
|
2467
|
-
|
2468
|
-
|
2469
|
-
|
2499
|
+
NOTES => q{
|
2500
|
+
MP4 audio sample description. This hybrid atom contains both data and child
|
2501
|
+
atoms.
|
2502
|
+
},
|
2503
|
+
4 => {
|
2470
2504
|
Name => 'AudioFormat',
|
2471
2505
|
Format => 'undef[4]',
|
2472
2506
|
RawConv => q{
|
2507
|
+
$$self{AudioFormat} = $val;
|
2473
2508
|
return undef unless $val =~ /^[\w ]{4}$/i;
|
2474
2509
|
# check for protected audio format
|
2475
2510
|
$self->OverrideFileType('M4P') if $val eq 'drms' and $$self{VALUE}{FileType} eq 'M4A';
|
2476
2511
|
return $val;
|
2477
2512
|
},
|
2478
2513
|
},
|
2479
|
-
|
2514
|
+
20 => { #PH
|
2480
2515
|
Name => 'AudioVendorID',
|
2516
|
+
Condition => '$$self{AudioFormat} ne "mp4s"',
|
2481
2517
|
Format => 'undef[4]',
|
2482
2518
|
RawConv => '$val eq "\0\0\0\0" ? undef : $val',
|
2483
2519
|
PrintConv => \%vendorID,
|
2484
2520
|
SeparateTable => 'VendorID',
|
2485
2521
|
},
|
2486
|
-
|
2487
|
-
|
2488
|
-
|
2489
|
-
|
2490
|
-
|
2522
|
+
24 => { Name => 'AudioChannels', Format => 'int16u' },
|
2523
|
+
26 => { Name => 'AudioBitsPerSample', Format => 'int16u' },
|
2524
|
+
32 => { Name => 'AudioSampleRate', Format => 'fixed32u' },
|
2525
|
+
#
|
2526
|
+
# Observed offsets for child atoms of various AudioFormat types:
|
2527
|
+
#
|
2528
|
+
# AudioFormat Offset Child atoms
|
2529
|
+
# ----------- ------ ----------------
|
2530
|
+
# mp4a 52 * wave, chan, esds
|
2531
|
+
# in24 52 wave, chan
|
2532
|
+
# "ms\0\x11" 52 wave
|
2533
|
+
# sowt 52 chan
|
2534
|
+
# mp4a 36 * esds, pinf
|
2535
|
+
# drms 36 esds, sinf
|
2536
|
+
# samr 36 damr
|
2537
|
+
# alac 36 alac
|
2538
|
+
#
|
2539
|
+
# (* child atoms found at different offsets in mp4a)
|
2540
|
+
#
|
2541
|
+
pinf => {
|
2542
|
+
Name => 'PurchaseInfo',
|
2543
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::ProtectionInfo' },
|
2544
|
+
},
|
2545
|
+
sinf => { # "protection scheme information"
|
2546
|
+
Name => 'ProtectionInfo', #3
|
2547
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::ProtectionInfo' },
|
2548
|
+
},
|
2549
|
+
# chan - 16/36 bytes
|
2550
|
+
# esds - 31/40/42/43 bytes - ES descriptor (ref 3)
|
2551
|
+
damr => { #3
|
2552
|
+
Name => 'DecodeConfig',
|
2553
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::DecodeConfig' },
|
2554
|
+
},
|
2555
|
+
wave => {
|
2556
|
+
Name => 'Wave',
|
2557
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Wave' },
|
2558
|
+
},
|
2559
|
+
# alac - 28 bytes
|
2560
|
+
);
|
2561
|
+
|
2562
|
+
# AMR decode config box (ref 3)
|
2563
|
+
%Image::ExifTool::QuickTime::DecodeConfig = (
|
2564
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2565
|
+
GROUPS => { 2 => 'Audio' },
|
2566
|
+
0 => {
|
2567
|
+
Name => 'EncoderVendor',
|
2491
2568
|
Format => 'undef[4]',
|
2492
|
-
RawConv => '$val =~ /^[\w ]{4}$/i ? $val : undef',
|
2493
|
-
Notes => 'in Casio MOV videos',
|
2494
2569
|
},
|
2570
|
+
4 => 'EncoderVersion',
|
2571
|
+
# 5 - int16u - packet modes
|
2572
|
+
# 7 - int8u - number of packet mode changes
|
2573
|
+
# 8 - int8u - bytes per packet
|
2574
|
+
);
|
2575
|
+
|
2576
|
+
%Image::ExifTool::QuickTime::ProtectionInfo = (
|
2577
|
+
PROCESS_PROC => \&ProcessMOV,
|
2578
|
+
GROUPS => { 2 => 'Audio' },
|
2579
|
+
NOTES => 'Child atoms found in "sinf" and/or "pinf" atoms.',
|
2580
|
+
frma => 'OriginalFormat',
|
2581
|
+
# imif - IPMP information
|
2582
|
+
schm => {
|
2583
|
+
Name => 'SchemeType',
|
2584
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::SchemeType' },
|
2585
|
+
},
|
2586
|
+
schi => {
|
2587
|
+
Name => 'SchemeInfo',
|
2588
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::SchemeInfo' },
|
2589
|
+
},
|
2590
|
+
# skcr
|
2591
|
+
# enda
|
2592
|
+
);
|
2593
|
+
|
2594
|
+
%Image::ExifTool::QuickTime::Wave = (
|
2595
|
+
PROCESS_PROC => \&ProcessMOV,
|
2596
|
+
frma => 'PurchaseFileFormat',
|
2597
|
+
# "ms\0\x11" - 20 bytes
|
2598
|
+
);
|
2599
|
+
|
2600
|
+
# scheme type atom
|
2601
|
+
# ref http://xhelmboyx.tripod.com/formats/mp4-layout.txt
|
2602
|
+
%Image::ExifTool::QuickTime::SchemeType = (
|
2603
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2604
|
+
GROUPS => { 2 => 'Audio' },
|
2605
|
+
# 0 - 4 bytes version
|
2606
|
+
4 => { Name => 'SchemeType', Format => 'undef[4]' },
|
2607
|
+
8 => { Name => 'SchemeVersion', Format => 'int16u' },
|
2608
|
+
10 => { Name => 'SchemeURL', Format => 'string[$size-10]' },
|
2609
|
+
);
|
2610
|
+
|
2611
|
+
%Image::ExifTool::QuickTime::SchemeInfo = (
|
2612
|
+
PROCESS_PROC => \&ProcessMOV,
|
2613
|
+
GROUPS => { 2 => 'Audio' },
|
2614
|
+
user => {
|
2615
|
+
Name => 'UserID',
|
2616
|
+
Groups => { 2 => 'Author' },
|
2617
|
+
ValueConv => '"0x" . unpack("H*",$val)',
|
2618
|
+
},
|
2619
|
+
cert => { # ref http://www.onvif.org/specs/stream/ONVIF-ExportFileFormat-Spec-v100.pdf
|
2620
|
+
Name => 'Certificate',
|
2621
|
+
ValueConv => '"0x" . unpack("H*",$val)',
|
2622
|
+
},
|
2623
|
+
'key ' => {
|
2624
|
+
Name => 'KeyID',
|
2625
|
+
ValueConv => '"0x" . unpack("H*",$val)',
|
2626
|
+
},
|
2627
|
+
iviv => {
|
2628
|
+
Name => 'InitializationVector',
|
2629
|
+
ValueConv => 'unpack("H*",$val)',
|
2630
|
+
},
|
2631
|
+
righ => {
|
2632
|
+
Name => 'Rights',
|
2633
|
+
Groups => { 2 => 'Author' },
|
2634
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Rights' },
|
2635
|
+
},
|
2636
|
+
name => { Name => 'UserName', Groups => { 2 => 'Author' } },
|
2637
|
+
# chtb
|
2638
|
+
# priv - private data
|
2639
|
+
# sign
|
2640
|
+
# adkm - Adobe DRM key management system (ref http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf)
|
2641
|
+
# iKMS
|
2642
|
+
# iSFM
|
2643
|
+
# iSLT
|
2644
|
+
);
|
2645
|
+
|
2646
|
+
%Image::ExifTool::QuickTime::Rights = (
|
2647
|
+
PROCESS_PROC => \&ProcessRights,
|
2648
|
+
GROUPS => { 2 => 'Audio' },
|
2649
|
+
veID => 'ItemVendorID', #PH ("VendorID" ref 19)
|
2650
|
+
plat => 'Platform', #18?
|
2651
|
+
aver => 'VersionRestrictions', #19 ("appversion?" ref 18)
|
2652
|
+
tran => 'TransactionID', #18
|
2653
|
+
song => 'ItemID', #19 ("appid" ref 18)
|
2654
|
+
tool => {
|
2655
|
+
Name => 'ItemTool', #PH (guess) ("itunes build?" ref 18)
|
2656
|
+
Format => 'string',
|
2657
|
+
},
|
2658
|
+
medi => 'MediaFlags', #PH (?)
|
2659
|
+
mode => 'ModeFlags', #PH (?) 0x04 is HD flag (https://compilr.com/heksesang/requiem-mac/UnDrm.java)
|
2495
2660
|
);
|
2496
2661
|
|
2497
2662
|
# MP4 hint sample description box (ref 5)
|
2663
|
+
# (ref https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-SW1)
|
2498
2664
|
%Image::ExifTool::QuickTime::HintSampleDesc = (
|
2499
|
-
PROCESS_PROC => \&
|
2500
|
-
|
2665
|
+
PROCESS_PROC => \&ProcessHybrid,
|
2666
|
+
VARS => { ID_LABEL => 'ID/Index' },
|
2501
2667
|
NOTES => 'MP4 hint sample description.',
|
2502
|
-
|
2668
|
+
4 => { Name => 'HintFormat', Format => 'undef[4]' },
|
2669
|
+
# 14 - int16u DataReferenceIndex
|
2670
|
+
16 => { Name => 'HintTrackVersion', Format => 'int16u' },
|
2671
|
+
# 18 - int16u LastCompatibleHintTrackVersion
|
2672
|
+
20 => { Name => 'MaxPacketSize', Format => 'int32u' },
|
2673
|
+
#
|
2674
|
+
# Observed offsets for child atoms of various HintFormat types:
|
2675
|
+
#
|
2676
|
+
# HintFormat Offset Child atoms
|
2677
|
+
# ----------- ------ ----------------
|
2678
|
+
# "rtp " 24 tims
|
2679
|
+
#
|
2680
|
+
tims => { Name => 'RTPTimeScale', Format => 'int32u' },
|
2681
|
+
tsro => { Name => 'TimestampRandomOffset', Format => 'int32u' },
|
2682
|
+
snro => { Name => 'SequenceNumberRandomOffset', Format => 'int32u' },
|
2503
2683
|
);
|
2504
2684
|
|
2505
2685
|
# MP4 generic sample description box
|
2506
2686
|
%Image::ExifTool::QuickTime::OtherSampleDesc = (
|
2507
|
-
PROCESS_PROC => \&
|
2508
|
-
|
2509
|
-
|
2687
|
+
PROCESS_PROC => \&ProcessHybrid,
|
2688
|
+
4 => { Name => 'OtherFormat', Format => 'undef[4]' },
|
2689
|
+
#
|
2690
|
+
# Observed offsets for child atoms of various OtherFormat types:
|
2691
|
+
#
|
2692
|
+
# OtherFormat Offset Child atoms
|
2693
|
+
# ----------- ------ ----------------
|
2694
|
+
# avc1 86 avcC
|
2695
|
+
# mp4a 36 esds
|
2696
|
+
# mp4s 16 esds
|
2697
|
+
# tmcd 34 name
|
2698
|
+
#
|
2510
2699
|
);
|
2511
2700
|
|
2512
2701
|
# MP4 data information box (ref 5)
|
@@ -2560,7 +2749,7 @@ my %graphicsMode = (
|
|
2560
2749
|
6 => {
|
2561
2750
|
Name => 'TextFace',
|
2562
2751
|
Format => 'int16u',
|
2563
|
-
PrintConv => {
|
2752
|
+
PrintConv => {
|
2564
2753
|
0 => 'Plain',
|
2565
2754
|
BITMASK => {
|
2566
2755
|
0 => 'Bold',
|
@@ -2577,15 +2766,16 @@ my %graphicsMode = (
|
|
2577
2766
|
Name => 'TextSize',
|
2578
2767
|
Format => 'int16u',
|
2579
2768
|
},
|
2580
|
-
10
|
2769
|
+
# 10 - reserved
|
2770
|
+
12 => {
|
2581
2771
|
Name => 'TextColor',
|
2582
2772
|
Format => 'int16u[3]',
|
2583
2773
|
},
|
2584
|
-
|
2774
|
+
18 => {
|
2585
2775
|
Name => 'BackgroundColor',
|
2586
2776
|
Format => 'int16u[3]',
|
2587
2777
|
},
|
2588
|
-
|
2778
|
+
24 => {
|
2589
2779
|
Name => 'FontName',
|
2590
2780
|
Format => 'pstring',
|
2591
2781
|
ValueConv => '$self->Decode($val, $self->Options("CharsetQuickTime"))',
|
@@ -2828,14 +3018,22 @@ my %graphicsMode = (
|
|
2828
3018
|
Image::ExifTool::AddCompositeTags('Image::ExifTool::QuickTime');
|
2829
3019
|
|
2830
3020
|
|
3021
|
+
#------------------------------------------------------------------------------
|
3022
|
+
# AutoLoad our writer routines when necessary
|
3023
|
+
#
|
3024
|
+
sub AUTOLOAD
|
3025
|
+
{
|
3026
|
+
return Image::ExifTool::DoAutoLoad($AUTOLOAD, @_);
|
3027
|
+
}
|
3028
|
+
|
2831
3029
|
#------------------------------------------------------------------------------
|
2832
3030
|
# Calculate rotation of video track
|
2833
3031
|
# Inputs: 0) ExifTool object ref
|
2834
3032
|
# Returns: rotation angle or undef
|
2835
3033
|
sub CalcRotation($)
|
2836
3034
|
{
|
2837
|
-
my $
|
2838
|
-
my $value = $$
|
3035
|
+
my $et = shift;
|
3036
|
+
my $value = $$et{VALUE};
|
2839
3037
|
my ($i, $track);
|
2840
3038
|
# get the video track family 1 group (ie. "Track1");
|
2841
3039
|
for ($i=0; ; ++$i) {
|
@@ -2843,7 +3041,7 @@ sub CalcRotation($)
|
|
2843
3041
|
my $tag = "HandlerType$idx";
|
2844
3042
|
last unless $$value{$tag};
|
2845
3043
|
next unless $$value{$tag} eq 'vide';
|
2846
|
-
$track = $
|
3044
|
+
$track = $et->GetGroup($tag, 1);
|
2847
3045
|
last;
|
2848
3046
|
}
|
2849
3047
|
return undef unless $track;
|
@@ -2852,7 +3050,7 @@ sub CalcRotation($)
|
|
2852
3050
|
my $idx = $i ? " ($i)" : '';
|
2853
3051
|
my $tag = "MatrixStructure$idx";
|
2854
3052
|
last unless $$value{$tag};
|
2855
|
-
next unless $
|
3053
|
+
next unless $et->GetGroup($tag, 1) eq $track;
|
2856
3054
|
my @a = split ' ', $$value{$tag};
|
2857
3055
|
return undef unless $a[0] or $a[1];
|
2858
3056
|
# calculate the rotation angle (assume uniform rotation)
|
@@ -2869,7 +3067,7 @@ sub CalcRotation($)
|
|
2869
3067
|
# Returns: average sample rate (in Hz)
|
2870
3068
|
sub CalcSampleRate($$)
|
2871
3069
|
{
|
2872
|
-
my ($
|
3070
|
+
my ($et, $valPt) = @_;
|
2873
3071
|
my @dat = unpack('N*', $$valPt);
|
2874
3072
|
my ($num, $dur) = (0, 0);
|
2875
3073
|
my $i;
|
@@ -2877,8 +3075,8 @@ sub CalcSampleRate($$)
|
|
2877
3075
|
$num += $dat[$i]; # total number of samples
|
2878
3076
|
$dur += $dat[$i] * $dat[$i+1]; # total sample duration
|
2879
3077
|
}
|
2880
|
-
return undef unless $num and $dur and $$
|
2881
|
-
return $num * $$
|
3078
|
+
return undef unless $num and $dur and $$et{MediaTS};
|
3079
|
+
return $num * $$et{MediaTS} / $dur;
|
2882
3080
|
}
|
2883
3081
|
|
2884
3082
|
#------------------------------------------------------------------------------
|
@@ -2929,11 +3127,11 @@ sub ConvertISO6709($)
|
|
2929
3127
|
# Returns: PrintConv value
|
2930
3128
|
sub PrintGPSCoordinates($)
|
2931
3129
|
{
|
2932
|
-
my ($val, $
|
3130
|
+
my ($val, $et) = @_;
|
2933
3131
|
require Image::ExifTool::GPS;
|
2934
3132
|
my @v = split ' ', $val;
|
2935
|
-
my $prt = Image::ExifTool::GPS::ToDMS($
|
2936
|
-
Image::ExifTool::GPS::ToDMS($
|
3133
|
+
my $prt = Image::ExifTool::GPS::ToDMS($et, $v[0], 1, "N") . ', ' .
|
3134
|
+
Image::ExifTool::GPS::ToDMS($et, $v[1], 1, "E");
|
2937
3135
|
if (defined $v[2]) {
|
2938
3136
|
$prt .= ', ' . ($v[2] < 0 ? -$v[2] . ' m Below' : $v[2] . ' m Above') . ' Sea Level';
|
2939
3137
|
}
|
@@ -2967,13 +3165,13 @@ sub UnpackLang($)
|
|
2967
3165
|
# Returns: 1 on success
|
2968
3166
|
sub ProcessMetaData($$$)
|
2969
3167
|
{
|
2970
|
-
my ($
|
3168
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
2971
3169
|
my $dataPt = $$dirInfo{DataPt};
|
2972
3170
|
my $dirLen = length $$dataPt;
|
2973
|
-
my $verbose = $
|
3171
|
+
my $verbose = $et->Options('Verbose');
|
2974
3172
|
return 0 unless $dirLen >= 2;
|
2975
3173
|
my $count = Get16u($dataPt, 0);
|
2976
|
-
$verbose and $
|
3174
|
+
$verbose and $et->VerboseDir('MetaData', $count);
|
2977
3175
|
my $i;
|
2978
3176
|
my $pos = 2;
|
2979
3177
|
for ($i=0; $i<$count; ++$i) {
|
@@ -2984,7 +3182,7 @@ sub ProcessMetaData($$$)
|
|
2984
3182
|
my $lang = Get16u($dataPt, $pos + 6);
|
2985
3183
|
my $enc = Get16u($dataPt, $pos + 8);
|
2986
3184
|
my $val = substr($$dataPt, $pos + 10, $size);
|
2987
|
-
my $tagInfo = $
|
3185
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
2988
3186
|
if ($tagInfo) {
|
2989
3187
|
# convert language code to ASCII (ignore read-only bit)
|
2990
3188
|
$lang = UnpackLang($lang);
|
@@ -2993,19 +3191,19 @@ sub ProcessMetaData($$$)
|
|
2993
3191
|
my $langInfo = Image::ExifTool::GetLangInfo($tagInfo, $lang);
|
2994
3192
|
$tagInfo = $langInfo if $langInfo;
|
2995
3193
|
}
|
2996
|
-
$verbose and $
|
3194
|
+
$verbose and $et->VerboseInfo($tag, $tagInfo,
|
2997
3195
|
Value => $val,
|
2998
3196
|
DataPt => $dataPt,
|
2999
3197
|
Start => $pos + 10,
|
3000
3198
|
Size => $size - 10,
|
3001
3199
|
);
|
3002
3200
|
# convert from UTF-16 BE if necessary
|
3003
|
-
$val = $
|
3201
|
+
$val = $et->Decode($val, 'UCS2') if $enc == 1;
|
3004
3202
|
if ($enc == 0 and $$tagInfo{Unknown}) {
|
3005
3203
|
# binary data
|
3006
|
-
$
|
3204
|
+
$et->FoundTag($tagInfo, \$val);
|
3007
3205
|
} else {
|
3008
|
-
$
|
3206
|
+
$et->FoundTag($tagInfo, $val);
|
3009
3207
|
}
|
3010
3208
|
}
|
3011
3209
|
$pos += $size;
|
@@ -3013,20 +3211,103 @@ sub ProcessMetaData($$$)
|
|
3013
3211
|
return 1;
|
3014
3212
|
}
|
3015
3213
|
|
3214
|
+
#------------------------------------------------------------------------------
|
3215
|
+
# Process hybrid binary data + QuickTime container (ref PH)
|
3216
|
+
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
3217
|
+
# Returns: 1 on success
|
3218
|
+
sub ProcessHybrid($$$)
|
3219
|
+
{
|
3220
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
3221
|
+
# brute-force search for child atoms after first 8 bytes of binary data
|
3222
|
+
my $dataPt = $$dirInfo{DataPt};
|
3223
|
+
my $pos = ($$dirInfo{DirStart} || 0) + 8;
|
3224
|
+
my $len = length($$dataPt);
|
3225
|
+
my $try = $pos;
|
3226
|
+
my $childPos;
|
3227
|
+
|
3228
|
+
while ($pos <= $len - 8) {
|
3229
|
+
my $tag = substr($$dataPt, $try+4, 4);
|
3230
|
+
# look only for well-behaved tag ID's
|
3231
|
+
$tag =~ /[^\w ]/ and $try = ++$pos, next;
|
3232
|
+
my $size = Get32u($dataPt, $try);
|
3233
|
+
if ($size + $try == $len) {
|
3234
|
+
# the atom ends exactly at the end of the parent -- this must be it
|
3235
|
+
$childPos = $pos;
|
3236
|
+
$$dirInfo{DirLen} = $pos; # the binary data ends at the first child atom
|
3237
|
+
last;
|
3238
|
+
}
|
3239
|
+
if ($size < 8 or $size + $try > $len - 8) {
|
3240
|
+
$try = ++$pos; # fail. try next position
|
3241
|
+
} else {
|
3242
|
+
$try += $size; # could be another atom following this
|
3243
|
+
}
|
3244
|
+
}
|
3245
|
+
# process binary data
|
3246
|
+
$$dirInfo{MixedTags} = 1; # ignore non-integer tag ID's
|
3247
|
+
$et->ProcessBinaryData($dirInfo, $tagTablePtr);
|
3248
|
+
# process child atoms if found
|
3249
|
+
if ($childPos) {
|
3250
|
+
$$dirInfo{DirStart} = $childPos;
|
3251
|
+
$$dirInfo{DirLen} = $len - $childPos;
|
3252
|
+
ProcessMOV($et, $dirInfo, $tagTablePtr);
|
3253
|
+
}
|
3254
|
+
return 1;
|
3255
|
+
}
|
3256
|
+
|
3257
|
+
#------------------------------------------------------------------------------
|
3258
|
+
# Process iTunes 'righ' atom (ref PH)
|
3259
|
+
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
3260
|
+
# Returns: 1 on success
|
3261
|
+
sub ProcessRights($$$)
|
3262
|
+
{
|
3263
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
3264
|
+
my $dataPt = $$dirInfo{DataPt};
|
3265
|
+
my $dataPos = $$dirInfo{Base};
|
3266
|
+
my $dirLen = length $$dataPt;
|
3267
|
+
my $unknown = $$et{OPTIONS}{Unkown} || $$et{OPTIONS}{Verbose};
|
3268
|
+
my $pos;
|
3269
|
+
$et->VerboseDir('righ', $dirLen / 8);
|
3270
|
+
for ($pos = 0; $pos + 8 <= $dirLen; $pos += 8) {
|
3271
|
+
my $tag = substr($$dataPt, $pos, 4);
|
3272
|
+
last if $tag eq "\0\0\0\0";
|
3273
|
+
my $val = substr($$dataPt, $pos + 4, 4);
|
3274
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
3275
|
+
unless ($tagInfo) {
|
3276
|
+
next unless $unknown;
|
3277
|
+
my $name = $tag;
|
3278
|
+
$name =~ s/([\x00-\x1f\x7f-\xff])/'x'.unpack('H*',$1)/eg;
|
3279
|
+
$tagInfo = {
|
3280
|
+
Name => "Unknown_$name",
|
3281
|
+
Description => "Unknown $name",
|
3282
|
+
Unknown => 1,
|
3283
|
+
},
|
3284
|
+
AddTagToTable($tagTablePtr, $tag, $tagInfo);
|
3285
|
+
}
|
3286
|
+
$val = '0x' . unpack('H*', $val) unless $$tagInfo{Format};
|
3287
|
+
$et->HandleTag($tagTablePtr, $tag, $val,
|
3288
|
+
DataPt => $dataPt,
|
3289
|
+
DataPos => $dataPos,
|
3290
|
+
Start => $pos + 4,
|
3291
|
+
Size => 4,
|
3292
|
+
);
|
3293
|
+
}
|
3294
|
+
return 1;
|
3295
|
+
}
|
3296
|
+
|
3016
3297
|
#------------------------------------------------------------------------------
|
3017
3298
|
# Process iTunes Encoding Params (ref PH)
|
3018
3299
|
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
3019
3300
|
# Returns: 1 on success
|
3020
3301
|
sub ProcessEncodingParams($$$)
|
3021
3302
|
{
|
3022
|
-
my ($
|
3303
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
3023
3304
|
my $dataPt = $$dirInfo{DataPt};
|
3024
3305
|
my $dirLen = length $$dataPt;
|
3025
3306
|
my $pos;
|
3026
|
-
$
|
3307
|
+
$et->VerboseDir('Encoding Params', $dirLen / 8);
|
3027
3308
|
for ($pos = 0; $pos + 8 <= $dirLen; $pos += 8) {
|
3028
3309
|
my ($tag, $val) = unpack("x${pos}a4N", $$dataPt);
|
3029
|
-
$
|
3310
|
+
$et->HandleTag($tagTablePtr, $tag, $val);
|
3030
3311
|
}
|
3031
3312
|
return 1;
|
3032
3313
|
}
|
@@ -3037,13 +3318,13 @@ sub ProcessEncodingParams($$$)
|
|
3037
3318
|
# Returns: 1 on success
|
3038
3319
|
sub ProcessKeys($$$)
|
3039
3320
|
{
|
3040
|
-
my ($
|
3321
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
3041
3322
|
my $dataPt = $$dirInfo{DataPt};
|
3042
3323
|
my $dirLen = length $$dataPt;
|
3043
3324
|
my $out;
|
3044
|
-
if ($
|
3045
|
-
$
|
3046
|
-
$out = $
|
3325
|
+
if ($et->Options('Verbose')) {
|
3326
|
+
$et->VerboseDir('Keys');
|
3327
|
+
$out = $et->Options('TextOut');
|
3047
3328
|
}
|
3048
3329
|
my $pos = 8;
|
3049
3330
|
my $index = 1;
|
@@ -3061,15 +3342,15 @@ sub ProcessKeys($$$)
|
|
3061
3342
|
}
|
3062
3343
|
next unless $tag;
|
3063
3344
|
# (I have some samples where the tag is a reversed ItemList or UserData tag ID)
|
3064
|
-
my $tagInfo = $
|
3345
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
3065
3346
|
unless ($tagInfo) {
|
3066
|
-
$tagInfo = $
|
3347
|
+
$tagInfo = $et->GetTagInfo($infoTable, $tag);
|
3067
3348
|
unless ($tagInfo) {
|
3068
|
-
$tagInfo = $
|
3349
|
+
$tagInfo = $et->GetTagInfo($userTable, $tag);
|
3069
3350
|
if (not $tagInfo and $tag =~ /^\w{3}\xa9$/) {
|
3070
3351
|
$tag = pack('N', unpack('V', $tag));
|
3071
|
-
$tagInfo = $
|
3072
|
-
$tagInfo or $tagInfo = $
|
3352
|
+
$tagInfo = $et->GetTagInfo($infoTable, $tag);
|
3353
|
+
$tagInfo or $tagInfo = $et->GetTagInfo($userTable, $tag);
|
3073
3354
|
}
|
3074
3355
|
}
|
3075
3356
|
}
|
@@ -3095,7 +3376,7 @@ sub ProcessKeys($$$)
|
|
3095
3376
|
if ($newInfo) {
|
3096
3377
|
$msg or $msg = '';
|
3097
3378
|
AddTagToTable($infoTable, $index, $newInfo);
|
3098
|
-
$out and printf $out "%sAdded ItemList Tag 0x%.4x = $tag$msg\n",
|
3379
|
+
$out and printf $out "%sAdded ItemList Tag 0x%.4x = $tag$msg\n", $$et{INDENT}, $index;
|
3099
3380
|
}
|
3100
3381
|
$pos += $len;
|
3101
3382
|
++$index;
|
@@ -3109,12 +3390,12 @@ sub ProcessKeys($$$)
|
|
3109
3390
|
# Returns: 1 on success
|
3110
3391
|
sub ProcessMOV($$;$)
|
3111
3392
|
{
|
3112
|
-
my ($
|
3393
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
3113
3394
|
my $raf = $$dirInfo{RAF};
|
3114
3395
|
my $dataPt = $$dirInfo{DataPt};
|
3115
|
-
my $verbose = $
|
3396
|
+
my $verbose = $et->Options('Verbose');
|
3116
3397
|
my $dataPos = $$dirInfo{Base} || 0;
|
3117
|
-
my $charsetQuickTime = $
|
3398
|
+
my $charsetQuickTime = $et->Options('CharsetQuickTime');
|
3118
3399
|
my ($buff, $tag, $size, $track, $isUserData, %triplet);
|
3119
3400
|
|
3120
3401
|
# more convenient to package data as a RandomAccess file
|
@@ -3134,69 +3415,95 @@ sub ProcessMOV($$;$)
|
|
3134
3415
|
}
|
3135
3416
|
($size, $tag) = unpack('Na4', $buff);
|
3136
3417
|
if ($dataPt) {
|
3137
|
-
$verbose and $
|
3418
|
+
$verbose and $et->VerboseDir($$dirInfo{DirName});
|
3138
3419
|
} else {
|
3139
3420
|
# check on file type if called with a RAF
|
3140
3421
|
$$tagTablePtr{$tag} or return 0;
|
3141
|
-
if ($tag eq 'ftyp') {
|
3142
|
-
# read
|
3422
|
+
if ($tag eq 'ftyp' and $size >= 12) {
|
3423
|
+
# read ftyp atom to see what type of file this is
|
3143
3424
|
my $fileType;
|
3144
|
-
if ($raf->Read($buff,
|
3145
|
-
$raf->Seek(-
|
3425
|
+
if ($raf->Read($buff, $size-8) == $size-8) {
|
3426
|
+
$raf->Seek(-($size-8), 1);
|
3427
|
+
my $type = substr($buff, 0, 4);
|
3146
3428
|
# see if we know the extension for this file type
|
3147
|
-
|
3429
|
+
if ($ftypLookup{$type} and $ftypLookup{$type} =~ /\(\.(\w+)/) {
|
3430
|
+
$fileType = $1;
|
3431
|
+
# check compatible brands
|
3432
|
+
} elsif ($buff =~ /^.{8}(.{4})+(mp41|mp42)/s) {
|
3433
|
+
$fileType = 'MP4';
|
3434
|
+
} elsif ($buff =~ /^.{8}(.{4})+(f4v )/s) {
|
3435
|
+
$fileType = 'F4V';
|
3436
|
+
} elsif ($buff =~ /^.{8}(.{4})+(qt )/s) {
|
3437
|
+
$fileType = 'MOV';
|
3438
|
+
}
|
3148
3439
|
}
|
3149
3440
|
$fileType or $fileType = 'MP4'; # default to MP4
|
3150
|
-
$
|
3441
|
+
$et->SetFileType($fileType, $mimeLookup{$fileType} || 'video/mp4');
|
3151
3442
|
} else {
|
3152
|
-
$
|
3443
|
+
$et->SetFileType(); # MOV
|
3153
3444
|
}
|
3154
3445
|
SetByteOrder('MM');
|
3155
3446
|
}
|
3156
3447
|
for (;;) {
|
3157
3448
|
if ($size < 8) {
|
3158
|
-
|
3159
|
-
|
3449
|
+
if ($size == 0) {
|
3450
|
+
if ($dataPt) {
|
3451
|
+
# a zero size isn't legal for contained atoms, but Canon uses it to
|
3452
|
+
# terminate the CNTH atom (ie. CanonEOS100D.mov), so tolerate it here
|
3453
|
+
my $pos = $raf->Tell() - 4;
|
3454
|
+
$raf->Seek(0,2);
|
3455
|
+
my $str = $$dirInfo{DirName} . ' with ' . ($raf->Tell() - $pos) . ' bytes';
|
3456
|
+
$et->VPrint(0,"$$et{INDENT}\[Terminator found in $str remaining]");
|
3457
|
+
} else {
|
3458
|
+
$tag = sprintf("0x%.8x",Get32u(\$tag,0)) if $tag =~ /[\x00-\x1f\x7f-\xff]/;
|
3459
|
+
$et->VPrint(0,"$$et{INDENT}Tag '$tag' extends to end of file");
|
3460
|
+
}
|
3461
|
+
last;
|
3462
|
+
}
|
3463
|
+
$size == 1 or $et->Warn('Invalid atom size'), last;
|
3464
|
+
# read extended atom size
|
3160
3465
|
$raf->Read($buff, 8) == 8 or last;
|
3161
3466
|
$dataPos += 8;
|
3162
3467
|
my ($hi, $lo) = unpack('NN', $buff);
|
3163
|
-
$size = $lo;
|
3164
3468
|
if ($hi or $lo > 0x7fffffff) {
|
3165
3469
|
if ($hi > 0x7fffffff) {
|
3166
|
-
$
|
3470
|
+
$et->Warn('Invalid atom size');
|
3167
3471
|
last;
|
3168
|
-
} elsif (not $
|
3169
|
-
$
|
3472
|
+
} elsif (not $et->Options('LargeFileSupport')) {
|
3473
|
+
$et->Warn('End of processing at large atom (LargeFileSupport not enabled)');
|
3170
3474
|
last;
|
3171
3475
|
}
|
3172
3476
|
}
|
3173
|
-
$size = $hi * 4294967296 + $lo -
|
3174
|
-
$size <
|
3477
|
+
$size = $hi * 4294967296 + $lo - 16;
|
3478
|
+
$size < 0 and $et->Warn('Invalid extended size'), last;
|
3479
|
+
} else {
|
3480
|
+
$size -= 8;
|
3175
3481
|
}
|
3176
|
-
$
|
3177
|
-
|
3178
|
-
my $tagInfo = $exifTool->GetTagInfo($tagTablePtr, $tag);
|
3482
|
+
if ($isUserData and $$et{SET_GROUP1}) {
|
3483
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
3179
3484
|
# add track name to UserData tags inside tracks
|
3180
|
-
$tag = $$
|
3485
|
+
$tag = $$et{SET_GROUP1} . $tag;
|
3181
3486
|
if (not $$tagTablePtr{$tag} and $tagInfo) {
|
3182
3487
|
my %newInfo = %$tagInfo;
|
3183
3488
|
foreach ('Name', 'Description') {
|
3184
|
-
|
3489
|
+
next unless $$tagInfo{$_};
|
3490
|
+
$newInfo{$_} = $$et{SET_GROUP1} . $$tagInfo{$_};
|
3491
|
+
$newInfo{$_} =~ s/^(Track\d+)Track/$1/; # remove duplicate "Track" in name
|
3185
3492
|
}
|
3186
3493
|
AddTagToTable($tagTablePtr, $tag, \%newInfo);
|
3187
3494
|
}
|
3188
3495
|
}
|
3189
|
-
my $tagInfo = $
|
3496
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
3190
3497
|
# allow numerical tag ID's
|
3191
3498
|
unless ($tagInfo) {
|
3192
3499
|
my $num = unpack('N', $tag);
|
3193
3500
|
if ($$tagTablePtr{$num}) {
|
3194
|
-
$tagInfo = $
|
3501
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $num);
|
3195
3502
|
$tag = $num;
|
3196
3503
|
}
|
3197
3504
|
}
|
3198
3505
|
# generate tagInfo if Unknown option set
|
3199
|
-
if (not defined $tagInfo and (
|
3506
|
+
if (not defined $tagInfo and ($$et{OPTIONS}{Unknown} or
|
3200
3507
|
$verbose or $tag =~ /^\xa9/))
|
3201
3508
|
{
|
3202
3509
|
my $name = $tag;
|
@@ -3219,23 +3526,24 @@ sub ProcessMOV($$;$)
|
|
3219
3526
|
AddTagToTable($tagTablePtr, $tag, $tagInfo);
|
3220
3527
|
}
|
3221
3528
|
# save required tag sizes
|
3222
|
-
$
|
3529
|
+
$et->HandleTag($tagTablePtr, "$tag-size", $size) if $$tagTablePtr{"$tag-size"};
|
3223
3530
|
# load values only if associated with a tag (or verbose) and < 16MB long
|
3224
3531
|
if ((defined $tagInfo or $verbose) and $size < 0x1000000) {
|
3225
3532
|
my $val;
|
3226
|
-
|
3227
|
-
|
3533
|
+
my $missing = $size - $raf->Read($val, $size);
|
3534
|
+
if ($missing) {
|
3535
|
+
$et->Warn("Truncated '$tag' data (missing $missing bytes)");
|
3228
3536
|
last;
|
3229
3537
|
}
|
3230
3538
|
# use value to get tag info if necessary
|
3231
|
-
$tagInfo or $tagInfo = $
|
3539
|
+
$tagInfo or $tagInfo = $et->GetTagInfo($tagTablePtr, $tag, \$val);
|
3232
3540
|
my $hasData = ($$dirInfo{HasData} and $val =~ /\0...data\0/s);
|
3233
3541
|
if ($verbose and not $hasData) {
|
3234
3542
|
my $tval;
|
3235
3543
|
if ($tagInfo and $$tagInfo{Format}) {
|
3236
3544
|
$tval = ReadValue(\$val, 0, $$tagInfo{Format}, $$tagInfo{Count}, length($val));
|
3237
3545
|
}
|
3238
|
-
$
|
3546
|
+
$et->VerboseInfo($tag, $tagInfo,
|
3239
3547
|
Value => $tval,
|
3240
3548
|
DataPt => \$val,
|
3241
3549
|
DataPos => $dataPos,
|
@@ -3249,7 +3557,7 @@ sub ProcessMOV($$;$)
|
|
3249
3557
|
$tag = $triplet{name};
|
3250
3558
|
# add 'mean' to name unless it is 'com.apple.iTunes'
|
3251
3559
|
$tag = $triplet{mean} . '/' . $tag unless $triplet{mean} eq 'com.apple.iTunes';
|
3252
|
-
$tagInfo = $
|
3560
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $tag, \$val);
|
3253
3561
|
unless ($tagInfo) {
|
3254
3562
|
my $name = $triplet{name};
|
3255
3563
|
my $desc = $name;
|
@@ -3298,20 +3606,21 @@ sub ProcessMOV($$;$)
|
|
3298
3606
|
# Base needed for IsOffset tags in binary data
|
3299
3607
|
Base => $base,
|
3300
3608
|
);
|
3609
|
+
$dirInfo{BlockInfo} = $tagInfo if $$tagInfo{BlockExtract};
|
3301
3610
|
if ($$subdir{ByteOrder} and $$subdir{ByteOrder} =~ /^Little/) {
|
3302
3611
|
SetByteOrder('II');
|
3303
3612
|
}
|
3304
|
-
my $oldGroup1 =
|
3613
|
+
my $oldGroup1 = $$et{SET_GROUP1};
|
3305
3614
|
if ($$tagInfo{Name} eq 'Track') {
|
3306
3615
|
$track or $track = 0;
|
3307
|
-
|
3616
|
+
$$et{SET_GROUP1} = 'Track' . (++$track);
|
3308
3617
|
}
|
3309
3618
|
my $subTable = GetTagTable($$subdir{TagTable});
|
3310
3619
|
my $proc = $$subdir{ProcessProc};
|
3311
3620
|
# make ProcessMOV() the default processing procedure for subdirectories
|
3312
3621
|
$proc = \&ProcessMOV unless $proc or $$subTable{PROCESS_PROC};
|
3313
|
-
$
|
3314
|
-
|
3622
|
+
$et->ProcessDirectory(\%dirInfo, $subTable, $proc) if $size > $start;
|
3623
|
+
$$et{SET_GROUP1} = $oldGroup1;
|
3315
3624
|
SetByteOrder('MM');
|
3316
3625
|
} elsif ($hasData) {
|
3317
3626
|
# handle atoms containing 'data' tags
|
@@ -3334,7 +3643,7 @@ sub ProcessMOV($$;$)
|
|
3334
3643
|
# 0x18=double, 0x1b=BMP, 0x1c='meta' atom
|
3335
3644
|
if ($stringEncoding{$flags}) {
|
3336
3645
|
# handle all string formats
|
3337
|
-
$value = $
|
3646
|
+
$value = $et->Decode($value, $stringEncoding{$flags});
|
3338
3647
|
} else {
|
3339
3648
|
if (not $format) {
|
3340
3649
|
if ($flags == 0x15 or $flags == 0x16) {
|
@@ -3381,7 +3690,7 @@ sub ProcessMOV($$;$)
|
|
3381
3690
|
$langInfo = Image::ExifTool::GetLangInfo($tagInfo, $lang) if $lang;
|
3382
3691
|
}
|
3383
3692
|
$langInfo or $langInfo = $tagInfo;
|
3384
|
-
$
|
3693
|
+
$et->VerboseInfo($tag, $langInfo,
|
3385
3694
|
Value => ref $value ? $$value : $value,
|
3386
3695
|
DataPt => \$val,
|
3387
3696
|
DataPos => $dataPos,
|
@@ -3390,10 +3699,10 @@ sub ProcessMOV($$;$)
|
|
3390
3699
|
Format => $format,
|
3391
3700
|
Extra => sprintf(", Type='$type', Flags=0x%x",$flags)
|
3392
3701
|
) if $verbose;
|
3393
|
-
$
|
3702
|
+
$et->FoundTag($langInfo, $value) if defined $value;
|
3394
3703
|
$pos += $len;
|
3395
3704
|
}
|
3396
|
-
} elsif ($tag =~ /^\xa9/) {
|
3705
|
+
} elsif ($tag =~ /^\xa9/ or $$tagInfo{IText}) {
|
3397
3706
|
# parse international text to extract all languages
|
3398
3707
|
my $pos = 0;
|
3399
3708
|
for (;;) {
|
@@ -3415,23 +3724,23 @@ sub ProcessMOV($$;$)
|
|
3415
3724
|
if ($lang < 0x400) {
|
3416
3725
|
# this is a Macintosh language code
|
3417
3726
|
# a language code of 0 is Macintosh english, so treat as default
|
3418
|
-
if ($lang) {
|
3727
|
+
if ($lang) {
|
3419
3728
|
# use Font.pm to look up language string
|
3420
3729
|
require Image::ExifTool::Font;
|
3421
3730
|
$lang = $Image::ExifTool::Font::ttLang{Macintosh}{$lang};
|
3422
3731
|
}
|
3423
3732
|
# the spec says only "Macintosh text encoding", but
|
3424
3733
|
# allow this to be configured by the user
|
3425
|
-
$str = $
|
3734
|
+
$str = $et->Decode($str, $charsetQuickTime);
|
3426
3735
|
} else {
|
3427
3736
|
# convert language code to ASCII (ignore read-only bit)
|
3428
3737
|
$lang = UnpackLang($lang);
|
3429
3738
|
# may be either UTF-8 or UTF-16BE
|
3430
3739
|
my $enc = $str=~s/^\xfe\xff// ? 'UTF16' : 'UTF8';
|
3431
|
-
$str = $
|
3740
|
+
$str = $et->Decode($str, $enc);
|
3432
3741
|
}
|
3433
3742
|
$langInfo = Image::ExifTool::GetLangInfo($tagInfo, $lang) if $lang;
|
3434
|
-
$
|
3743
|
+
$et->FoundTag($langInfo || $tagInfo, $str);
|
3435
3744
|
$pos += $len;
|
3436
3745
|
}
|
3437
3746
|
} else {
|
@@ -3439,22 +3748,22 @@ sub ProcessMOV($$;$)
|
|
3439
3748
|
if ($format) {
|
3440
3749
|
$val = ReadValue(\$val, 0, $format, $$tagInfo{Count}, length($val));
|
3441
3750
|
}
|
3442
|
-
my $key = $
|
3751
|
+
my $key = $et->FoundTag($tagInfo, $val);
|
3443
3752
|
# decode if necessary (NOTE: must be done after RawConv)
|
3444
3753
|
if (defined $key and (not $format or $format =~ /^string/) and
|
3445
3754
|
not $$tagInfo{Unknown} and not $$tagInfo{ValueConv} and
|
3446
|
-
not $$tagInfo{Binary} and defined $$
|
3755
|
+
not $$tagInfo{Binary} and defined $$et{VALUE}{$key} and not ref $val)
|
3447
3756
|
{
|
3448
|
-
my $vp = \$$
|
3757
|
+
my $vp = \$$et{VALUE}{$key};
|
3449
3758
|
if (not ref $$vp and length($$vp) <= 65536 and $$vp =~ /[\x80-\xff]/) {
|
3450
3759
|
# the encoding of this is not specified, so use CharsetQuickTime
|
3451
|
-
$$vp = $
|
3760
|
+
$$vp = $et->Decode($$vp, $charsetQuickTime);
|
3452
3761
|
}
|
3453
3762
|
}
|
3454
3763
|
}
|
3455
3764
|
}
|
3456
3765
|
} else {
|
3457
|
-
$raf->Seek($size, 1) or $
|
3766
|
+
$raf->Seek($size, 1) or $et->Warn("Truncated '$tag' data"), last;
|
3458
3767
|
}
|
3459
3768
|
$raf->Read($buff, 8) == 8 or last;
|
3460
3769
|
$dataPos += $size + 8;
|
@@ -3469,9 +3778,9 @@ sub ProcessMOV($$;$)
|
|
3469
3778
|
# Returns: 1 on success
|
3470
3779
|
sub ProcessQTIF($$)
|
3471
3780
|
{
|
3472
|
-
my ($
|
3781
|
+
my ($et, $dirInfo) = @_;
|
3473
3782
|
my $table = GetTagTable('Image::ExifTool::QuickTime::ImageFile');
|
3474
|
-
return ProcessMOV($
|
3783
|
+
return ProcessMOV($et, $dirInfo, $table);
|
3475
3784
|
}
|
3476
3785
|
|
3477
3786
|
1; # end
|