1. Tuner channel processing runnables were being interruptibly shutdown, preventing the channel from clearing any owned locks (ie DMRTrafficChannelManager) causing thread deadlock and eventually causing out of memory situation or tying up all threads in the thread pool to the point that the application stopped processing any data.
2. DMR Traffic Channel Manager was erroneously processing non-owned traffic channel events.
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
Critical: resolved a thread deadlock issue when the DMR multi-frequency channel rotation thread deadlocks against the UI thread when accessing the current channel's frequency from the frequency controller. This thread deadlock may be the source of multiple users reporting OutOfMemory crashes when running any DMR channel with multiple control frequencies where the decoder was rolling through each frequency checking for activity.
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
#1787 Adds Capacity Max talker alias FLCO. Fixes standard FLC Talker Alias using ISO7 format. Updates channel details to list the tier 3 neighbors in the details.
#1787 Updates DMR capacity max event handling to better show events. Adds support for voice channel update for both Open System and Advantage modes. May cause issues with Cap+ or Con+ due to changes ... needs more testing.
#1787 DMR capacity max group voice update handling.
Co-authored-by: sheirerd <sheirerd@ainfosec.com>
* resync ess processor on PTT, END_PTT, HANGTIME, or IDLE
* Re-order of AbstractVoiceTimeslot. Voice2 should be processed first, as any accumulated ESS information applies to the following Voice slots
* Update P25 MBE recorders to include synchronized encryption information
---------
Co-authored-by: Sawyer, Caleb (US) - ISR <Caleb.Sawyer@L3Harris.com>
Warning: breaking change. Users will need to either recreate their DMR channel to frequency maps or simply delete and reload the channel from Radio Reference to correct the channel to frequency map.
Updates the DMR Decoder State to better track and update DMR events versus creating a new event and causing lots of scrolling in the event window of the Now Playing tab.
dibit past the length of the array. Issue likely occurs when a partial/incomplete put operation adds a dibit and increments the buffer pointer but the thread is interrupted prior to wrapping the buffer pointer. When the next runnable iteration executes, the pointer is pointing past the end of the buffer. Updates the code to check the pointer both before and after the put operation.
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
Notes on usage:
- When using either AM or FM squelch control use either the Heterodyne channelizer or if using the Polyphase channelizer, avoid using trunk tracking decoders like DMR or P25 or set the squelch threshold high enough to avoid changes in noise floor from polyphase channelizer where it can vary between using the one channel or the two-channel combined channel sources.
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
-Reduces message and event histories per channel from 500 to 200.
-Resolves issue of tuner freezing due to cancelled USB transfer buffers not being resubmitted.
-Reworks the audio playback system to remove in-progress call preemption and remove thread locks which can cause glitchy behavior during audio playback.
-Updates audio outputs to also use single thread pool for processing audio segments.
-Updates MBECallSequenceConverter to batch convert MBE to WAV audio.
-Unifies recording filename prefixes across baseband, mbe and binary recordings.
-Resolves issue with registering heartbeat manager to dispatcher.
-Uses single-thread thread pools for Dispatcher to support batch & process to overcome context switching consistency issue in Windows.
Co-authored-by: Dennis Sheirer <dsheirer@github.com>