Package io.antmedia.streamsource
Class StreamFetcherManager
java.lang.Object
io.antmedia.streamsource.StreamFetcherManager
Organizes and checks stream fetcher and restarts them if it is required
- Author:
- davut
-
Field Summary
Modifier and TypeFieldDescriptionprivate AppSettings
private DataStore
protected AtomicBoolean
private int
private ILicenceService
protected static org.slf4j.Logger
private boolean
private IScope
private ServerSettings
(package private) boolean
private int
private int
Time period in milli seconds for checking stream fetchers status, restart issues etc.private Map<String,
StreamFetcher> private long
private io.vertx.core.Vertx
-
Constructor Summary
ConstructorDescriptionStreamFetcherManager
(io.vertx.core.Vertx vertx, DataStore datastore, IScope scope) -
Method Summary
Modifier and TypeMethodDescriptionstatic Result
void
controlStreamFetchers
(boolean restart) int
int
getStreamFetcher
(String streamId) boolean
boolean
isStreamRunning
(Broadcast broadcast) boolean
isToBeStoppedAutomatically
(Broadcast broadcast) playItemInList
(Broadcast playlist, StreamFetcher.IStreamFetcherListener listener, int index) void
playNextItemInList
(String streamId, StreamFetcher.IStreamFetcherListener listener) private void
void
setDatastore
(DataStore datastore) void
setRestartStreamAutomatically
(boolean restartStreamAutomatically) void
setStreamCheckerCount
(int streamCheckerCount) void
setStreamFetcherList
(Map<String, StreamFetcher> streamFetcherList) void
skipNextPlaylistQueue
(Broadcast playlist, int index) Skips the next item or set to first item in the list.startPlaylist
(Broadcast playlist) startStreaming
(Broadcast broadcast) startStreamScheduler
(StreamFetcher streamScheduler) void
stopPlayList
(String streamId) stopStreaming
(String streamId) void
testSetStreamCheckerInterval
(int streamCheckerInterval) Set stream checker interval, this value is used in periodically checking the status of the stream fetchers
-
Field Details
-
logger
protected static org.slf4j.Logger logger -
streamCheckerCount
private int streamCheckerCount -
streamFetcherList
-
streamCheckerIntervalMs
private int streamCheckerIntervalMsTime period in milli seconds for checking stream fetchers status, restart issues etc. It's the same value with MuxAdaptor.STAT_UPDATE_PERIOD_MS because it updates the database record and let us understand if stream is alive withAntMediaApplicationAdapter#isStreaming(Broadcast)
-
datastore
-
scope
-
streamFetcherScheduleJobName
private long streamFetcherScheduleJobName -
isJobRunning
-
restartStreamAutomatically
private boolean restartStreamAutomatically -
vertx
private io.vertx.core.Vertx vertx -
lastRestartCount
private int lastRestartCount -
appSettings
-
licenseService
-
serverShuttingDown
boolean serverShuttingDown -
serverSettings
-
-
Constructor Details
-
StreamFetcherManager
-
-
Method Details
-
shuttingDown
public void shuttingDown() -
make
-
getStreamCheckerInterval
public int getStreamCheckerInterval() -
testSetStreamCheckerInterval
public void testSetStreamCheckerInterval(int streamCheckerInterval) Set stream checker interval, this value is used in periodically checking the status of the stream fetchers- Parameters:
streamCheckerInterval
- , time period of the stream fetcher check interval in milliseconds
-
isStreamRunning
-
startStreamScheduler
-
startStreaming
-
stopStreaming
-
stopCheckerJob
public void stopCheckerJob() -
checkStreamUrlWithHTTP
-
playNextItemInList
-
playItemInList
public Result playItemInList(Broadcast playlist, StreamFetcher.IStreamFetcherListener listener, int index) - Parameters:
playlist
-listener
-index
- if it's -1, it plays the next item, if it's zero or bigger, it skips that item to play
-
startPlaylist
-
skipNextPlaylistQueue
Skips the next item or set to first item in the list. If the looping is disabled, it will not set to first item and return nul- Parameters:
playlist
-index
- : if it's -1, plays the next item, otherwise it plays the item that is in the index- Returns:
- Broadcast object for the next item. If it's not looping, it will return null
-
scheduleStreamFetcherJob
private void scheduleStreamFetcherJob() -
isToBeStoppedAutomatically
-
controlStreamFetchers
public void controlStreamFetchers(boolean restart) -
getDatastore
-
setDatastore
-
getStreamFetcherList
-
getStreamFetcher
-
setStreamFetcherList
-
isRestartStreamAutomatically
public boolean isRestartStreamAutomatically() -
setRestartStreamAutomatically
public void setRestartStreamAutomatically(boolean restartStreamAutomatically) -
getStreamCheckerCount
public int getStreamCheckerCount() -
setStreamCheckerCount
public void setStreamCheckerCount(int streamCheckerCount) -
stopPlayList
-