Commit Graph

441 Commits

Author SHA1 Message Date
Denny Sheirer
2d07734cc5 Merge pull request #85 from DSheirer/30-audio_streaming_support
30 audio streaming support
2017-01-07 08:25:19 -05:00
Denny
ad377f4006 #30 - updates changelog with description of audio broadcaster feature. 2017-01-07 08:19:18 -05:00
Denny
648b12fd16 #30 - resolves logic issue that was preventing deletion of temporary stream recordings. Changes the streamable recording queue in the AudioBroadcaster to find the recording with the earliest start time to prevent situations where a long recording might close out and enter the broadcast queue after a shorter recording that started later, but would have been replayed first. 2017-01-07 07:31:47 -05:00
Denny
bc430b255f #30 - changes internal MP3 temporary recording stream management so that the broadcast model manages the recordings and sends the completed recordings to the broadcasters to avoid 2 or more streams recording MP3 files for the same audio call.
Note: there is a bug where temporary recordings are not being consistently deleted that I'm still working on.
2017-01-03 09:27:17 -05:00
Denny
4578e45f60 #30 - adds streaming status color indicators to the streaming panel table.
Resolves issue with temporary streaming file name collisions by adding a 1-up number to each generated temporary recording file.
2017-01-03 06:41:22 -05:00
Denny
42c18341b6 #30 - adds support for Shoutcast V2 (aka Ultravox 2.1) audio streams.
Resolves issue with MP3 framing where the remote server was disconnecting us due to bad MP3 sync.  The LAME encoder was sending partial 20 byte MP3 frames initiall, then following with a 144 byte array which contained the remainder of the first frame and the header of the next frame.  Adjusted the MP3SilenceGenerator to only emit complete MP3 frames.

This should be the final commit for this feature, pending merge back into master branch.
2017-01-02 16:05:00 -05:00
Denny
e71a1dbeda #30 - changes audio broadcaster to send full/complete MP3 frames instead of partial frames in order to reduce remote server disconnnects due to MP3 frame sync loss on remote server. 2016-12-29 08:20:10 -05:00
Denny
a4e3c53ba8 #30 - adds support for Shoutcast V1 streaming. Resolves issue where temporary MP3 recording files were not being flushed at the end, causing partial frames to be streamed resulting in repeated remote server connection resets.
Note: Shoutcast V1 streaming to a Shoutcast V2.5.x server seems to be problematic.  The newer server tracks MP3 boundaries in order to insert advertising and this appears to have problems keeping sync with the MP3 stream.  I spent significant time eliminating MP3 framing errors in my code.  You can see these 'Bad frame' errors in the sc_serv.log and the shoutcast server will eventually reset the connection after a period of time or after a number of framing errors occur.  I anticipate that streaming to a Shoutcast V2 server using the ultravox (ie V2.x) protocol may resolve this issue.
2016-12-29 05:59:14 -05:00
Denny
0cebe7e5d9 #30 - cleanup 2016-12-26 13:48:24 -05:00
Denny
5611f594c7 #30 - improves silence frame handling. Appends silence to end of MP3 recordings to round them out to whole second intervals and adds an MP3 silence generator to generate 1 second silence frames each interval when there is no audio to broadcast. Previous approach used static silence frame, but we can't generate an exactly 1 second frame, so the remote server was resetting the connection when it detected that we were sending data at over or under rate. 2016-12-26 11:52:25 -05:00
Denny
524a76e583 #30 WIP extracted the IcecastMetadataUpdater and merged some of the icecast configuration method into a new superclass. 2016-12-26 09:08:34 -05:00
Denny
c216f56c4f #30 WIP extracted the IcecastMetadataUpdater and merged some of the icecast configuration method into a new superclass. 2016-12-24 05:41:04 -05:00
Denny
5e4cbf2a4e #30 WIP on using the new apache mina library 2016-12-18 10:17:09 -05:00
Denny
1d7354b4a8 #30 WIP on using the new apache mina library 2016-12-18 09:09:47 -05:00
Denny
d085ecc0c9 #30 WIP on using the new apache mina library 2016-12-17 16:29:52 -05:00
Denny
1c8362c1fc #30 WIP - cleanup 2016-12-11 10:38:23 -05:00
Denny
b65ff17ede #30 WIP - adds support for Icecast 2 (v2.4+) audio streams. Adds additional fields (genre, description, public) to Icecast 1 configuration editors. Adds audio broadcast delay to Broadcastify and Icecast editors. 2016-12-11 06:55:42 -05:00
Denny
ebca330730 #30 WIP - icecast 2 broadcaster cleanup 2016-12-10 10:42:59 -05:00
Denny
ef373daeef #30 WIP - icecast 2 broadcaster cleanup 2016-12-10 10:36:38 -05:00
Denny
4290d8e403 #30 WIP - icecast 2 broadcaster cleanup 2016-12-10 10:21:08 -05:00
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 Sheirer
e75290c42c Merge pull request #79 from DSheirer/53_audio_sample_rate_to_8kHz
53 audio sample rate to 8k hz
2016-08-21 07:27:29 -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
cc65d44237 Updates change log with efforts to day for 0.3.0 2016-08-04 20:01:45 -04:00
Denny
ae6ccc5d51 Updates change log with efforts to day for 0.3.0 2016-08-04 20:00:37 -04:00
Denny
77cdcf1862 #72 Enhances management of wildcard values for aliases. Calculates a relative weighting for each wildcard alias id and then orders (smallest to largest) the wildcard values so that when attempting to lookup an id value, it first attempts to look for a direct match and then defaults to iterating the list of wildcard values until it finds the most specific or best matching wildcard value. 2016-08-04 19:54:43 -04:00
Denny
bccd4f0e32 #72 Resolves issue with alias identifier wildcard matching 2016-08-01 05:04:01 -04:00
Denny
a76268b32c Cleanup 2016-07-31 11:00:34 -04:00
Denny
ba31015423 #74 - added specific call event types for patch group processing. 2016-07-31 10:18:15 -04:00
Denny
c635dc5d79 Updated call event details message for traffic channel rejects (no tuner, unknown frequency) to include the original call event details in addition to the traffic channel reject message. 2016-07-31 10:08:13 -04:00
Denny
d57c485450 Resolves issue with correct parsing of channel number for motorola patch group channel grants. 2016-07-31 09:46:09 -04:00
Denny
6e1f28917e Resolves null pointer exception when updating identifier from values. 2016-07-31 09:20:00 -04:00
Denny
6af24ffa38 Closes #72 - updates alias list to maintain a map of alias id to alias and separate lists for wildcard alias id values. Alias lookup logic is changed to first look for in the alias map for a concrete match to the alias identifier. If an alias is not found, then the list of wildcard alias identifier values is iterated looking for a matching wildcard. If the wildcard is found, then the matching alias is returned from the map. 2016-07-31 09:18:25 -04:00
Denny
b19bfb400e Merge remote-tracking branch 'origin/master' 2016-07-31 07:52:43 -04:00
Denny
a56935f92c Closes #74 - adds support for vendor-specific (Motorola) TSBK patch group management. Processes patch group channel grants and updates and allocates voice channel processing. Logs call events for patch group add (register) and patch group delete (deregister). Also adds call event logging when there is a planned control channel shutdown--logged only once. 2016-07-31 07:52:01 -04:00
Denny
b33c0359ef Resolves issue with 10 MHz sample rate discovery in Airspy R0/R2 2016-07-12 13:44:17 +00:00
Denny
078a6fddce Closes #71 - frequency controller throws exception when exceeding min/max tuning limits of a tuner.
Updated code to show dialog to user whenever the tuning limit has been exceeded.  Added new InvalidFrequencyException that includes the requested invalid frequency and the valid frequency limit that was exceeded
2016-06-04 08:21:28 -04:00
Denny
bf5ded53e2 Code cleanup 2016-06-01 04:15:16 -04:00