Hello community,
here is the log from the commit of package laszip for openSUSE:Factory checked in at 2019-07-15 22:43:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/laszip (Old)
and /work/SRC/openSUSE:Factory/.laszip.new.1887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "laszip"
Mon Jul 15 22:43:57 2019 rev:5 rq:714512 version:3.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/laszip/laszip.changes 2019-02-27 17:28:45.691329115 +0100
+++ /work/SRC/openSUSE:Factory/.laszip.new.1887/laszip.changes 2019-07-15 22:43:57.423903127 +0200
@@ -1,0 +2,16 @@
+Wed Jul 10 18:51:45 UTC 2019 - Dirk Stoecker
+
+- update to version 3.4.1
+ * 1024 AC_BUFFER_SIZE to 4096 for propagate_carry() overflow
+ * Fix two small memory leaks
+ * FastAC now properly BSD-licensed.
+ * writer: sanity check for consistent legacy and extended classification
+ * reader: zero the legacy classification whenever extended classification
+ is larger than 31
+ * bug fix when writing 4,294,967,296 or more points uncompressed to LAS
+ * fix for LASzip v4 decompression of WavePacket part of PRDF 9 and 10
+ * upped to 3.2 r9 for bug fix in multi-channel NIR decompression
+ * fix for v4 decompression of WavePacket part of PRDF 9 and 10
+- build fix: use -fPIC instead of -fPIE for library
+
+-------------------------------------------------------------------
Old:
----
laszip-src-3.2.9.tar.gz
laszip-src-3.2.9.tar.gz.md5
New:
----
laszip-src-3.4.1.tar.gz
laszip-src-3.4.1.tar.gz.sha256sum
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ laszip.spec ++++++
--- /var/tmp/diff_new_pack.rZNpOP/_old 2019-07-15 22:43:57.955903000 +0200
+++ /var/tmp/diff_new_pack.rZNpOP/_new 2019-07-15 22:43:57.955903000 +0200
@@ -21,14 +21,14 @@
%define sover 8
Name: laszip
-Version: 3.2.9
+Version: 3.4.1
Release: 0
Summary: Compression library supporting ASPRS LAS format data
License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
-Url: http://www.laszip.org/
+Url: https://laszip.org/
Source0: https://github.com/LASzip/LASzip/releases/download/%{version}/laszip-src-%{version}.tar.gz
-Source1: https://github.com/LASzip/LASzip/releases/download/%{version}/laszip-src-%{version}.tar.gz.md5
+Source1: https://github.com/LASzip/LASzip/releases/download/%{version}/laszip-src-%{version}.tar.gz.sha256sum
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -84,10 +84,10 @@
%build
# laszip need dlopen,dlsym,dlclose
%cmake \
- -DCMAKE_C_FLAGS="%{optflags} -fno-strict-aliasing -fPIE -pie" \
- -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -fno-strict-aliasing -fPIE -pie" \
- -DCMAKE_CXX_FLAGS="%{optflags} -fno-strict-aliasing -fPIE -pie" \
- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -fno-strict-aliasing -fPIE -pie" \
+ -DCMAKE_C_FLAGS="%{optflags} -fno-strict-aliasing -fPIC" \
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -fno-strict-aliasing -fPIC" \
+ -DCMAKE_CXX_FLAGS="%{optflags} -fno-strict-aliasing -fPIC" \
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -fno-strict-aliasing -fPIC" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -Wl,--no-as-needed -ldl"
make V=1 %{?_smp_mflags}
++++++ laszip-src-3.2.9.tar.gz -> laszip-src-3.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/CHANGES.txt new/laszip-src-3.4.1/CHANGES.txt
--- old/laszip-src-3.2.9/CHANGES.txt 2018-11-19 16:56:40.000000000 +0100
+++ new/laszip-src-3.4.1/CHANGES.txt 2019-04-12 21:13:25.000000000 +0200
@@ -1,3 +1,12 @@
+11 April 2019 -- increase AC_BUFFER_SIZE from 1024 to 4096 to lower chance of ultra-rare propagate_carry() overflow
+10 April 2019 -- fix potential memory leaks found by Connor Manning using valgrind
+31 March 2019 -- better license terms for core arithmetic coder thanks to Amir Said. upgrade to version 3.4 rev 0
+20 March 2019 -- upped to 3.3 r1 for checking consistent legacy and extended classification for new point types
+19 March 2019 -- bug fix when decompressing new point types: zero "legacy classification" if "classification" > 31
+ 7 March 2019 -- upped to 3.3 r0 because hobu was suggesting it for the next release
+21 February 2019 -- bug fix when writing 4,294,967,296 or more points uncompressed to LAS
+28 December 2018 -- fix for LASzip v4 decompression of WavePacket part of PRDF 9 and 10
+27 December 2018 -- upped to 3.2 r9 for bug fix in multi-channel NIR decompression
7 November 2018 -- laszip DLL: upped to 3.2 r8 for identical legacy and extended flags check
20 October 2018 -- fixed rare bug in LASinterval::merge_intervals()
5 October 2018 -- laszip DLL: upped to 3.2 r6 for corrected 'is_empty' return value in laszip_inside_rectangle()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/CMakeLists.txt new/laszip-src-3.4.1/CMakeLists.txt
--- old/laszip-src-3.2.9/CMakeLists.txt 2018-12-27 17:38:54.000000000 +0100
+++ new/laszip-src-3.4.1/CMakeLists.txt 2019-04-12 21:13:25.000000000 +0200
@@ -7,7 +7,7 @@
# the next line is the ONLY place in the entire laszip system where
# the version info is hard-coded
-set(LASZIP_API_VERSION_STRING "3.2.9" CACHE STRING "LASzip version" FORCE)
+set(LASZIP_API_VERSION_STRING "3.4.1" CACHE STRING "LASzip version" FORCE)
include (CheckIncludeFileCXX)
include(${ROOT_DIR}/cmake/common.cmake NO_POLICY_SCOPE)
@@ -41,7 +41,7 @@
# libtool SO version naming
# 8.0.0 for 3.2.1
# 9.0.0 for 4.0+
-set(LASZIP_SO_VERSION "8.0.2")
+set(LASZIP_SO_VERSION "8.0.4")
set(LASZIP_COMPATIBILITY_VERSION 8)
check_include_file_cxx ("unordered_map" HAVE_UNORDERED_MAP)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/cleanup.sh new/laszip-src-3.4.1/cleanup.sh
--- old/laszip-src-3.2.9/cleanup.sh 2016-02-27 18:32:30.000000000 +0100
+++ new/laszip-src-3.4.1/cleanup.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-rm -rf CMakeFiles src/CMakeFiles CMakeCache.txt cmake_install.cmake CPackConfig.cmake _CPack_Packages/ CPackSourceConfig.cmake pnacl/CMakeFiles
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/cmake/unix_compiler_options.cmake new/laszip-src-3.4.1/cmake/unix_compiler_options.cmake
--- old/laszip-src-3.2.9/cmake/unix_compiler_options.cmake 2017-09-11 01:43:34.000000000 +0200
+++ new/laszip-src-3.4.1/cmake/unix_compiler_options.cmake 2019-04-12 21:13:25.000000000 +0200
@@ -19,4 +19,4 @@
message(FATAL_ERROR "Unsupported C++ compiler")
endif()
-set (CMAKE_CXX_FLAGS "${LASZIP_COMMON_CXX_FLAGS} ${CXX_STANDARD}")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LASZIP_COMMON_CXX_FLAGS} ${CXX_STANDARD}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/git2cl new/laszip-src-3.4.1/git2cl
--- old/laszip-src-3.2.9/git2cl 2017-10-10 20:47:26.000000000 +0200
+++ new/laszip-src-3.4.1/git2cl 1970-01-01 01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
-#!/usr/bin/php
- 1 ) {
- $author = $bits[0];
- $email = $bits[1];
- $date = $bits[2];
- $message = $bits[3];
-
- $exactDate = date('Y-m-d', strtotime($date));
- $changeLog[$exactDate][] = array(
- 'time' => date('H:i:s', strtotime($date)),
- 'author' => $author,
- 'email' => $email,
- 'message' => $message
- );
- }
-}
-
-reset($changeLog);
-
-foreach ( $changeLog as $entryDate => $entryList ) {
- fwrite(STDOUT, $entryDate . PHP_EOL);
- foreach ( $entryList as $entry ) {
- fwrite(STDOUT, "\t* {$entry['author']} <{$entry['email']}> {$entry['message']} ({$entry['time']})" . PHP_EOL);
- }
- fwrite(STDOUT, PHP_EOL);
-}
-
-function g2c_exit($message) {
- echo $message, PHP_EOL;
- exit(0);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/hobu.sh new/laszip-src-3.4.1/hobu.sh
--- old/laszip-src-3.2.9/hobu.sh 2018-01-02 17:41:06.000000000 +0100
+++ new/laszip-src-3.4.1/hobu.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-rm -rf build
-mkdir build
-cd build
-cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/laszip ..
-make -j 4
-make install
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/install_manifest.txt new/laszip-src-3.4.1/install_manifest.txt
--- old/laszip-src-3.2.9/install_manifest.txt 2017-10-12 17:39:57.000000000 +0200
+++ new/laszip-src-3.4.1/install_manifest.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-/usr/local/lib/liblaszip.3.1.1.dylib
-/usr/local/lib/liblaszip.3.dylib
-/usr/local/lib/liblaszip.dylib
-/usr/local/lib/liblaszip_api.3.1.1.dylib
-/usr/local/lib/liblaszip_api.3.dylib
-/usr/local/lib/liblaszip_api.dylib
-/usr/local/include//laszip/laszip_api.h
-/usr/local/include//laszip/laszip_api_version.h
-/usr/local/include//laszip_api.h
-/usr/local/include//laszip_api_version.h
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/laszip-config.cmake.in new/laszip-src-3.4.1/laszip-config.cmake.in
--- old/laszip-src-3.2.9/laszip-config.cmake.in 2017-10-12 16:05:55.000000000 +0200
+++ new/laszip-src-3.4.1/laszip-config.cmake.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-# - Config file for the lazperf package
-# It defines the following variables
-# LAZPERF_FOUND - Indicates that the module was found
-# LAZPERF_INCLUDE_DIR - Include directory
-
-set(LAZPERF_FOUND TRUE)
-set(LAZPERF_INCLUDE_DIR "@INSTALL_INCLUDE_DIR@")
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/arithmeticdecoder.cpp new/laszip-src-3.4.1/src/arithmeticdecoder.cpp
--- old/laszip-src-3.2.9/src/arithmeticdecoder.cpp 2017-09-11 01:43:38.000000000 +0200
+++ new/laszip-src-3.4.1/src/arithmeticdecoder.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -2,9 +2,9 @@
===============================================================================
FILE: arithmeticdecoder.cpp
-
+
CONTENTS:
-
+
A modular C++ wrapper for an adapted version of Amir Said's FastAC Code.
see: http://www.cipr.rpi.edu/~said/FastAC.html
@@ -22,50 +22,76 @@
This software is distributed WITHOUT ANY WARRANTY and without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
+
CHANGE HISTORY:
-
+
see header file
-
+
===============================================================================
*/
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// Fast arithmetic coding implementation -
-// -> 32-bit variables, 32-bit product, periodic updates, table decoding -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// Version 1.00 - April 25, 2004 -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// WARNING -
-// ========= -
-// -
-// The only purpose of this program is to demonstrate the basic principles -
-// of arithmetic coding. It is provided as is, without any express or -
-// implied warranty, without even the warranty of fitness for any particular -
-// purpose, or that the implementations are correct. -
-// -
-// Permission to copy and redistribute this code is hereby granted, provided -
-// that this warning and copyright notices are not removed or altered. -
-// -
-// Copyright (c) 2004 by Amir Said (said@ieee.org) & -
-// William A. Pearlman (pearlw@ecse.rpi.edu) -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// A description of the arithmetic coding method used here is available in -
-// -
-// Lossless Compression Handbook, ed. K. Sayood -
-// Chapter 5: Arithmetic Coding (A. Said), pp. 101-152, Academic Press, 2003 -
-// -
-// A. Said, Introduction to Arithetic Coding Theory and Practice -
-// HP Labs report HPL-2004-76 - http://www.hpl.hp.com/techreports/ -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// **************************** -
+// ARITHMETIC CODING EXAMPLES -
+// **************************** -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// Fast arithmetic coding implementation -
+// -> 32-bit variables, 32-bit product, periodic updates, table decoding -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// Version 1.00 - April 25, 2004 -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// WARNING -
+// ========= -
+// -
+// The only purpose of this program is to demonstrate the basic principles -
+// of arithmetic coding. The original version of this code can be found in -
+// Digital Signal Compression: Principles and Practice -
+// (Cambridge University Press, 2011, ISBN: 9780511984655) -
+// -
+// Copyright (c) 2019 by Amir Said (said@ieee.org) & -
+// William A. Pearlman (pearlw@ecse.rpi.edu) -
+// -
+// Redistribution and use in source and binary forms, with or without -
+// modification, are permitted provided that the following conditions are -
+// met: -
+// -
+// 1. Redistributions of source code must retain the above copyright notice, -
+// this list of conditions and the following disclaimer. -
+// -
+// 2. Redistributions in binary form must reproduce the above copyright -
+// notice, this list of conditions and the following disclaimer in the -
+// documentation and/or other materials provided with the distribution. -
+// -
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -
+// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER -
+// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -
+// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// A description of the arithmetic coding method used here is available in -
+// -
+// Lossless Compression Handbook, ed. K. Sayood -
+// Chapter 5: Arithmetic Coding (A. Said), pp. 101-152, Academic Press, 2003 -
+// -
+// A. Said, Introduction to Arithetic Coding Theory and Practice -
+// HP Labs report HPL-2004-76 - http://www.hpl.hp.com/techreports/ -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include "arithmeticdecoder.hpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/arithmeticencoder.cpp new/laszip-src-3.4.1/src/arithmeticencoder.cpp
--- old/laszip-src-3.2.9/src/arithmeticencoder.cpp 2015-11-23 23:50:01.000000000 +0100
+++ new/laszip-src-3.4.1/src/arithmeticencoder.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -2,9 +2,9 @@
===============================================================================
FILE: arithmeticencoder.cpp
-
+
CONTENTS:
-
+
A modular C++ wrapper for an adapted version of Amir Said's FastAC Code.
see: http://www.cipr.rpi.edu/~said/FastAC.html
@@ -22,50 +22,76 @@
This software is distributed WITHOUT ANY WARRANTY and without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
+
CHANGE HISTORY:
-
+
see header file
-
+
===============================================================================
*/
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// Fast arithmetic coding implementation -
-// -> 32-bit variables, 32-bit product, periodic updates, table decoding -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// Version 1.00 - April 25, 2004 -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// WARNING -
-// ========= -
-// -
-// The only purpose of this program is to demonstrate the basic principles -
-// of arithmetic coding. It is provided as is, without any express or -
-// implied warranty, without even the warranty of fitness for any particular -
-// purpose, or that the implementations are correct. -
-// -
-// Permission to copy and redistribute this code is hereby granted, provided -
-// that this warning and copyright notices are not removed or altered. -
-// -
-// Copyright (c) 2004 by Amir Said (said@ieee.org) & -
-// William A. Pearlman (pearlw@ecse.rpi.edu) -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -
-// A description of the arithmetic coding method used here is available in -
-// -
-// Lossless Compression Handbook, ed. K. Sayood -
-// Chapter 5: Arithmetic Coding (A. Said), pp. 101-152, Academic Press, 2003 -
-// -
-// A. Said, Introduction to Arithetic Coding Theory and Practice -
-// HP Labs report HPL-2004-76 - http://www.hpl.hp.com/techreports/ -
-// -
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// **************************** -
+// ARITHMETIC CODING EXAMPLES -
+// **************************** -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// Fast arithmetic coding implementation -
+// -> 32-bit variables, 32-bit product, periodic updates, table decoding -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// Version 1.00 - April 25, 2004 -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// WARNING -
+// ========= -
+// -
+// The only purpose of this program is to demonstrate the basic principles -
+// of arithmetic coding. The original version of this code can be found in -
+// Digital Signal Compression: Principles and Practice -
+// (Cambridge University Press, 2011, ISBN: 9780511984655) -
+// -
+// Copyright (c) 2019 by Amir Said (said@ieee.org) & -
+// William A. Pearlman (pearlw@ecse.rpi.edu) -
+// -
+// Redistribution and use in source and binary forms, with or without -
+// modification, are permitted provided that the following conditions are -
+// met: -
+// -
+// 1. Redistributions of source code must retain the above copyright notice, -
+// this list of conditions and the following disclaimer. -
+// -
+// 2. Redistributions in binary form must reproduce the above copyright -
+// notice, this list of conditions and the following disclaimer in the -
+// documentation and/or other materials provided with the distribution. -
+// -
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -
+// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER -
+// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -
+// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+// -
+// A description of the arithmetic coding method used here is available in -
+// -
+// Lossless Compression Handbook, ed. K. Sayood -
+// Chapter 5: Arithmetic Coding (A. Said), pp. 101-152, Academic Press, 2003 -
+// -
+// A. Said, Introduction to Arithetic Coding Theory and Practice -
+// HP Labs report HPL-2004-76 - http://www.hpl.hp.com/techreports/ -
+// -
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include "arithmeticencoder.hpp"
@@ -301,8 +327,8 @@
else
p--;
assert(outbuffer <= p);
- assert(p < endbuffer);
- assert(outbyte < endbuffer);
+ assert(p < endbuffer);
+ assert(outbyte < endbuffer);
}
++*p;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/arithmeticmodel.hpp new/laszip-src-3.4.1/src/arithmeticmodel.hpp
--- old/laszip-src-3.2.9/src/arithmeticmodel.hpp 2015-11-23 23:50:01.000000000 +0100
+++ new/laszip-src-3.4.1/src/arithmeticmodel.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -14,7 +14,7 @@
COPYRIGHT:
- (c) 2007-2014, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -25,6 +25,7 @@
CHANGE HISTORY:
+ 11 April 2019 -- 1024 AC_BUFFER_SIZE to 4096 for propagate_carry() overflow
10 January 2011 -- licensing change for LGPL release and liblas integration
8 December 2010 -- unified framework for all entropy coders
30 October 2009 -- refactoring Amir Said's FastAC code
@@ -41,7 +42,7 @@
/* this header byte needs to change in case incompatible change happen */
#define AC_HEADER_BYTE 2
-#define AC_BUFFER_SIZE 1024
+#define AC_BUFFER_SIZE 4096
const U32 AC__MinLength = 0x01000000U; // threshold for renormalization
const U32 AC__MaxLength = 0xFFFFFFFFU; // maximum AC interval length
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/bytestreamout_array.hpp new/laszip-src-3.4.1/src/bytestreamout_array.hpp
--- old/laszip-src-3.2.9/src/bytestreamout_array.hpp 2017-09-11 01:43:38.000000000 +0200
+++ new/laszip-src-3.4.1/src/bytestreamout_array.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -11,7 +11,7 @@
COPYRIGHT:
- (c) 2007-2016, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -22,6 +22,8 @@
CHANGE HISTORY:
+ 11 April 2019 -- increase default alloc from 1024 bytes to 4096 bytes
+ 10 April 2019 -- fix potential memory leak found by Connor Manning's valgrind
22 June 2016 -- access to current size for "native LAS 1.4 compressor"
19 July 2015 -- moved from LASlib to LASzip for "compatibility mode" in DLL
9 April 2012 -- created after cooking Zuccini/Onion/Potatoe dinner for Mara
@@ -39,7 +41,7 @@
class ByteStreamOutArray : public ByteStreamOut
{
public:
- ByteStreamOutArray(I64 alloc=1024);
+ ByteStreamOutArray(I64 alloc=4096);
/* write a single byte */
BOOL putByte(U8 byte);
/* write an array of bytes */
@@ -53,7 +55,7 @@
/* seek to the end of the file */
BOOL seekEnd();
/* destructor */
- ~ByteStreamOutArray(){};
+ ~ByteStreamOutArray() { if (data) free(data); };
/* get access to data */
inline I64 getSize() const { return size; };
inline I64 getCurr() const { return curr; };
@@ -69,7 +71,7 @@
class ByteStreamOutArrayLE : public ByteStreamOutArray
{
public:
- ByteStreamOutArrayLE(I64 alloc=1024);
+ ByteStreamOutArrayLE(I64 alloc=4096);
/* write 16 bit low-endian field */
BOOL put16bitsLE(const U8* bytes);
/* write 32 bit low-endian field */
@@ -89,7 +91,7 @@
class ByteStreamOutArrayBE : public ByteStreamOutArray
{
public:
- ByteStreamOutArrayBE(I64 alloc=1024);
+ ByteStreamOutArrayBE(I64 alloc=4096);
/* write 16 bit low-endian field */
BOOL put16bitsLE(const U8* bytes);
/* write 32 bit low-endian field */
@@ -109,7 +111,7 @@
inline ByteStreamOutArray::ByteStreamOutArray(I64 alloc)
{
this->data = (U8*)malloc((U32)alloc);
- this->alloc = 1024;
+ this->alloc = alloc;
this->size = 0;
this->curr = 0;
}
@@ -118,7 +120,7 @@
{
if (curr == alloc)
{
- alloc += 1024;
+ alloc += 4096;
data = (U8*)realloc(data, (U32)alloc);
if (data == 0)
{
@@ -135,7 +137,7 @@
{
if ((curr+num_bytes) > alloc)
{
- alloc += (1024+num_bytes);
+ alloc += (4096+num_bytes);
data = (U8*)realloc(data, (U32)alloc);
if (data == 0)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/lasattributer.hpp new/laszip-src-3.4.1/src/lasattributer.hpp
--- old/laszip-src-3.2.9/src/lasattributer.hpp 2018-11-19 16:56:40.000000000 +0100
+++ new/laszip-src-3.4.1/src/lasattributer.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -145,6 +145,9 @@
inline BOOL set_scale(F64 scale) { if (data_type) { this->scale[0] = scale; options |= 0x08; return TRUE; } return FALSE; };
inline BOOL set_offset(F64 offset) { if (data_type) { this->offset[0] = offset; options |= 0x10; return TRUE; } return FALSE; };
+ inline BOOL unset_scale() { if (data_type) { options &= (~0x08); return TRUE; } return FALSE; };
+ inline BOOL unset_offset() { if (data_type) { options &= (~0x10); return TRUE; } return FALSE; };
+
inline BOOL has_no_data() const { return options & 0x01; };
inline BOOL has_min() const { return options & 0x02; };
inline BOOL has_max() const { return options & 0x04; };
@@ -156,8 +159,9 @@
if (data_type)
{
const U32 size_table[10] = { 1, 1, 2, 2, 4, 4, 8, 8, 4, 8 };
- U32 type = get_type();
- return size_table[type];
+ I32 type = get_type();
+ I32 dim = get_dim();
+ return size_table[type] * dim;
}
else
{
@@ -165,31 +169,100 @@
}
};
- inline F64 get_value_as_float(U8* value) const
+ inline F64 get_value_as_float(U8* pointer) const
{
- F64 casted_value;
+ F64 cast_value;
I32 type = get_type();
if (type == 0)
- casted_value = (F64)*((U8*)value);
+ cast_value = (F64)*((U8*)pointer);
else if (type == 1)
- casted_value = (F64)*((I8*)value);
+ cast_value = (F64)*((I8*)pointer);
else if (type == 2)
- casted_value = (F64)*((U16*)value);
+ cast_value = (F64)*((U16*)pointer);
else if (type == 3)
- casted_value = (F64)*((I16*)value);
+ cast_value = (F64)*((I16*)pointer);
else if (type == 4)
- casted_value = (F64)*((U32*)value);
+ cast_value = (F64)*((U32*)pointer);
else if (type == 5)
- casted_value = (F64)*((I32*)value);
+ cast_value = (F64)*((I32*)pointer);
else if (type == 6)
- casted_value = (F64)(I64)*((U64*)value);
+ cast_value = (F64)(I64)*((U64*)pointer);
else if (type == 7)
- casted_value = (F64)*((I64*)value);
+ cast_value = (F64)*((I64*)pointer);
else if (type == 8)
- casted_value = (F64)*((F32*)value);
+ cast_value = (F64)*((F32*)pointer);
else
- casted_value = *((F64*)value);
- return offset[0]+scale[0]*casted_value;
+ cast_value = *((F64*)pointer);
+ if (options & 0x08)
+ {
+ if (options & 0x10)
+ {
+ return offset[0]+scale[0]*cast_value;
+ }
+ else
+ {
+ return scale[0]*cast_value;
+ }
+ }
+ else
+ {
+ if (options & 0x10)
+ {
+ return offset[0]+cast_value;
+ }
+ else
+ {
+ return cast_value;
+ }
+ }
+ };
+
+ inline void set_value_as_float(U8* pointer, F64 value) const
+ {
+ F64 unoffset_and_unscaled_value;
+ if (options & 0x08)
+ {
+ if (options & 0x10)
+ {
+ unoffset_and_unscaled_value = (value - offset[0])/scale[0];
+ }
+ else
+ {
+ unoffset_and_unscaled_value = value/scale[0];
+ }
+ }
+ else
+ {
+ if (options & 0x10)
+ {
+ unoffset_and_unscaled_value = value - offset[0];
+ }
+ else
+ {
+ unoffset_and_unscaled_value = value;
+ }
+ }
+ I32 type = get_type();
+ if (type == 0)
+ *((U8*)pointer) = U8_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 1)
+ *((I8*)pointer) = I8_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 2)
+ *((U16*)pointer) = U16_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 3)
+ *((I16*)pointer) = I16_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 4)
+ *((U32*)pointer) = U32_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 5)
+ *((I32*)pointer) = U32_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 6)
+ *((U64*)pointer) = U64_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 7)
+ *((I64*)pointer) = I64_QUANTIZE(unoffset_and_unscaled_value);
+ else if (type == 8)
+ *((F32*)pointer) = (F32)unoffset_and_unscaled_value;
+ else
+ *((F64*)pointer) = unoffset_and_unscaled_value;
};
private:
@@ -197,35 +270,35 @@
{
return ((I32)data_type - 1)%10;
};
- inline I32 get_dim() const
+ inline I32 get_dim() const // compute dimension of deprecated tuple and triple attributes
{
- return 1;
+ return ((I32)data_type - 1)/10 + 1;
};
- inline U64I64F64 cast(U8* value) const
+ inline U64I64F64 cast(U8* pointer) const
{
I32 type = get_type();
- U64I64F64 casted_value;
+ U64I64F64 cast_value;
if (type == 0)
- casted_value.u64 = *((U8*)value);
+ cast_value.u64 = *((U8*)pointer);
else if (type == 1)
- casted_value.i64 = *((I8*)value);
+ cast_value.i64 = *((I8*)pointer);
else if (type == 2)
- casted_value.u64 = *((U16*)value);
+ cast_value.u64 = *((U16*)pointer);
else if (type == 3)
- casted_value.i64 = *((I16*)value);
+ cast_value.i64 = *((I16*)pointer);
else if (type == 4)
- casted_value.u64 = *((U32*)value);
+ cast_value.u64 = *((U32*)pointer);
else if (type == 5)
- casted_value.i64 = *((I32*)value);
+ cast_value.i64 = *((I32*)pointer);
else if (type == 6)
- casted_value.u64 = *((U64*)value);
+ cast_value.u64 = *((U64*)pointer);
else if (type == 7)
- casted_value.i64 = *((I64*)value);
+ cast_value.i64 = *((I64*)pointer);
else if (type == 8)
- casted_value.f64 = *((F32*)value);
+ cast_value.f64 = *((F32*)pointer);
else
- casted_value.f64 = *((F64*)value);
- return casted_value;
+ cast_value.f64 = *((F64*)pointer);
+ return cast_value;
};
inline U64I64F64 smallest(U64I64F64 a, U64I64F64 b) const
{
@@ -431,6 +504,15 @@
return -1;
}
+ const CHAR* get_attribute_name(I32 index) const
+ {
+ if (index < number_attributes)
+ {
+ return attributes[index].name;
+ }
+ return 0;
+ }
+
BOOL remove_attribute(I32 index)
{
if (index < 0 || index >= number_attributes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laspoint.hpp new/laszip-src-3.4.1/src/laspoint.hpp
--- old/laszip-src-3.2.9/src/laspoint.hpp 2018-11-19 16:56:40.000000000 +0100
+++ new/laszip-src-3.4.1/src/laspoint.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -694,6 +694,14 @@
return 0.0;
};
+ inline void set_attribute_as_float(U32 index, F64 value) const
+ {
+ if (has_attribute(index))
+ {
+ attributer->attributes[index].set_value_as_float(extra_bytes + attributer->attribute_starts[index], value);
+ }
+ };
+
// typed and offset functions for attributes in extra bytes (more efficient)
inline void get_attribute(I32 start, U8 &data) const { data = extra_bytes[start]; };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/lasreaditemcompressed_v3.cpp new/laszip-src-3.4.1/src/lasreaditemcompressed_v3.cpp
--- old/laszip-src-3.2.9/src/lasreaditemcompressed_v3.cpp 2018-12-27 17:38:16.000000000 +0100
+++ new/laszip-src-3.4.1/src/lasreaditemcompressed_v3.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -893,11 +893,15 @@
}
((LASpoint14*)last_item)->classification = dec_classification->decodeSymbol(contexts[current_context].m_classification[ccc]);
- // legacy copies
+ // update the legacy copy
if (((LASpoint14*)last_item)->classification < 32)
{
((LASpoint14*)last_item)->legacy_classification = ((LASpoint14*)last_item)->classification;
}
+ else
+ {
+ ((LASpoint14*)last_item)->legacy_classification = 0;
+ }
}
////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/lasreaditemcompressed_v3.hpp new/laszip-src-3.4.1/src/lasreaditemcompressed_v3.hpp
--- old/laszip-src-3.2.9/src/lasreaditemcompressed_v3.hpp 2017-09-11 01:43:38.000000000 +0200
+++ new/laszip-src-3.4.1/src/lasreaditemcompressed_v3.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -13,7 +13,7 @@
COPYRIGHT:
- (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -24,6 +24,7 @@
CHANGE HISTORY:
+ 19 March 2019 -- set "legacy classification" to zero if "classification > 31"
28 August 2017 -- moving 'context' from global development hack to interface
19 April 2017 -- support for selective decompression for new LAS 1.4 points
22 June 2016 -- created after Island beat Austria 2:1 in the EM2016
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/lasreaditemcompressed_v4.cpp new/laszip-src-3.4.1/src/lasreaditemcompressed_v4.cpp
--- old/laszip-src-3.2.9/src/lasreaditemcompressed_v4.cpp 2018-05-06 20:00:18.000000000 +0200
+++ new/laszip-src-3.4.1/src/lasreaditemcompressed_v4.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -893,11 +893,15 @@
}
((LASpoint14*)last_item)->classification = dec_classification->decodeSymbol(contexts[current_context].m_classification[ccc]);
- // legacy copies
+ // update the legacy copy
if (((LASpoint14*)last_item)->classification < 32)
{
((LASpoint14*)last_item)->legacy_classification = ((LASpoint14*)last_item)->classification;
}
+ else
+ {
+ ((LASpoint14*)last_item)->legacy_classification = 0;
+ }
}
////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/lasreaditemcompressed_v4.hpp new/laszip-src-3.4.1/src/lasreaditemcompressed_v4.hpp
--- old/laszip-src-3.2.9/src/lasreaditemcompressed_v4.hpp 2018-02-12 21:56:09.000000000 +0100
+++ new/laszip-src-3.4.1/src/lasreaditemcompressed_v4.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -13,7 +13,7 @@
COPYRIGHT:
- (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -24,6 +24,7 @@
CHANGE HISTORY:
+ 19 March 2019 -- set "legacy classification" to zero if "classification > 31"
28 December 2017 -- fix incorrect 'context switch' reported by Wanwannodao
28 August 2017 -- moving 'context' from global development hack to interface
19 April 2017 -- support for selective decompression for new LAS 1.4 points
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laswritepoint.cpp new/laszip-src-3.4.1/src/laswritepoint.cpp
--- old/laszip-src-3.2.9/src/laswritepoint.cpp 2018-02-12 21:56:09.000000000 +0100
+++ new/laszip-src-3.4.1/src/laswritepoint.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -13,7 +13,7 @@
COPYRIGHT:
- (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -300,26 +300,34 @@
if (chunk_count == chunk_size)
{
- if (layered_las14_compression)
+ if (enc)
{
- // write how many points are in the chunk
- outstream->put32bitsLE((U8*)&chunk_count);
- // write all layers
- for (i = 0; i < num_writers; i++)
+ if (layered_las14_compression)
{
- ((LASwriteItemCompressed*)writers[i])->chunk_sizes();
+ // write how many points are in the chunk
+ outstream->put32bitsLE((U8*)&chunk_count);
+ // write all layers
+ for (i = 0; i < num_writers; i++)
+ {
+ ((LASwriteItemCompressed*)writers[i])->chunk_sizes();
+ }
+ for (i = 0; i < num_writers; i++)
+ {
+ ((LASwriteItemCompressed*)writers[i])->chunk_bytes();
+ }
}
- for (i = 0; i < num_writers; i++)
+ else
{
- ((LASwriteItemCompressed*)writers[i])->chunk_bytes();
+ enc->done();
}
+ add_chunk_to_table();
+ init(outstream);
}
else
{
- enc->done();
+ // happens *only* for uncompressed LAS with over U32_MAX points
+ assert(chunk_size == U32_MAX);
}
- add_chunk_to_table();
- init(outstream);
chunk_count = 0;
}
chunk_count++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laswritepoint.hpp new/laszip-src-3.4.1/src/laswritepoint.hpp
--- old/laszip-src-3.2.9/src/laswritepoint.hpp 2017-09-11 01:43:38.000000000 +0200
+++ new/laszip-src-3.4.1/src/laswritepoint.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -13,7 +13,7 @@
COPYRIGHT:
- (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -24,6 +24,7 @@
CHANGE HISTORY:
+ 21 February 2019 -- fix for writing 4294967295+ points uncompressed to LAS
28 August 2017 -- moving 'context' from global development hack to interface
23 August 2016 -- layering of items for selective decompression in LAS 1.4
6 September 2014 -- removed inheritance of EntropyEncoder and EntropyDecoder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laszip.cpp new/laszip-src-3.4.1/src/laszip.cpp
--- old/laszip-src-3.2.9/src/laszip.cpp 2018-02-12 21:56:09.000000000 +0100
+++ new/laszip-src-3.4.1/src/laszip.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -258,7 +258,7 @@
break;
case LASitem::WAVEPACKET14:
if (item->size != 29) return return_error("WAVEPACKET14 has size != 29");
- if ((item->version != 0) && (item->version != 3)) return return_error("WAVEPACKET14 has version != 0 and != 3 and != 4"); // version == 4 fixes context-switch
+ if ((item->version != 0) && (item->version != 3) && (item->version != 4)) return return_error("WAVEPACKET14 has version != 0 and != 3 and != 4"); // version == 4 fixes context-switch
break;
default:
if (1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laszip.hpp new/laszip-src-3.4.1/src/laszip.hpp
--- old/laszip-src-3.2.9/src/laszip.hpp 2018-12-27 17:38:16.000000000 +0100
+++ new/laszip-src-3.4.1/src/laszip.hpp 2019-04-12 21:13:25.000000000 +0200
@@ -14,7 +14,7 @@
COPYRIGHT:
- (c) 2007-2018, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -25,11 +25,14 @@
CHANGE HISTORY:
+ 20 March 2019 -- upped to 3.3 r1 for consistent legacy and extended class check
+ 21 February 2019 -- bug fix when writing 4294967295+ points uncompressed to LAS
+ 28 December 2018 -- fix for v4 decompression of WavePacket part of PRDF 9 and 10
27 December 2018 -- upped to 3.2 r9 for bug fix in multi-channel NIR decompression
7 November 2018 -- upped to 3.2 r8 for identical legacy and extended flags check
20 October 2018 -- upped to 3.2 r7 for rare bug in LASinterval::merge_intervals()
5 October 2018 -- upped to 3.2 r6 for corrected 'is_empty' return value
- 28 September 2018 -- upped to 3.2 r5 for fix in extended classification writing
+ 28 September 2018 -- upped to 3.2 r5 for fix in extended classification writing
9 February 2018 -- minor version increment as it can read v4 compressed items
28 December 2017 -- fix incorrect 'context switch' reported by Wanwannodao
23 August 2017 -- minor version increment for C++ stream-based read/write API
@@ -70,9 +73,9 @@
#endif
#define LASZIP_VERSION_MAJOR 3
-#define LASZIP_VERSION_MINOR 2
-#define LASZIP_VERSION_REVISION 9
-#define LASZIP_VERSION_BUILD_DATE 181227
+#define LASZIP_VERSION_MINOR 4
+#define LASZIP_VERSION_REVISION 1
+#define LASZIP_VERSION_BUILD_DATE 190411
#define LASZIP_COMPRESSOR_NONE 0
#define LASZIP_COMPRESSOR_POINTWISE 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/src/laszip_dll.cpp new/laszip-src-3.4.1/src/laszip_dll.cpp
--- old/laszip-src-3.2.9/src/laszip_dll.cpp 2018-11-19 16:56:40.000000000 +0100
+++ new/laszip-src-3.4.1/src/laszip_dll.cpp 2019-04-12 21:13:25.000000000 +0200
@@ -13,7 +13,7 @@
COPYRIGHT:
- (c) 2007-2017, martin isenburg, rapidlasso - fast tools to catch reality
+ (c) 2007-2019, martin isenburg, rapidlasso - fast tools to catch reality
This is free software; you can redistribute and/or modify it under the
terms of the GNU Lesser General Licence as published by the Free Software
@@ -24,6 +24,7 @@
CHANGE HISTORY:
+ 20 March 2019 -- check consistent legacy and extended classification in laszip_write_point()
7 November 2018 -- assure identical legacy and extended flags in laszip_write_point()
20 October 2018 -- changed (U8*) to (const U8*) for all out->put___() calls
5 October 2018 -- corrected 'is_empty' return value in laszip_inside_rectangle()
@@ -2793,7 +2794,13 @@
// compute offsets (or points item pointers) for data transfer from the point items
+ if (laszip_dll->point_items)
+ {
+ delete [] laszip_dll->point_items;
+ }
+
laszip_dll->point_items = new U8*[laszip->num_items];
+
if (laszip_dll->point_items == 0)
{
sprintf(laszip_dll->error, "could not alloc point_items");
@@ -3027,6 +3034,16 @@
sprintf(laszip_dll->error, "legacy flags and extended flags are not identical");
return 1;
}
+
+ // make sure legacy classification is zero or identical to extended classification
+ if (laszip_dll->point.classification != 0)
+ {
+ if (laszip_dll->point.classification != laszip_dll->point.extended_classification)
+ {
+ sprintf(laszip_dll->error, "legacy classification %d and extended classification %d are not consistent", laszip_dll->point.classification, laszip_dll->point.extended_classification);
+ return 1;
+ }
+ }
}
// special recoding of points (in compatibility mode only)
@@ -3960,6 +3977,11 @@
}
// create point's item pointers
+
+ if (laszip_dll->point_items)
+ {
+ delete [] laszip_dll->point_items;
+ }
laszip_dll->point_items = new U8*[laszip->num_items];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laszip-src-3.2.9/tools/laszip.pc new/laszip-src-3.4.1/tools/laszip.pc
--- old/laszip-src-3.2.9/tools/laszip.pc 2017-09-11 17:31:13.000000000 +0200
+++ new/laszip-src-3.4.1/tools/laszip.pc 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-prefix=/tmp/lasjunk
-exec_prefix=/tmp/lasjunk
-libdir=/tmp/lasjunk/
-includedir=/tmp/lasjunk/
-
-Name: LASzip
-Description: Library (C/C++) and tools for the LAS LiDAR compression
-Requires:
-Version: 3.1.0
-Libs: -L${libdir} -llaszip
-Cflags: -I${includedir}/laszip $CMAKE_CXX_FLAGS
-
++++++ laszip-src-3.4.1.tar.gz.sha256sum ++++++
5d9b0ffaf8b7319c2fa216da3f3f878bb8f4e5b4b14d2c154d441a351da2be37 laszip-src-3.4.1.tar.gz