Skip to content

Releases: EarthScope/libmseed

v3.0.15

11 Jun 20:22

Choose a tag to compare

v3.0.15 Pre-release
Pre-release
  • Print sample rate in Hz consistently in msr3_print()
  • Fix writing of SNR values field 9 of Blockette 201 (v2)
  • Read and write microsecond offsets to/from Blockette 500 (v2)
  • Fix addition of Clock Model field 9 of Blockette 500 (v2)

v3.0.14

09 Jun 20:57

Choose a tag to compare

v3.0.14 Pre-release
Pre-release

WARNING: BREAKING API CHANGES - API is now frozen for the pre-releases

This is an extra large release in expectation of becoming the initial stable release of the major version 3 library.

This release contains the following API changes:

  1. The fpos and last arguments of ms3_readmsr(), ms3_readmsr_r(), and ms3_readmsr_selection() have been removed. The same capabilities are available and details are included in the porting guide.

  2. The MS3TraceList.numtraces member was renamed MS3TraceList.numtraceids to clarify.

  3. The ptr argument, previously named path, to mseh_get and mseh_set routines is now in JSON Pointer (RFC 6901) format. This is a more appropriate, and standardized, format than the pseudo-JSON Path, dotted string style previously used. It also allows more flexibility such as specification of an array element.

  4. The mseh_get_path_r() and mseh_set_path_r() were previously named without the _r suffix, now take a additional parsestate argument. This functionality allows the parsed extra headers to be retained between calls to avoid re-parsing. For advanced usage, this allows more efficient getting or setting of multiple extraheader values. If used, this state information must be free'd with mseh_free_parsestate(). If used with mseh_set_path_r() the headers must also be serialized with mseh_serialize().

  5. mstl3_printtracelist() now takes an additional versions argument. When non-zero the routine will decorate SIDs with publication versions.

  6. The MS3TraceID structure is no longer a simple linked list. Instead, it is a skip list, slightly changing the syntax for traversing the list as illustrated in the examples.

Furthermore, this release contains the following changes:

  • Add JSON Merge Patch capability to mseh_set_ptr_r() using the value type M. This allows flexible modification, including deletes, of extra header values.
  • New test suite based on Tau (https://github.com/jasmcaus/tau). Many tests were added and the suite now works on MS-Windows.
  • Replace JSON library with yyjson (https://github.com/ibireme/yyjson). Benefits include performance, shortest accurate real number representation, JSON Pointer support, and UTF-8 support.
  • Significant optimization for the case of constructing trace lists with large numbers of different source IDs, by using a skip list. Implementation inspired by: https://github.com/tdeck/c-skiplist, thanks @tdeck!
  • Add new mstl3_findID() function for searching a trace list for specific SourceID and, optionally, publication version.
  • Optimize trace construction in mstl3_addmsr_recordptr() for the case of duplicate records.
  • Add cURL detection and full build support to example/Makefile.
  • Add 'const' declarations to ms_sid2nslc()and ms_nslc2sid() to guarantee input will not be modified.
  • Update example/lm_pack.c to a) use improved test data (a sinusoid) that contains all differences for Steim1 and Steim2 encoding, and b) add an -F option to set the format version to create.
  • mseh_get_path_r() and mseh_set_path_r() now accept a value type of i that is used with int64_t values.
  • Add nstime_t special value of NSTUNSET for use as "unset" meaning.
  • Fix logic test for LIBMSEED_NO_THREADING declaration.
  • Fix zero-padding of empty bytes following data in miniSEED v2 creation.
  • Rename DE_ASCII to DE_TEXT to generalize to UTF-8, legacy mapping provided.
  • Change sample type for text encoding to 't', value 'a' still supported as an alternative.
  • Add MS3Tolerance_INITIALIZER for MS3Tolerance values.
  • Handle special case of year 0 when parsing version 2 blockettes. These are now treated as "unset" and not included in the extra headers.
  • Added FAQ to documentation and update example code to match API changes.

v3.0.13

30 Jan 04:26

Choose a tag to compare

v3.0.13 Pre-release
Pre-release
  • Embed current leap second list, used by default and replaced by ms_readleapsecondfile().
  • Add ISOMONTHDAY_DOY time string variant, with day-of-year added in parenthesis.
  • Add '_Z' variants of multiple time string formats that add a trailing Z versions.
  • Print record timestamp in new ISOMONTHDAY_DOY_Z format.
  • Deprecate the ms_nstime2timestrz() function and reformulate to use the '_Z' format definitions.
  • Re-brand to EarthScope.

v3.0.12

04 Dec 22:25

Choose a tag to compare

v3.0.12 Pre-release
Pre-release
  • Change printing of bit flag sets to print each bit flag in most-significant-bit first order to match binary number representation.

v3.0.11

05 Jun 16:26

Choose a tag to compare

v3.0.11 Pre-release
Pre-release
  • Generate proper HTTP Range header by always including a start value, defaulting to 0, when a range end is specified.
  • When time correction value is present always set the time correction applied bit when creating V2 records. Thanks @nicoleroy-ipgp.
  • mseedview example: always emit accumulated log messages, and print basic summary correctly.

v3.0.10

13 Apr 23:10

Choose a tag to compare

v3.0.10 Pre-release
Pre-release
  • Fix uninitialized file position in ms3_readtracelist_selection() (#80) by @anowacki.
  • Fix array index warning in crc32c.c.
  • Update embedded Parson to 1.4.0.
  • Simplify byte swapping routines (#75) by @QuLogic.
  • Initialize selection.pubversion to 0 in ms3_readtracelist_timewin() by @Cuda-Chen.
  • Make logging facility thread safe, with per-thread parameters.
  • Add lm_pararead.c example to illustrate reading miniSEED in parallel using re-entrant interfaces and POSIX threading.
  • Add Add MS_HPTIME2NSTIME and MS_NSTIME2HPTIME macros to convert to/from version 2.x time values. HPTIME values in version 2.x support microsecond resolution, whereas NSTIME values in 3.x support nanosecond resolution.

v2.19.8

29 Mar 02:53

Choose a tag to compare

  • Update numsamples and samplecnt consistently in mst_addmsr(), #33 by @pn2200
  • Fix small compiler warnings.

v2.19.7

17 Mar 05:03

Choose a tag to compare

  • Avoid braceless multiple statements MS_SWAPBTIME macro usage.
  • Fix statement macros by @QuLogic. #73
  • Simplification of byte swapping routines by @QuLogic. #74
  • Avoid string buffer overflow warnings.
  • Makefile mods for CMake as ExternalProject by Sriram Sundararajan.
  • Encapsulate value of MS_NSTIME2EPOCH and MS_EPOCH2NSTIME macros.
  • Fix example mst_pack().

v3.0.9

22 Aug 15:47

Choose a tag to compare

v3.0.9 Pre-release
Pre-release
  • Update Source Identifier handling to the adopted specification of:
  FDSN:NET_STA_LOC_BAND_SOURCE_POSITION

v3.0.8

05 Jun 07:24

Choose a tag to compare

v3.0.8 Pre-release
Pre-release
  • Add capability to read data from URLs. This feature is optional, enabled at build time with LIBMSEED_URL and requires libcurl to be available on the system.
  • Add registry for accumulation of error and warning log messages
  • Log and diagnostic printing callbacks now require const char *
  • Verbose-triggered messages are now sent to stdout instead of stderr
  • Copy only UTF-8 characters in ms_strncpclean(), ms_strncpcleantail(), and ms_strncpopen()

Note: the data format written by default by this library is not miniSEED 2 and cannot be read by any software that has not been updated to support the new format. miniSEED 2 can be written by this library if desired.