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.

libmseed 2.17 released

Added by Chad Trabant over 8 years ago


Change since 2.16m:

        - Round Fixed Section Data Header start time values to the nearest
        tenth of millisecond and restrict the microsecond offset value
        to a range between -50 and +49 as recommended in SEED.  Previously
        start times were truncated at tenths of millisecond resolution
        and the microsecond offset value was between 0 and +99.  This also
        addresses a bug where microsecond offsets were off by 100ms for times
        before Jan 1 1970.  Thanks to Lion Krischer for reporting.

libmseed 2.16m released

Added by Chad Trabant over 8 years ago


No functional changes since 2.16, some defines for older MSVC build systems and minor additions:

        - Add defines for needed integer types and macros from inttypes.h
        missing in older MSVC versions.  MSVC 2010 and later appear to have
        enough C99 support.
        - Add define tests for _WIN32 and _WIN64 to cover all WINs.
        - ms_fread(): Add cast to quiet warning for conversion from size_t
        to int.  In this case the read will always be <= MAXRECLEN, much
        smaller than int, making the conversion safe.

libmseed 2.16 released

Added by Chad Trabant over 8 years ago


Changes since 2.15:

2015.113: 2.16
        - Update minor release version in Makefile.

        - Cleanup of lmplatform.h removing unneeded headers and using C99
        standard headers except for a few platform specific cases.
        - Convert all printf() and scanf() usage of %lld for 64-bit integers
        to use the C99 PRId64 and SCNd64 macros for portability (MingGW).
        - Change detection of Linux/Cygwin to set global define LMP_LINUX
        instead of LMP_GLIB2 (now marked as deprecated).
        - Change detection of Windows to set global define LMP_WIN instead
        of LMP_WIN32 (now marked as deprecated).
        - Add detection of __MINGW64__ define.
        - Tested building on Win7 with: Open Watcom 1.9, MinGW gcc 4.8.1 and
        Cygwin 1.7.35 (gcc 2.9.2).

        - Define NTP-Posix time epoch conversion constant specifically as
        a long long integer to avoid warnings on some compilers.

libmseed 2.14 released

Added by Chad Trabant almost 9 years ago


Changes since 2.13:

2015.062: 2.14
        - Fix memory leak when msr_pack() returns after an error. Patch
        contributed by Larry Baker and Eric Thomas.
        - Change casting of values passed to isdigit() to int intead of
        unsigned character.  Apparently this was consufing on ARM archs.

        - Add ms_readleapseconds() and ms_readleapsecondfile() routines to
        read a leap seconds file into an internal list.
        - Modify msr_endtime() to check for an internal leap second list,
        check for overlap with the record and adjust the end time as needed
        when leap seconds are present.  When a leap second list is present
        any indication of positive leap seconds in the fixed section data
        header are ignored.

        - Add casting to size_t and int to avoid build warnings on certain
        build systems (e.g. older MS Visual Studio).
        The effective maximum sample buffer and record buffer size is ~2GB.

libmseed 2.13 released

Added by Chad Trabant over 9 years ago


All changes are documented in the ChangeLog included with the source code.

Changes since 2.12:

2014.234: 2.13
        - Clean up Makefile and example/Makefile, remove all GCC-specific and
        debug targets.  Makefiles are compatible with both GNU and BSD make. 
        As before, the shared target works only for GCC-compatible compilers.
        Thanks to Elliott Sales de Andrade for pointing out that shared library
        targets did not work with parallel builds, prompting this clean up.

2014.197: 2.13rc
        - Support 128-byte record length by changing MINRECLEN to 128 (was 256).
        The current SEED specification is a minimum record length of 256-bytes,
        but there are cases (e.g. low latency data flow) using 128-byte records.
        - Add declarations, casting and string truncation to clear warnings
        uncovered in ObsPy testing (thanks to Elliott Sales de Andrade).

        - Add __CYGWIN__ defined test to Linux section of lmplatform.h.


    Also available in: Atom