In EXIF, GPSAltitude is stored as a fraction string like "1/2". For values below sea level we were negating this value, in order to represent the sign and the magnitude in the same value. However, I forgot to convert that to an integer before negating it. PHP was nice enough to do a best effort conversion of the string to an integer. This resulted in altitudes below sea level being taken as just the numerator of the altitude, which gives results that can be significantly off. Also add unit tests for the GPS related image metadata stuff. Change the existing GPS test to use a fractional altitude (Since this issue isn't appearent if the denominator is 1). Add tests for XMP as well, since XMP had same issue, and has to do same processing as EXIF stuff does. In some future time, may want to consider just converting all exif rational values to real numbers during the extraction process for generally better sanity. Patchset 2: rebase Change-Id: I49032b52a4c840b28e667a6a2b8ae23c508df247 |
||
|---|---|---|
| .. | ||
| 1.result.php | ||
| 1.xmp | ||
| 2.result.php | ||
| 2.xmp | ||
| 3-invalid.result.php | ||
| 3-invalid.xmp | ||
| 3.result.php | ||
| 3.xmp | ||
| 4.result.php | ||
| 4.xmp | ||
| 5.result.php | ||
| 5.xmp | ||
| 6.result.php | ||
| 6.xmp | ||
| 7.result.php | ||
| 7.xmp | ||
| bag-for-seq.result.php | ||
| bag-for-seq.xmp | ||
| flash.result.php | ||
| flash.xmp | ||
| gps.result.php | ||
| gps.xmp | ||
| invalid-child-not-struct.result.php | ||
| invalid-child-not-struct.xmp | ||
| no-namespace.result.php | ||
| no-namespace.xmp | ||
| no-recognized-props.result.php | ||
| no-recognized-props.xmp | ||
| README | ||
| utf16BE.result.php | ||
| utf16BE.xmp | ||
| utf16LE.result.php | ||
| utf16LE.xmp | ||
| utf32BE.result.php | ||
| utf32BE.xmp | ||
| utf32LE.result.php | ||
| utf32LE.xmp | ||
| xmpExt.result.php | ||
| xmpExt.xmp | ||
| xmpExt2.xmp | ||
This directory contains a bunch of XMP files as well as a bunch of php files containing what the parsed version of the XMP looks like.