summaryrefslogtreecommitdiff
blob: 80dac5bfc6f140d3ae287322e8a2cb083e0a254f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>
        Changes in TIFF v4.1.0
</TITLE>
<STYLE TYPE="text/css">
body {
    font-family: Helvetica, Arial, Sans;
}
table, th, td {
    border: 1px solid black;
    border-collapse: collapse;
}
th, td {
    padding: 8pt;
    text-align: center;
}
th {
    text-align: center;
}
td {
    text-align: center;
}

ul li {
    padding: 3pt;
}

ul.a {
    list-style-type: circle;
}

ul.b {
    list-style-type: square;
}

ol.c {
    list-style-type: upper-roman;
}

ol.d {
    list-style-type: lower-alpha;
}

hr {
    width: 65%;
}

</STYLE>
</HEAD>

<BODY BGCOLOR=white>

<BASEFONT SIZE=4>
<B><FONT SIZE="+3">T</FONT>IFF <FONT SIZE="+2">C</FONT>HANGE <FONT SIZE="+2">I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<div style="margin-left: 3em">
<HR SIZE=4 ALIGN=left>
<B>Current Version</B>: v4.1.0<BR>
<B>Previous Version</B>: <A HREF=v4.0.10.html>v4.0.10</a><BR>
<B>Master Download Site</B>: <A HREF="https://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff<<BR>
<B>Master HTTP Site #1</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a><BR>
<B>Master HTTP Site #2</B>: <A HREF="http://libtiff.maptools.org/">
http://libtiff.maptools.org/</a>
<HR SIZE=4 ALIGN=left>
</div>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here. A change summary is also provided by the
ChangeLog file included in the release package and by the Git commit
history:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p>
<P><HR ALIGN=left>

<!-- ============================================================= -->

<A NAME="highlights"><B><FONT SIZE="+3">M</FONT>AJOR CHANGES:</B></A>

<UL>

  <LI>Make defer strile offset/bytecount loading available at runtime
    and add per-strile offset/bytecount loading capabilities. Part of
    this commit makes the behaviour that was previously met when libtiff
    was compiled with -DDEFER_STRILE_LOAD available for default builds
    when specifying the new 'D' (Deferred) TIFFOpen() flag. In that
    mode, the [Tile/Strip][ByteCounts/Offsets] arrays are only loaded
    when first accessed. This can speed-up the opening of files stored
    on the network when just metadata retrieval is needed.

    Another addition is the capability of loading only the values of
    the offset/bytecount of the strile of interest instead of the
    whole array. This is enabled with the new 'O' (Ondemand) flag of
    TIFFOpen() (which implies 'D').

    The public TIFFGetStrileOffset[WithErr]() and
    TIFFGetStrileByteCount[WithErr]() functions have been added to
    API. They are of particular interest when using sparse files (with
    offset == bytecount == 0) and you want to detect if a strile is
    present or not without decompressing the data, or updating an
    existing sparse file.
  </LI>

  <LI>The BigTIFF writer now optimizes file size by using 32-bit LONG
    values (rather than 64-bit) where it is reasonable and safe to do
    so.  Likewise, the 16-bit SHORT type is used when possible for
    StripByteCounts/TileByteCounts.
  </LI>

</UL>


<P><HR ALIGN=left>
<!-- ============================================================= -->

<A NAME="configure"><B><FONT SIZE="+3">C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI>The WIN32 build now uses tif_win32.c when building with CMake.</LI>

  <LI>Properly set value of HOST_FILLORDER to LSB2MSB for Windows
  CMake builds.  It was not being properly set!</LI>

</UL>

<P><HR ALIGN=left>

<!-- ============================================================= -->

<A NAME="libtiff"><B><FONT SIZE="+3">C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

  <LI>
    Changes in the libtiff library may be viewed on-line
    at <A HREF="https://gitlab.com/libtiff/libtiff/commits/master/libtiff">Libtiff
    Library Commits</A>.
  </LI>

  <LI>
    New function TIFFReadFromUserBuffer() which replaces the use of
    TIFFReadEncodedStrip()/TIFFReadEncodedTile() when the user can
    provide the buffer for the input data, for example when he wants
    to avoid libtiff to read the strile offset/count values from the
    [Strip|Tile][Offsets/ByteCounts] array.
  </LI>

  <LI>
    New functions TIFFDeferStrileArrayWriting() and TIFFForceStrileArrayWriting()
    Those advanced writing functions must be used in a particular sequence
    to make their intended effect. Their aim is to control when/where
    the [Strip/Tile][Offsets/ByteCounts] arrays are written into the file.

    The purpose of this is to generate 'cloud-optimized geotiff' files where
    the first KB of the file only contain the IFD entries without the potentially
    large strile arrays. Those are written afterwards.
  </LI>

</UL>

<P><HR ALIGN=left>

<!-- ============================================================= -->

<A NAME="tools"><B><FONT SIZE="+3">C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <LI>Changes in the libtiff utilities may be viewed on-line
  at <A HREF="https://gitlab.com/libtiff/libtiff/commits/master/tools">Libtiff
  Tools Commits</A></LI>

</UL>

<P><HR ALIGN=left>

<!-- ============================================================= -->

<A NAME="contrib"><B><FONT SIZE="+3">C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL>

  <LI>Changes in the libtiff contrib area may be viewed on-line
  at <A HREF="https://gitlab.com/libtiff/libtiff/commits/master/contrib">Libtiff
  Contrib Commits</A></LI>

</UL>

</BODY>
</HTML>