Disable Fist Byte Correction on MD5 password hash following observations based on real world system;
Improve BPTC127x77 Decoder Logic;
Tweak Debug code to show checksum diff if there is no actual diff;
Special mode of 0:0 to apply the inversion to the interlevaed frame if present without application of a keystream for analysis;
Misc Tweaks to VTX STD ENC Header and VTX TMS message;
TG Value loading of VTX 10 char keys available only by #define VERTEX_KEY40_BY_TG which will override the Moto BP loadout;
This is just a simple spam of the rtlsdr_set_center_freq function if that function returns a negative value indicating failure. Similar retries are present for gain and ppm set as well.
This is primarily to address issues that have been noted to arise on USB 2.0 ports on some AM4 motherboard / chipset configurations, prevalently, Ryzen CPUs with the 3XX, 4XX, and 5XX motherboards. This may also address other misc issues due to bad USB cables (within reason) as long as a retry will suffice to allow proper tuning;
Upstream rtl-sdr repo was updated to 2.0.3 previously as well to allow for the V4L version dongles to work correctly when compiled in Cygwin. Linux users will need to update their own rtl-sdr versions;
RAS Implementation includes converting RAS 6-24 character passwords into 56-bit RAS Effective Key Values and Performing RAS Permutations on RAS Enabled Burst Types to Calculate the Correct MAC attachment to validate messages;
Better Handling for RAS indicators found in BPTC 196,96 Reserved Bits and handling for RAS indicator bits found in embedded link control opcode byte;
Users may either enter the RAS password with the -$ option, or the 56-bit effective key value with the -y option.
Users will no longer need to use the -F option to bypass CRC errors on RAS enabled payloads when FEC does not explicitely fail.
Removed the old float audio -y option.
MBE: Fixes for non forced DMRA supported decryption modes (with supplied IV + expansion in mbe file, etc);
MBE: Support for DMRA DES Mode (rare and untested for .mbe files);
DMR: Clarify and Decode FSN Value on Data Headers; #350
NXDN: Fix errors on KS creation on AES discard bytes on voice application;
GCC: Fix Misc unused-but-set-variable warnings (GCC Version GNU 16.1.1);
Make adjustments to groupinfo struct; Misc tweaks to code using groupinfo items;
Move group_array from stack to heap; Calloc adequate memory for it;
Switch to strncpy to fix potential issues with large strings copying OOB and crashing;
NXDN: Initial GPS Report Commit;
NXDN: Don't assign GI, TG/RID in VCALL_ASSGN; Leads to duplicate entries in Event History, particularly when private call;
NMEA: Sentence Checker with start, end, checksum, and supplimentary string checks P25p1 Tier 1 Location Service and Also observed on old Type-D system;
LRRP: Fix LRRP.exe style reports to use date/time strings with colons and slashes;
NXDN: Tweak to DCALL to check for a selective retry when blk_num is not equal to pf_num and invalidate, we don't have the memory of the last PDU attempt (and may have successfully received it anyways, even if the radio did not);
NXDN: Fix Block Assembly on "idas" types, they do have the same blocking structure;
NXDN: Fix CRC32 and "total_bytes" when padding bytes are present;
NXDN: Add placeholder GPS function and reverse byte load for GPS location data found in certain DCALL messages;
DMR: Init AES keyloader arrays for PDU;
Misc cleanup and tweaks;
There is bound to be at least one person who will complain, or listens to the harmonic and not the signal, or has a mixed bag of things and doesn't want to specify polarity;
Use static array to hold facch1 message after recovery and compare when LICH type calls for 2 individual FACCH1 messages in an NXDN frame;
Zero out facch1_storage on SACCH or SCCH decode (happens first) and after potential comparison time in FACCH1 decode;
Invalidate entire SACCH superframe in storage if CRC error on individual SACCH or if next SR value (part of frame) is not the expected value;
Set initial nxdn_part_of_frame value to 3 - Ideal sequence is 1/1 NSF to 1/4 SF SACCH; also set to 3 on misc frame types (CAC, FACCH2, etc)
NXDN: Tweak to LICH Dibit "Dividing" Error Threshold (1 to 2);
NXDN: Change MessageType to 8-bit and Decoding to Include the F1 and F2 Flag; Make Tweaks for DCR/ARIB Messages to compensate;
NXDN: Frame Sync Tweaks to help reduce false sync patterns; Make Inverted NXDN user option; cmake enabled defines for Type-C, Type-D, and DCR decoding (all enabled by default);
NXDN: Decode DST_ID_INFO Message;
NXDN: Rework Code on Standard Caller Alias and add a 16bit alias variants for ASCII, SJIS, BIG5, or UTF16 alias decoding (configure via cmake, default is ASCII);
NXDN: Seperate PROP_FORM 0x3F from Alias via checkdown;
YSF: Soft Decision Viterbi;
YSF: Fix BUMBLEBEETUNA text string on partial decode;
P25p2: Fix Harris GPS MAC message to fixed len, or do not decode (observed bugfix);
P25p2: Add MFID90 Unknown 0x8F and 0xBF MAC Message;
DOCS: Update complete_usage_options; Remove M17 Encoding Section;
Move state.optind assignment from inside case 'r' to after the
getopt loop completes. This ensures optind points to the first
positional argument regardless of option order.
Before: -r file.amb -w output.wav would fail with "could not open -w"
After: argument order no longer matters for -r with other options
The -w option sets static_wav_file=1 and dmr_stereo_wav=0, but
playMbeFiles() only checked dmr_stereo_wav==1 condition, causing
wav files to be empty (only 44-byte header) when using -r with -w.
Added static_wav_file check to both IMBE and AMBE playback branches.
macOS has no OSS (/dev/dsp) support, but dsd-fme currently compiles and links OSS code unconditionally, leading to build and link failures.
This PR:
* disables OSS backend cleanly on macOS
* provides a no-op openOSSOutput() stub to satisfy callers
* guards OSS-specific headers and ioctl usage
* preserves existing behavior on Linux/OSS platforms
This allows dsd-fme to build and run correctly on macOS using PulseAudio/CoreAudio paths.
This does not include DES-XL due to needing to know HDU or LDU2 and complications of SDRtrunk P1 ESS handling, and also unknown Phase 2 method for XL.
Nor TDEA (never observed on P25 despite in spec);