mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-10 23:57:25 -05:00
Compare commits
8 Commits
v0.3.0-bet
...
v0.3.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8621d1c8e2 | ||
|
|
1cd45a1b79 | ||
|
|
8215b78a43 | ||
|
|
f53519ad59 | ||
|
|
e6ab615931 | ||
|
|
0c84984fcc | ||
|
|
b3e493989e | ||
|
|
50e838749d |
11
CHANGELOG
11
CHANGELOG
@@ -1,11 +1,12 @@
|
||||
|
||||
0.3.0 2017xxxx (work in progress)
|
||||
0.3.0-beta1 20170129
|
||||
- FEATURE: audio streaming - adds capability to stream to multiple remote broadcast
|
||||
servers (Broadcastify, Icecast v2.3 and v2.4+, and Shoutcast V1 and V2). Each
|
||||
stream can be independently configured with a delay. Audio calls are directed
|
||||
to one or more streams by attaching one or more stream identifiers to each alias.
|
||||
- Requires Java 8 (or newer) for compatibility with eventual changeover to JavaFX
|
||||
- Extensive GUI updates for tuner, channel and alias management.
|
||||
- Requires Java 8 (or newer) for compatibility and eventual changeover to JavaFX
|
||||
- Extensive GUI updates for tuner, channel and alias management. Includes new
|
||||
'Now Playing' channel view and 'Detail' view.
|
||||
- Updated alias list management of alias id values and wildcards. Weighting is now
|
||||
applied to each wildcard so that they can be ordered from most specific to least
|
||||
specific for lookup value matching purposes.
|
||||
@@ -13,6 +14,10 @@
|
||||
patch group aliases that roll-up aliases from each patched talkgroup to support
|
||||
audio recording and streaming of patch calls according to the identifiers and
|
||||
actions defined for each of the patched talkgroups.
|
||||
- Implemented bounded queues for both tuner and individual channel IQ sample
|
||||
buffers. Bounded queues have ability to enter/exit overflow state when queue
|
||||
size reaches overflow threshold and reset when queue size falls below the reset
|
||||
threshold.
|
||||
- Updated airspy controller for airspy-mini specific sample rate handling.
|
||||
- New developer remez filter designer tool and internal usage
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<property name="major" value="0"/>
|
||||
<property name="minor" value="3"/>
|
||||
<property name="patch" value="0"/>
|
||||
<property name="release" value="-beta1"/>
|
||||
<property name="release" value="-beta2"/>
|
||||
<property name="filename" value="sdrtrunk_${major}.${minor}.${patch}${release}"/>
|
||||
|
||||
<!-- Build properties -->
|
||||
|
||||
@@ -38,6 +38,7 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.ConnectException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.channels.UnresolvedAddressException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Queue;
|
||||
@@ -152,6 +153,10 @@ public class IcecastBroadcastMetadataUpdater implements IBroadcastMetadataUpdate
|
||||
{
|
||||
//Do nothing, the server is unavailable
|
||||
}
|
||||
else if(throwableCause instanceof UnresolvedAddressException)
|
||||
{
|
||||
//Do nothing - the server is temporarily unavailable
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!mStackTraceLoggingSuppressed)
|
||||
|
||||
@@ -59,10 +59,10 @@ public class IcecastHTTPAudioBroadcaster extends IcecastAudioBroadcaster
|
||||
private AtomicBoolean mConnecting = new AtomicBoolean();
|
||||
|
||||
/**
|
||||
* Creates an Icecast 2.3.2 compatible broadcaster using TCP and a pseudo HTTP 1.0 protocol. This broadcaster is
|
||||
* compatible with Icecast version 2.3.2 and older versions of the server software.
|
||||
* Creates an Icecast 2.4.x compatible broadcaster using HTTP 1.1 protocol. This broadcaster is
|
||||
* compatible with Icecast version 2.4.x and newer versions of the server software.
|
||||
*
|
||||
* Note: use @see IcecastHTTPAudioBroadcaster for Icecast version 2.4.x and newer.
|
||||
* Note: use @see IcecastTCPAudioBroadcaster for Icecast version 2.3.x and older.
|
||||
*
|
||||
* This broadcaster uses the Apache Mina library for the streaming socket connection and for metadata updates. The
|
||||
* IcecastHTTPIOHandler manages all interaction with the Icecast server and manages the overall broadcast state.
|
||||
|
||||
@@ -55,15 +55,14 @@ public class OverflowableTransferQueue<E>
|
||||
{
|
||||
if(!mOverflow)
|
||||
{
|
||||
if(mCounter.get() > mMaximumSize)
|
||||
mQueue.offer(e);
|
||||
|
||||
int size = mCounter.incrementAndGet();
|
||||
|
||||
if(size > mMaximumSize)
|
||||
{
|
||||
setOverflow(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
mQueue.offer(e);
|
||||
mCounter.incrementAndGet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +75,12 @@ public class OverflowableTransferQueue<E>
|
||||
|
||||
if(drainCount > 0)
|
||||
{
|
||||
mCounter.addAndGet(-drainCount);
|
||||
int size = mCounter.addAndGet(-drainCount);
|
||||
|
||||
if(mOverflow && size <= mResetThreshold)
|
||||
{
|
||||
setOverflow(false);
|
||||
}
|
||||
}
|
||||
|
||||
return drainCount;
|
||||
|
||||
@@ -78,14 +78,9 @@ public abstract class RTL2832TunerController extends TunerController
|
||||
|
||||
private SampleRate mSampleRate = DEFAULT_SAMPLE_RATE;
|
||||
|
||||
private ByteSampleAdapter mSampleAdapter = new ByteSampleAdapter();
|
||||
|
||||
private Broadcaster<ComplexBuffer> mComplexBufferBroadcaster = new Broadcaster<>();
|
||||
|
||||
protected ByteSampleAdapter mSampleAdapter = new ByteSampleAdapter();
|
||||
protected int mOscillatorFrequency = 28800000; //28.8 MHz
|
||||
|
||||
private USBTransferProcessor mUSBTransferProcessor;
|
||||
|
||||
protected USBTransferProcessor mUSBTransferProcessor;
|
||||
protected Descriptor mDescriptor;
|
||||
|
||||
/**
|
||||
|
||||
@@ -249,6 +249,11 @@ public class E4KTunerController extends RTL2832TunerController
|
||||
throw new SourceException("E4K Tuner Controller - error during "
|
||||
+ "init()", e);
|
||||
}
|
||||
|
||||
String deviceName = getTunerType().getLabel() + " " + getUniqueID();
|
||||
|
||||
mUSBTransferProcessor = new RTL2832USBTransferProcessor(deviceName, mDeviceHandle, mSampleAdapter,
|
||||
USB_TRANSFER_BUFFER_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -173,7 +173,7 @@ public class USBTransferProcessor implements TransferCallback
|
||||
|
||||
//Start transferred buffer dispatcher
|
||||
mBufferDispatcherFuture = ThreadPool.SCHEDULED.scheduleAtFixedRate(mBufferDispatcher,
|
||||
20, 20, TimeUnit.MILLISECONDS);
|
||||
0, 11, TimeUnit.MILLISECONDS);
|
||||
|
||||
//Register with LibUSB processor so that it auto-starts LibUSB processing
|
||||
TunerManager.LIBUSB_TRANSFER_PROCESSOR.registerTransferProcessor(this);
|
||||
|
||||
Reference in New Issue
Block a user