Releases: windytan/redsea
Releases · windytan/redsea
1.1
- New features:
- Decode 'broadcaster use' data in Slow labeling codes (variant 6)
- Decode 'decoder identification' bits in Group 15B
- Workaround buggy encoders that show 1 extra character in RT+ fields
- Bug fixes:
- Fix a crash when the input file has a very high sample rate (fuzz)
- Fix a crash from uncaught iconv exceptions from corrupted utf8/ucs2 data (fuzz)
- Fix the CSVReader (used in the TMC decoder) ignoring the last line of any file
- Remove extra trailing space in transparent data channels hexdump
- Make raw libsndfile errors user-friendlier (instead of saying 'System error')
- Build system fixes:
- macOS: ask Homebrew about liquid-dsp location instead of hardcoding it
- Set default installation prefix to /usr/local (all platforms)
- Reduce compiler workload somewhat with forward declarations
v1.0.1
- Fixes:
- Fix a crash (uncaught json exception) when attempting to serialize a string that's invalid UTF-8, e.g. if long PS gets corrupted
- Fix build when the installed version of nlohmann-json is too old (#113)
- Fix a couple of integer overflows, one affecting the subcarrier reset functionality (of #94) after 3.5 hours of runtime and another one causing a potential sync glitch after 41 days of constant data
See also our recent big maintenance update 1.0.0.
redsea 1.0
Redsea has come a long way and it's time to finally call it a 1.0!
This quality-focused release includes significant maintainability improvements from unit testing to build automation and .deb packaging. It also adds support for a couple of RDS text channels and makes redsea less likely to show incorrect PI codes in very noisy signals.
Note that redsea is now built with meson instead of autotools; you can find instructions in the Readme just as before.
- ✨ New features:
- Add support for Enhanced RadioText (eRT)
- Add support for Long PS in Group 15A (#104)
- Add runtime option
--no-fec
for disabling error correction
- 📱 UX changes:
- ❗️ Breaking: Print a warning to stderr if the raw MPX input sample rate is
not specified (breaks the previous silent assumption of 171 kHz) - Improve error reporting in general
- Add
--output hex
(same as--output-hex
) to mirror--input hex
- ❗️ Breaking: Print a warning to stderr if the raw MPX input sample rate is
- 🔧 Fixes:
- Fix detection of invalid date/time (timestamps >2000 years ago)
- Noise resistance improvements (#106):
- Require three (instead of two) repeats of a new PI before accepting it for the JSON output
- Require three (instead of two) synchronization pulses before locking
- 🚧 Maintainability:
- Migrate build system from autotools to meson (#90)
- Switch from patched, packaged-in JsonCPP to external nlohmann-json (#109)
- ❗️ Breaking: The order of some JSON elements has changed (insertion order
instead of alphabetical)
- ❗️ Breaking: The order of some JSON elements has changed (insertion order
- Add automated CI builds for macOS, Windows (MSYS2/MinGW + Cygwin), Ubuntu-latest, Debian Buster
- Add Debian packaging (#101)
- Add basic Catch2 unit tests (#84)
- Add .clang-format (not automated)
- Remove unmaintained build options for non-liquid, non-TMC builds
- Fix compiler warnings, issues identified via static analysis, and other code cleanup
v0.21
- Add support for decoding LTCC and LTECC in TMC (#80)
- Add support for decoding RDS output from the TEF6686 tuner (#89)
- Add support for Alternative Frequencies Method B (#88)
- Breaking: Change the name of the field
alt_kilohertz
to eitheralt_frequencies_a
oralt_frequencies_b
. The type of data sent by these methods differs. When--show-partial
is set, the AF list will be inpartial_alt_frequencies
regardless of method. - Add option
--input
/-i
to specify the stdin input format (bits, hex, mpx, tef). The old options will still work. - Fix automake script on Windows (#81)
- Fix compatibility with current liquid-dsp (#78)
- Fix output for UTF-8 encoded TMC location tables (#82)
- Fix
clock_time
displaying wrong date around midnight (#83) - Fix misinterpretation of the Decoder Identification bits (#87)
- Fix decoding of RadioText for stations that don't use string terminators (#77)
- Fix an off-by-one bug in the RadioText decoder that sometimes caused missing characters at the end of messages
- Fix runaway PLL after digital silence by clamping the phase error (#94)
v0.20
- Recognize more ODAs and features - thanks Andreas Mikula
- Add support for PTY names (group 10A)
- Add partial support for DAB cross-referencing (ODA 0x0093)
- Add support for raw broadcaster data in EON (variant 15)
- Add support for transparent data channels (groups 5A, 5B)
- Add support for fractional seconds in the rx timestamp format (
%f
). - Add support for TMC tuning info variant 8
- Add buffer delay compensation to rx timestamps. Timestamps aim to represent
the time the PCM samples were read in. - Place some JSON fields in the beginning of the line for easier visual
inspection (pi, group, ps...) - Print raw ODA data if the application is not supported
v0.19
- Add option
--show-raw
(-R
) for including the raw group data as a hex string in the JSON output - Print usage help if there are non-option arguments on the command line
- Fix uninitialized block error rate values on some systems
- Update jsoncpp from 1.8.1 to 1.8.4 to fix some warnings
v0.18
- Add support for loading multiple TMC location databases by specifying
--loctable
more than once. - Sample rate can also be specified as
-r 171k
instead of-r 171000
. - Fix a crash if the input audio file couldn't be loaded.
- Print usage help instead of error message when stdin is empty.
- Speed up loading of TMC location database.
- Improve block sync detection by ignoring spurious sync pulses.
- Fine-tune filter bandwidths for better sensitivity, based on test runs.
- At EOF, process the last partially received group.
- Remove character codetables G1 and G2 since they don't appear in the latest RDS standard any more.
- Clean up code to ensure maintainability. Redsea now requires a compiler that supports C++14.