Commit Graph

114 Commits

Author SHA1 Message Date
Denny
293dec8a1c #30 WIP - adds radio reference web service lookup of broadcastify feed settings dialog. 2016-12-09 19:50:14 -05:00
Denny
f44892c62b #30 WIP - broadcastify and icecast TCP streams working and editors are complete. Adds icons to editor and table views. 2016-12-04 07:28:03 -05:00
Denny
b71415b82a #30 WIP - broadcastify multi-channel streaming is functional. 2016-11-27 11:58:34 -05:00
Denny
ecfac83eb4 #30 WIP - adds stream manager to receive multiple audio stream's packets and convert the audio and persist to disk. Broadcaster will now receive converted audio files to stream out to the server. 2016-11-13 04:33:45 -05:00
Denny
357979a5dd #30 - WIP - adds Icecast TCP(v2.3) and HTTP(v2.4) server support. Adds streaming tab and ability to add/delete/change streaming configurations. Adds streaming channel alias id so that aliases can be tagged to stream to one or more stream channels. Adds initial support for broadcastify streaming. 2016-11-06 09:33:49 -05:00
Denny
893cbba277 #30 - WIP on the shoutcast v2 protocol 2016-10-23 06:03:07 -04:00
Denny
ac23aea602 #30 - WIP on the shoutcast v2 protocol 2016-10-21 05:30:36 -04:00
Denny
a43ae9ce53 #30 - WIP on the shoutcast v2 protocol 2016-09-30 05:59:14 -04:00
Denny
02f470cf91 #30 - WIP on the shoutcast v2 protocol 2016-09-29 20:50:00 -04:00
Denny
6138838d60 #30 - WIP on the shoutcast v2 protocol 2016-09-14 06:07:21 -04:00
Denny
2537a71375 #30 - WIP Streaming audio support. Adds Shoutcast V1 handler. 2016-09-12 04:28:46 -04:00
Denny
9031fd78c9 #30 - WIP Streaming audio support 2016-08-21 11:41:42 -04:00
Denny
d466ec9f5e Changes audio module decimation filter from lowpass to bandpass so that we can remove 0-250 Hz and any LTR signalling from the audio output. 2016-08-21 07:21:38 -04:00
Denny
3af4b953f4 Changes internal audio sample rate from 48 kHz down to 8 kHz. Updates the P25 audio module to output 8 kHz audio. Updates the audio recorder to record at 8 kHz rate.
Note: required updated JMBE 0.3.3 library which supports 8 kHz audio output sample rate.
2016-08-19 21:09:39 -04:00
denny
c3d52ff86e Merges #34 Major redesign of Tuner, Channel and Alias management.
Changes to model, view and controller components and updates all gui
editors.  Removes the configuration panel and tree and replaces with 3
new panels.  Updates playlist.xml to a new playlist_v2.xml format.
2016-04-01 08:23:49 -04:00
denny
3caadf0c90 Moves audio panel into the channel state list panel so that we don't
have to use a split pane.
2016-03-26 07:29:10 -04:00
denny
e5004f9fa6 Work in progress - updates to alias and alias ID editors. 2016-02-21 20:02:27 -05:00
denny
7ff9e9a7ce Merges master 894ebeb - patch to audio playback where audio output
channels were locking up after a period of time
2016-02-20 17:54:35 -05:00
denny
d90684dbdc Merges master be7ab87 patch to audio metadata 2016-02-20 17:45:18 -05:00
denny
be7ab871d1 Resolves issue with audio metadata updates that was causing the audio
playback panel to not detect changes in FROM/TO values for the current
audio playback.
2016-02-20 09:55:39 -05:00
denny
a7da60cd27 Resolves issue with audio playback where audio playback stops working.
Potential existed for the audio output class to become unsynchronized
with the underlying source data line and attempt to perform a blocking
write to the data line when the data line doesn't have the capacity to
accept the full buffer, and the data line is not started.  Thus,
playback could potentially stay in a persitent blocked state.

Refactored Mono and Stereo audio output implementations to push the
audio buffer queue processing into the parent abstract class.

AudioManager was updated to remove the last time active timestamp out 
of the audio manager and down into the audio output to remove duplicate
timestamp accounting.
2016-02-20 08:53:09 -05:00
denny
5573b9a9fb Changes audio timeout from 2 seconds to 1 2016-02-15 16:01:06 -05:00
denny
f7f6c2fc3e Merges changes from master branch to resolve issue with CPU and memory
and constraints on scheduled thread pool saturation.  Adds a new
scheduled thread pool for each processing chain that the components in
the chain can share, versus the single shared pool exposed by the
threadpoolmanager class.
2016-02-15 15:47:14 -05:00
denny
b7a54598b1 Changes audio panel call timeout from 2 seconds to 1 second in order to
increase audio output cycle time.
2016-02-15 09:59:04 -05:00
denny
1f654b5b9c Rebase channel/alias model redesign branch on current master
(v0.2.0.beta5)
2016-02-14 11:45:43 -05:00
denny
1d7f255784 Revert "Merges master onto development branch"
This reverts commit 2420bc901c63ad9d41e7c99ac95a426f826182ff.
2016-02-13 15:07:53 -05:00
denny
37a93c8884 Merges master onto development branch 2016-02-13 15:05:45 -05:00
denny
4be63d4b95 Work in progress.
-Started work on new channel editor channel viewer/controller
-Removed a number of unused buffer package classes
-Moved automatic frequency control to be a module and removed special
handling
-Added IUnfilteredRealBufferListener & Provider interfaces
-Completely removed the ResourceManager class
2016-02-13 14:57:12 -05:00
denny
c405ddad96 Work in progress - program compiles and runs 2016-02-13 14:37:36 -05:00
denny
c670f1d855 Resolves issue with audio playback state becoming disconnected with
AudioManager connection class monitoring of the playback state.  Adds a
line listener to monitor when the line is started/stopped and responds
accordingly.

Removes squelch control from mono and stereo audio playback components
which was a holdover -- squelch state is now managed within the 
audio component for each processing chain.
2016-02-13 09:07:37 -05:00
denny
9c94266adb Resolves issue with Audio Channel display showing a call in progress
with TO/FROM identifiers displayed, but no audio playing.  This occurred
when the decoder sent a few audio buffers which caused the display to
update from the metadata, however the decoder stopped sending buffers
and the audio start threshold is never met.  Clear display is invoked
upon audio stop, so the panel was never started or stopped or cleared
until the next call came in.

Changed to store the incoming metadata and only display it once the
audio playback starts and reset the display once the audio stops.
2016-02-04 20:49:11 -05:00
denny
ddfefe4b85 Resolves issue with ChannelState FADE monitor - changes from
starting/stopping the monitor for each call to simply leaving the
monitor task running continuously.  Was causing issue with scheduled
thread executor not shutting down the task in a timely manner -- new
approach should avoid start/stop related issues altogether.

Updates P25DecoderState with reordering of timing of when we send
updates for the TO/FROM identifiers so that the audio manager receives
up-to-date metadata and hopefully resolves issue with 'Do Not Monitor'
talkgroups being monitored by the audio manager.

Updates the AudioManager with a try/catch block around the processing
task so that we can catch any audio processing exceptions that occur
during the timer task and might get suppressed by the scheduled thread
executor.
2016-02-02 19:44:18 -05:00
Denny Sheirer
debdc39a5f Resolves threading issue in ChannelState.
Resolves issue in tuner controller where controller was not releasing
sourced tuner channels, preventing re-tuning to other frequencies.
Resolves issue with channel timeout on MPT1327 monitored traffic
channels
2016-02-01 09:17:56 +00:00
denny
f5fadc5004 Stores selected audio output mixer name and channels (mono/stereo) to
system properties so settings are loaded on startup.
2016-01-23 14:28:21 -05:00
denny
94d85f636d Resolves Audio issues (underwater/overlapping audio buffers).
Redesigned audio manager handling of audio outputs to ensure that only
one channel's audio can be routed to an audio output at a time.

Changed audio outputs to use the shared thread pool manager for
scheduled tasks, instead of creating a thread pool for each audio
output.
2016-01-23 10:19:47 -05:00
denny
1db6779dec Audio outputs - added exception handler to catch any errors that occur
while the buffer processor thread is running.

Added check for 0 space available in data line buffers to avoid trying
to write a zero-length audio chunk to the data line.

Added thread sleep for 100 milliseconds when we detect that the data
line buffer is full, to allow time for the data line to drain before we
check it again.  Hopefully this should minimize the chattering during
playback when the code was repeatedly hitting the available() method to
check for space availability.
2016-01-22 16:35:18 -05:00
denny
c12f535f3c Issue #47 - work in progress 2016-01-18 04:53:49 -05:00
denny
712ef0666e Added reset capability to audio outputs that dispatches an audiostop
event so that the audio panel gui component can reset when an audio
source has been removed due to activity timeout.
2015-12-31 09:31:31 -05:00
denny
b28193acb8 Closes #41. Resolves issue with Mono/Stereo audio output when gain
and/or mute controls are not available for a particular mixer.
2015-12-31 05:34:01 -05:00
denny
5ec93f52c1 Resolved issue that was causing audio to cycle between stereo channels
when audio decoding is sporadic/intermittent.
2015-12-26 09:27:57 -05:00
denny
47f36590fb Resolved issue with audio cycling between channels every 2 seconds when
audio mixer has stereo channel output.
2015-12-13 09:45:52 -05:00
denny
2bcffa0f44 Resolves issue with persistent audio channel threads when changing audio
output mixers.
2015-12-13 09:37:25 -05:00
denny
9c436033fb Resolves issue with audio playback where a call starts but not enough
audio samples are produced to cause the audio channel to start playback
(doesn't exceed threshold), causing the audio channel to become locked
until there was new audio from the same talkgroup.
2015-12-13 09:22:47 -05:00
denny
6763a4bdd6 Adds de-emphasis filter to P25 decoded IMBE audio output. 2015-12-11 13:34:20 -05:00
denny
f04a6727b0 Resolved issue with channel label display in spectrum overlay panel
when a new tuner is added.

Cleanup of debugging messages.
2015-11-22 14:25:37 -05:00
denny
4025f88951 P25 and Airspy work in progress
Updated p25 decoder state to better track calls and call detects from
a trunked channel

Fixed issue with false detects on LDU2 encrypted call messages

Fixed Airspy channel allocation ... will allocate channels across the
entire bandwidth, minus 50 kHz on either end, and will not adjust the
center frequency if it's not needed.

Fixed traffic channel teardown -- traffic channels are immediately 
removed now, without a fade delay.

AudioMetadata - updated flag is now reset upon copying the metadata
2015-11-21 17:40:59 -05:00
denny
70e62ebb35 Adds airspy USB tuner support and updates the spectral display
component.

-Airspy supported with 10 and 2.5 MSps sample rates.  Additional
decimation may be added later.

-Spectral display updated to include smoothing and filtering options.

Note: the decimated output of a tuner channel from the airspy is
48,076.9 samples per second, versus the normal 48 kHz decimated rate.
This is 1.0015 times the normal rate and doesn't appear to impact the
decoders or audio processing.  Therefore, no fractional resampling has
been added.
2015-11-07 08:18:41 -05:00
denny
7283004d7a Fixed issue with audio manager when swapping mixers and there is a
call in progress.
2015-10-03 17:59:18 -04:00
denny
3e05a9eb03 Resolves issue #23.
Adds audio output display and management options supporting mono and 
stereo output options.

Provides audio output supporting prioritization by talkgroup and/or 
channel selection.

Supports muting all channels, or muting individual channels and
individual audio gain/volume controls.
2015-10-03 17:50:03 -04:00
denny
9c69733034 Decouples DecoderState from the Decoder and makes DecoderState inherit
from Module so that Decoder can function independent of DecoderSTate and
DecoderState can more cleanly interface with other modules. 

Resolves issue with LTR-type decoders where the AudioModule was
filtering demodulated audio buffers before the decoder received the
audio - demodulated audio buffers are now copied before creating
AudioPackets.
2015-09-26 05:45:34 -04:00