Skip to content

Releases: windytan/redsea

1.1

28 Dec 18:39
Compare
Choose a tag to compare
  • 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

19 Jul 10:16
Compare
Choose a tag to compare
  • 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

27 Jun 18:52
Compare
Choose a tag to compare

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
  • 🔧 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)
    • 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

26 Jan 06:16
Compare
Choose a tag to compare
  • 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 either alt_frequencies_a or alt_frequencies_b. The type of data sent by these methods differs. When --show-partial is set, the AF list will be in partial_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

08 Mar 20:52
Compare
Choose a tag to compare
  • 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

06 Apr 10:49
Compare
Choose a tag to compare
  • 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

19 May 14:28
Compare
Choose a tag to compare
  • 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.

v0.17.1

08 Jun 10:38
Compare
Choose a tag to compare

Bugfix release.

  • Return exit value 0 if --version or --help was requested
  • Don't open stdout for libsndfile unless --feed-through was specified, otherwise json can't be written (this may break the feed-through on Linux temporarily)

v0.17.0

05 Jun 12:48
Compare
Choose a tag to compare
  • Change the type of the JSON field for TMC message urgency, from integer (0, 1, 2) to string ("none", "U", "X"), to better match its values in the specification
  • Speed improvements by avoiding a few extraneous buffer copies internally

v0.16.0

27 Mar 09:38
Compare
Choose a tag to compare
  • Add support for multi-channel signals (--channels) - libsndfile is now
    a required dependency
  • Speed improvements:
    • By using a lookup table instead of sinf/cosf to generate the
      mix-down sinusoid
    • By only using one mix-down operation instead of two