libmseed 2.18 released

Added by Chad Trabant about 7 years ago

Highlights of changes:

  • Support for much larger range of sample rates. Outside of the range 32767 to 1/32767 integer sample rates are approximated whenever possible.
  • Rewrite of all decoding and encoding routines to replace those used from qlib2, now the entire project is LGPL licensed.

ChangeLog since 2.17:

        - Remove limitation on sample rate before calling ms_genfactmult()
        in the normal path of packing records.  Previously generating the
        factor and multiplier was not attempted for rates higher than
        - ms_genfactmult() now support a much larger range of integer
        sample rates and periods.
        - ms_genfactmult() now sets the factor and multiplier using the
        SECONDS/SAMPLE notation for sample rates less than 1.0 to retain
        precision for low rates.
        - ms_genfactmult() now assumes the specified rate is a sample
        period in seconds if the samprate value is negative.
        - Add ms_rsqrt64() as a general use reciprocal sqrt for doubles.
        - Use memcpy() instead of assignment when unpacking float32 and
        float64 samples to avoid problems with NaN's.  Thanks Lion Krischer.
        - Add test for reading records without Blockette 1000.
        - Reformat all source code using included clang-format profile.
        - A more elegant sanity check for output length in packing by mbyt.
        - Improvements for test suite, more consistency.
        - Remove msr_decode_steim? from libmseed.def, they are internal.
        - Add sanity to length check before memset calls in packing functions.
        - Check for environment variables ENCODE_DEBUG and DECODE_DEBUG
        and set debugging output, at this point it is Steim frame details
        and differences being encoded/decoded.
        - Fix padding in steim[12] encoding routines.
        - Remove unneeded output buffer checks in steim[12] decoding routines.
        - Replace data sample packing and unpacking routines from qlib2 with
        new routines developed from scratch.  All code is now LGPL licensed.
        - Add test suite with tests for encoding, decoding, parsing, etc.
        - Update licensing to GNU-LGPL version 3 and include (L)GPL licenses
        in LICENSE.txt.
        - Define needed C99 int types for MSVC 2012 or earlier.  Previously
        this was only done for versions earlier than MSVC 2010.