Releases: EarthScope/libmseed
v3.0.15
- 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
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:
-
The
fposandlastarguments ofms3_readmsr(),ms3_readmsr_r(), andms3_readmsr_selection()have been removed. The same capabilities are available and details are included in the porting guide. -
The
MS3TraceList.numtracesmember was renamedMS3TraceList.numtraceidsto clarify. -
The
ptrargument, previously namedpath, 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. -
The
mseh_get_path_r()andmseh_set_path_r()were previously named without the_rsuffix, now take a additionalparsestateargument. 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 withmseh_free_parsestate(). If used withmseh_set_path_r()the headers must also be serialized withmseh_serialize(). -
mstl3_printtracelist() now takes an additional
versionsargument. When non-zero the routine will decorate SIDs with publication versions. -
The
MS3TraceIDstructure 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 typeM. 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()andms_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
-Foption to set the format version to create. mseh_get_path_r()andmseh_set_path_r()now accept a value type ofithat is used with int64_t values.- Add
nstime_tspecial value ofNSTUNSETfor use as "unset" meaning. - Fix logic test for
LIBMSEED_NO_THREADINGdeclaration. - Fix zero-padding of empty bytes following data in miniSEED v2 creation.
- Rename
DE_ASCIItoDE_TEXTto generalize to UTF-8, legacy mapping provided. - Change sample type for text encoding to 't', value 'a' still supported as an alternative.
- Add
MS3Tolerance_INITIALIZERforMS3Tolerancevalues. - 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
- Embed current leap second list, used by default and replaced by
ms_readleapsecondfile(). - Add
ISOMONTHDAY_DOYtime 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_Zformat. - Deprecate the
ms_nstime2timestrz()function and reformulate to use the '_Z' format definitions. - Re-brand to EarthScope.
v3.0.12
- 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
- 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
- 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.pubversionto0inms3_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_HPTIME2NSTIMEandMS_NSTIME2HPTIMEmacros 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
v2.19.7
- 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
- Update Source Identifier handling to the adopted specification of:
FDSN:NET_STA_LOC_BAND_SOURCE_POSITION
v3.0.8
- 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.