]>
Commit | Line | Data |
---|---|---|
32cb9bc6 JP |
1 | From 571c8dd95c455804d9ede351d53b3eea8d47564b Mon Sep 17 00:00:00 2001 |
2 | From: Larry Gritz <lg@larrygritz.com> | |
3 | Date: Fri, 3 Apr 2020 09:47:07 -0700 | |
4 | Subject: [PATCH] Protect against double definitions of GPSTAG values. (#2539) | |
5 | ||
6 | Prerelease snapshots of libtiff now define these in tiff.h. | |
7 | --- | |
8 | src/libOpenImageIO/exif.cpp | 70 ++++++++++++++++++++----------------- | |
9 | 1 file changed, 37 insertions(+), 33 deletions(-) | |
10 | ||
11 | diff --git a/src/libOpenImageIO/exif.cpp b/src/libOpenImageIO/exif.cpp | |
12 | index d997f4c16e..51cb9ef911 100644 | |
13 | --- a/src/libOpenImageIO/exif.cpp | |
14 | +++ b/src/libOpenImageIO/exif.cpp | |
15 | @@ -528,40 +528,44 @@ pvt::exif_tagmap_ref() | |
16 | ||
17 | ||
18 | ||
19 | +// libtiff > 4.1.0 defines these in tiff.h. For older libtiff, let's define | |
20 | +// them ourselves. | |
21 | +#ifndef GPSTAG_VERSIONID | |
22 | enum GPSTag { | |
23 | - GPSTAG_VERSIONID = 0, | |
24 | - GPSTAG_LATITUDEREF = 1, | |
25 | - GPSTAG_LATITUDE = 2, | |
26 | - GPSTAG_LONGITUDEREF = 3, | |
27 | - GPSTAG_LONGITUDE = 4, | |
28 | - GPSTAG_ALTITUDEREF = 5, | |
29 | - GPSTAG_ALTITUDE = 6, | |
30 | - GPSTAG_TIMESTAMP = 7, | |
31 | - GPSTAG_SATELLITES = 8, | |
32 | - GPSTAG_STATUS = 9, | |
33 | - GPSTAG_MEASUREMODE = 10, | |
34 | - GPSTAG_DOP = 11, | |
35 | - GPSTAG_SPEEDREF = 12, | |
36 | - GPSTAG_SPEED = 13, | |
37 | - GPSTAG_TRACKREF = 14, | |
38 | - GPSTAG_TRACK = 15, | |
39 | - GPSTAG_IMGDIRECTIONREF = 16, | |
40 | - GPSTAG_IMGDIRECTION = 17, | |
41 | - GPSTAG_MAPDATUM = 18, | |
42 | - GPSTAG_DESTLATITUDEREF = 19, | |
43 | - GPSTAG_DESTLATITUDE = 20, | |
44 | - GPSTAG_DESTLONGITUDEREF = 21, | |
45 | - GPSTAG_DESTLONGITUDE = 22, | |
46 | - GPSTAG_DESTBEARINGREF = 23, | |
47 | - GPSTAG_DESTBEARING = 24, | |
48 | - GPSTAG_DESTDISTANCEREF = 25, | |
49 | - GPSTAG_DESTDISTANCE = 26, | |
50 | - GPSTAG_PROCESSINGMETHOD = 27, | |
51 | - GPSTAG_AREAINFORMATION = 28, | |
52 | - GPSTAG_DATESTAMP = 29, | |
53 | - GPSTAG_DIFFERENTIAL = 30, | |
54 | - GPSTAG_HPOSITIONINGERROR = 31 | |
55 | + GPSTAG_VERSIONID = 0, | |
56 | + GPSTAG_LATITUDEREF = 1, | |
57 | + GPSTAG_LATITUDE = 2, | |
58 | + GPSTAG_LONGITUDEREF = 3, | |
59 | + GPSTAG_LONGITUDE = 4, | |
60 | + GPSTAG_ALTITUDEREF = 5, | |
61 | + GPSTAG_ALTITUDE = 6, | |
62 | + GPSTAG_TIMESTAMP = 7, | |
63 | + GPSTAG_SATELLITES = 8, | |
64 | + GPSTAG_STATUS = 9, | |
65 | + GPSTAG_MEASUREMODE = 10, | |
66 | + GPSTAG_DOP = 11, | |
67 | + GPSTAG_SPEEDREF = 12, | |
68 | + GPSTAG_SPEED = 13, | |
69 | + GPSTAG_TRACKREF = 14, | |
70 | + GPSTAG_TRACK = 15, | |
71 | + GPSTAG_IMGDIRECTIONREF = 16, | |
72 | + GPSTAG_IMGDIRECTION = 17, | |
73 | + GPSTAG_MAPDATUM = 18, | |
74 | + GPSTAG_DESTLATITUDEREF = 19, | |
75 | + GPSTAG_DESTLATITUDE = 20, | |
76 | + GPSTAG_DESTLONGITUDEREF = 21, | |
77 | + GPSTAG_DESTLONGITUDE = 22, | |
78 | + GPSTAG_DESTBEARINGREF = 23, | |
79 | + GPSTAG_DESTBEARING = 24, | |
80 | + GPSTAG_DESTDISTANCEREF = 25, | |
81 | + GPSTAG_DESTDISTANCE = 26, | |
82 | + GPSTAG_PROCESSINGMETHOD = 27, | |
83 | + GPSTAG_AREAINFORMATION = 28, | |
84 | + GPSTAG_DATESTAMP = 29, | |
85 | + GPSTAG_DIFFERENTIAL = 30, | |
86 | + GPSTAG_GPSHPOSITIONINGERROR = 31 | |
87 | }; | |
88 | +#endif | |
89 | ||
90 | static const TagInfo gps_tag_table[] = { | |
91 | // clang-format off | |
92 | @@ -596,7 +600,7 @@ static const TagInfo gps_tag_table[] = { | |
93 | { GPSTAG_AREAINFORMATION, "GPS:AreaInformation", TIFF_UNDEFINED, 1 }, | |
94 | { GPSTAG_DATESTAMP, "GPS:DateStamp", TIFF_ASCII, 0 }, | |
95 | { GPSTAG_DIFFERENTIAL, "GPS:Differential", TIFF_SHORT, 1 }, | |
96 | - { GPSTAG_HPOSITIONINGERROR, "GPS:HPositioningError",TIFF_RATIONAL, 1 } | |
97 | + { GPSTAG_GPSHPOSITIONINGERROR, "GPS:HPositioningError",TIFF_RATIONAL, 1 } | |
98 | // clang-format on | |
99 | }; | |
100 |