final class HLSConnectionHolder extends ConnectionHolder
Modifier and Type | Class and Description |
---|---|
private class |
HLSConnectionHolder.Playlist |
private static class |
HLSConnectionHolder.PlaylistParser |
private class |
HLSConnectionHolder.PlaylistThread |
private static class |
HLSConnectionHolder.VariantPlaylist |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CHARSET_US_ASCII |
private static java.lang.String |
CHARSET_UTF_8 |
private HLSConnectionHolder.Playlist |
currentPlaylist |
private static int |
HLS_PROP_GET_DURATION |
private static int |
HLS_PROP_GET_HLS_MODE |
private static int |
HLS_PROP_GET_MIMETYPE |
private static long |
HLS_VALUE_FLOAT_MULTIPLIER |
private static int |
HLS_VALUE_MIMETYPE_MP2T |
private static int |
HLS_VALUE_MIMETYPE_MP3 |
private boolean |
isBitrateAdjustable |
private boolean |
isPlaylistClosed |
private java.util.concurrent.Semaphore |
liveSemaphore |
private int |
mediaFileIndex |
private HLSConnectionHolder.PlaylistThread |
playlistThread |
private java.util.concurrent.CountDownLatch |
readySignal |
private long |
startTime |
private java.net.URLConnection |
urlConnection |
private HLSConnectionHolder.VariantPlaylist |
variantPlaylist |
buffer, channel
Constructor and Description |
---|
HLSConnectionHolder(java.net.URI uri) |
Modifier and Type | Method and Description |
---|---|
private void |
adjustBitrate(long readTime) |
void |
closeConnection()
Closes connection when done.
|
(package private) int |
getStreamSize()
Get stream size.
|
private void |
init() |
(package private) boolean |
isRandomAccess()
Detects whether the source is a random access source.
|
(package private) boolean |
isSeekable()
Detects whether the source is seekable.
|
private int |
loadNextSegment() |
(package private) boolean |
needBuffer()
Detects whether this source needs buffering at the pipeline level.
|
private java.nio.channels.ReadableByteChannel |
openChannel() |
(package private) int |
property(int prop,
int value)
Get or set properties.
|
(package private) int |
readBlock(long position,
int size)
Reads a block of data from the arbitrary position of the opened stream.
|
int |
readNextBlock()
Reads a block of data from the current position of the opened stream.
|
private void |
resetConnection() |
long |
seek(long position)
Performs a seek request to the desired position.
|
private static java.lang.String |
stripParameters(java.lang.String mediaFile) |
createFileConnectionHolder, createHLSConnectionHolder, createMemoryConnectionHolder, createURIConnectionHolder, getBuffer
private java.net.URLConnection urlConnection
private HLSConnectionHolder.PlaylistThread playlistThread
private HLSConnectionHolder.VariantPlaylist variantPlaylist
private HLSConnectionHolder.Playlist currentPlaylist
private int mediaFileIndex
private java.util.concurrent.CountDownLatch readySignal
private java.util.concurrent.Semaphore liveSemaphore
private boolean isPlaylistClosed
private boolean isBitrateAdjustable
private long startTime
private static final long HLS_VALUE_FLOAT_MULTIPLIER
private static final int HLS_PROP_GET_DURATION
private static final int HLS_PROP_GET_HLS_MODE
private static final int HLS_PROP_GET_MIMETYPE
private static final int HLS_VALUE_MIMETYPE_MP2T
private static final int HLS_VALUE_MIMETYPE_MP3
private static final java.lang.String CHARSET_UTF_8
private static final java.lang.String CHARSET_US_ASCII
HLSConnectionHolder(java.net.URI uri) throws java.io.IOException
java.io.IOException
private void init()
public int readNextBlock() throws java.io.IOException
ConnectionHolder
readNextBlock
in class ConnectionHolder
java.nio.channels.ClosedChannelException
- if an attempt is made to read after
closeConnection has been calledjava.io.IOException
int readBlock(long position, int size) throws java.io.IOException
ConnectionHolder
readBlock
in class ConnectionHolder
java.nio.channels.ClosedChannelException
- if an attempt is made to read after
closeConnection has been calledjava.io.IOException
boolean needBuffer()
ConnectionHolder
needBuffer
in class ConnectionHolder
boolean isSeekable()
ConnectionHolder
isSeekable
in class ConnectionHolder
boolean isRandomAccess()
ConnectionHolder
isRandomAccess
in class ConnectionHolder
public long seek(long position)
ConnectionHolder
seek
in class ConnectionHolder
public void closeConnection()
ConnectionHolder
closeConnection
in class ConnectionHolder
int property(int prop, int value)
ConnectionHolder
property
in class ConnectionHolder
prop
- - Property ID.value
- - Depends on property ID.int getStreamSize()
ConnectionHolder
getStreamSize
in class ConnectionHolder
private void resetConnection()
private int loadNextSegment()
private java.nio.channels.ReadableByteChannel openChannel() throws java.io.IOException
java.io.IOException
private void adjustBitrate(long readTime)
private static java.lang.String stripParameters(java.lang.String mediaFile)