[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When opening records with the same name in different directories successively
within a single process, the persistence of WFDB path changes made by WFDB
library function wfdb_addtopath()
interfered with locating the correct
files in the second and subsequent records. The solution included addition of
a new WFDB library function, resetwfdb()
, which restores the WFDB path
to the value returned by the first invocation of getwfdb()
in the
current process (or NULL
if getwfdb()
has not been invoked);
library function wfdbquit()
now invokes resetwfdb()
. In
addition, the safe-string copy macro SSTRCPY
(defined in wfdb.h
)
now properly handles the case of copying null pointers. Thanks to Benjamin
Moody for identifying the problem, providing test inputs, and contributions to
the solution.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
WFDB records with names of the form ‘nnn/nnn’ can now be identified
using the short form ‘nnn/’ in applications built using the WFDB library
(e.g., rdsamp -r mimicdb/037/
and rdsamp -r mimicdb/037/037
are
now equivalent).
In ‘<wfdb.h>’, the maximum lengths of record names, units strings, and signal description (‘.desc’) strings have been increased (to 50, 50, and 100 characters respectively). In ‘lib/wfdbio.c’, the maximum length of a WFDB file name (including path information) has been increased to 1024 characters.
(WFDB library version 10.5.5 was identical to version 10.5.4.)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Function getseginfo()
has been introduced in WFDB library version
10.5.4, to allow applications to obtain information about the
segments belonging to the current (multi-segment) input record.
In previous versions, integer arithmetic overflow was possible
when converting format 32 samples using aduphys()
, if the difference
between the baseline value and the sample to be converted exceeded
the range of signed 32-bit integers. Although rdsamp
does not
use aduphys()
similar code in rdsamp
also exhibited this problem,
which has now been corrected; thanks to Ikaro Silva for
reporting it and providing a test case.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Function getgvmode()
has been introduced in WFDB library version
10.5.3, to allow querying the current operating mode of getvec()
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When reading annotations of multifrequency records opened in
high-resolution mode, a time shift was introduced by getann()
in
WFDB library versions 10.4.5 to 10.5.1. This problem has been
corrected in 10.5.2.
Certain malformed segment .hea files were able to cause null pointer
errors in isigopen()
. This problem has been
corrected. Thanks to Mauro Villarroel for reporting this problem
together with a test case.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In version 10.5.0, signals in formats 80 and 160 with amplitudes of 0 were
incorrectly treated as invalid by getframe()
and getvec()
.
Thanks to Isaac Henry for reporting this problem, which has been corrected in
‘lib/signal.c’.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The WFDB library now supports signals with 24 and 32 bits of precision, using
new formats 24 and 32, as well as BDF and BDF+ files (24-bit EDF and EDF+
variants), so that WFDB applications can now read these formats. Note that
these formats, unlike all previously defined formats, require more than 16 bits
per sample value. If the WFDB software is compiled on a 16-bit platform
(unusual except for embedded processors), the excess high bits of signals in
these formats are not read on input, and they are replaced by zeroes on output,
unless the WFDB_Sample
data type has been redefined as long
(in
‘wfdb.h’). This is not done by default since it would increase memory and
computational requirements unnecessarily in embedded applications that do not
require 24- or 32-bit precision.
Since support for extended precision samples cannot be introduced without this limitation in backward compatibility for 16-bit platforms, the minor version number of the library has been incremented to 5. Most users will not be affected by this change, however, apart from the new functionality it provides.
Memory allocation macros that have been defined previously in ‘wfdblib.h’ have been moved to ‘wfdb.h’ so they are accessible to WFDB applications, including user-written applications. For information about using these macros (MEMERR, SFREE, SUALLOC, SALLOC, SREALLOC, and SSTRCPY), see section Memory Allocation Macros.
A buffer overflow in the WFDB library's internal function edfparse()
(in ‘signal.c’) has been corrected, thanks to a bug report and patch
from Joonas Paalasmaa.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
George B. Moody (george@mit.edu)