MythTV
master
|
#include <libmythtv/HLS/httplivestreambuffer.h>
Public Member Functions | |
HLSRingBuffer (const QString &lfilename) | |
HLSRingBuffer (const QString &lfilename, bool open) | |
~HLSRingBuffer () override | |
bool | IsOpen (void) const override |
long long | GetReadPosition (void) const override |
bool | OpenFile (const QString &lfilename, std::chrono::milliseconds retry_ms=kDefaultOpenTimeout) override |
Opens an HTTP Live Stream for reading. More... | |
bool | IsStreamed (void) override |
bool | IsSeekingAllowed (void) override |
bool | IsBookmarkAllowed (void) override |
bool | SaveToDisk (const QString &filename, int segstart=0, int segend=-1) |
int | NumStreams (void) const |
void | Interrupt (void) |
void | Continue (void) |
int | DurationForBytes (uint size) |
returns an estimated duration in ms for size amount of data returns 0 if we can't estimate the duration More... | |
![]() | |
~MythMediaBuffer () override=0 | |
Deletes. More... | |
MythBufferType | GetType () const |
void | SetOldFile (bool Old) |
Tell RingBuffer if this is an old file or not. More... | |
void | UpdateRawBitrate (uint RawBitrate) |
Set the raw bit rate, to allow RingBuffer adjust effective bitrate. More... | |
void | UpdatePlaySpeed (float PlaySpeed) |
Set the play speed, to allow RingBuffer adjust effective bitrate. More... | |
void | EnableBitrateMonitor (bool Enable) |
void | SetBufferSizeFactors (bool EstBitrate, bool Matroska) |
Tells RingBuffer that the raw bitrate may be inaccurate and the underlying container is matroska, both of which may require a larger buffer size. More... | |
void | SetWaitForWrite (void) |
QString | GetSafeFilename (void) |
QString | GetFilename (void) const |
QString | GetSubtitleFilename (void) const |
QString | GetLastError (void) const |
bool | GetCommsError (void) const |
void | ResetCommsError (void) |
bool | GetStopReads (void) const |
QString | GetDecoderRate (void) |
QString | GetStorageRate (void) |
QString | GetAvailableBuffer (void) |
uint | GetBufferSize (void) const |
bool | IsNearEnd (double Framerate, uint Frames) const |
long long | GetWritePosition (void) const |
Returns how far into a ThreadedFileWriter file we have written. More... | |
long long | GetRealFileSize (void) const |
bool | IsDisc (void) const |
bool | IsDVD (void) const |
bool | IsBD (void) const |
const MythDVDBuffer * | DVD (void) const |
MythDVDBuffer * | DVD (void) |
const MythBDBuffer * | BD (void) const |
MythBDBuffer * | BD (void) |
int | Read (void *Buffer, int Count) |
This is the public method for reading from a file, it calls the appropriate read method if the file is remote or buffered, or a BD/DVD. More... | |
int | Peek (void *Buffer, int Count) |
int | Peek (std::vector< char > &Buffer) |
void | Reset (bool Full=false, bool ToAdjust=false, bool ResetInternal=false) |
Resets the read-ahead thread and our position in the file. More... | |
void | Pause (void) |
Pauses the read-ahead thread. Calls StopReads(void). More... | |
void | Unpause (void) |
Unpauses the read-ahead thread. Calls StartReads(void). More... | |
void | WaitForPause (void) |
Waits for Pause(void) to take effect. More... | |
void | Start (void) |
Starts the read-ahead thread. More... | |
void | StopReads (void) |
void | StartReads (void) |
long long | Seek (long long Position, int Whence, bool HasLock=false) |
long long | SetAdjustFilesize (void) |
int | GetReadBufAvail (void) const |
Returns number of bytes available for reading from buffer. More... | |
bool | SetReadInternalMode (bool Mode) |
bool | IsReadInternalMode (void) const |
bool | LiveMode (void) const |
Returns true if this RingBuffer has been assigned a LiveTVChain. More... | |
void | SetLiveMode (LiveTVChain *Chain) |
Assigns a LiveTVChain to this RingBuffer. More... | |
void | IgnoreLiveEOF (bool Ignore) |
Tells RingBuffer whether to ignore the end-of-file. More... | |
int | Write (const void *Buffer, uint Count) |
Writes buffer to ThreadedFileWriter::Write(const void*,uint) More... | |
bool | IsIOBound (void) const |
void | WriterFlush (void) |
Calls ThreadedFileWriter::Flush(void) More... | |
void | Sync (void) |
Calls ThreadedFileWriter::Sync(void) More... | |
long long | WriterSeek (long long Position, int Whence, bool HasLock=false) |
Calls ThreadedFileWriter::Seek(long long,int). More... | |
bool | WriterSetBlocking (bool Lock=true) |
Calls ThreadedFileWriter::SetBlocking(bool) More... | |
virtual int | BestBufferSize (void) |
virtual bool | StartFromBeginning (void) |
virtual void | IgnoreWaitStates (bool) |
virtual bool | IsInMenu (void) const |
virtual bool | IsInStillFrame (void) const |
virtual bool | IsInDiscMenuOrStillFrame (void) const |
virtual bool | HandleAction (const QStringList &, mpeg::chrono::pts) |
virtual bool | ReOpen (const QString &="") |
Static Public Member Functions | |
static bool | IsHTTPLiveStreaming (QByteArray *s) |
static bool | TestForHTTPLiveStreaming (const QString &filename) |
![]() | |
static MythMediaBuffer * | Create (const QString &Filename, bool Write, bool UseReadAhead=true, std::chrono::milliseconds Timeout=kDefaultOpenTimeout, bool StreamOnly=false) |
Creates a RingBuffer instance. More... | |
static QString | BitrateToString (uint64_t Rate, bool Hz=false) |
static void | AVFormatInitNetwork (void) |
Protected Member Functions | |
int | SafeRead (void *data, uint sz) override |
long long | GetRealFileSizeInternal (void) const override |
long long | SeekInternal (long long pos, int whence) override |
![]() | |
MythMediaBuffer (MythBufferType Type) | |
void | run (void) override |
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More... | |
void | CreateReadAheadBuffer (void) |
void | CalcReadAheadThresh (void) |
Calculates m_fillMin, m_fillThreshold, and m_readBlockSize from the estimated effective bitrate of the stream. More... | |
bool | PauseAndWait (void) |
int | ReadPriv (void *Buffer, int Count, bool Peek) |
When possible reads from the read-ahead buffer, otherwise reads directly from the device. More... | |
int | ReadDirect (void *Buffer, int Count, bool Peek) |
bool | WaitForReadsAllowed (void) |
int | WaitForAvail (int Count, std::chrono::milliseconds Timeout) |
int | ReadBufFree (void) const |
Returns number of bytes available for reading into buffer. More... | |
int | ReadBufAvail (void) const |
Returns number of bytes available for reading from buffer. More... | |
void | ResetReadAhead (long long NewInternal) |
Restart the read-ahead thread at the 'newinternal' position. More... | |
void | KillReadAheadThread (void) |
Stops the read-ahead thread, and waits for it to stop. More... | |
uint64_t | UpdateDecoderRate (uint64_t Latest=0) |
uint64_t | UpdateStorageRate (uint64_t Latest=0) |
![]() | |
int | exec (void) |
Enters the qt event loop. call exit or quit to exit thread. More... | |
MThread (const QString &objectName) | |
Standard constructor. More... | |
MThread (const QString &objectName, QRunnable *runnable) | |
Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More... | |
virtual | ~MThread () |
MThread (const MThread &)=delete | |
MThread & | operator= (const MThread &)=delete |
void | RunProlog (void) |
Sets up a thread, call this if you reimplement run(). More... | |
void | RunEpilog (void) |
Cleans up a thread's resources, call this if you reimplement run(). More... | |
QThread * | qthread (void) |
Returns the thread, this will always return the same pointer no matter how often you restart the thread. More... | |
void | setObjectName (const QString &name) |
QString | objectName (void) const |
void | setPriority (QThread::Priority priority) |
QThread::Priority | priority (void) const |
bool | isFinished (void) const |
bool | isRunning (void) const |
void | setStackSize (uint stackSize) |
uint | stackSize (void) const |
void | exit (int retcode=0) |
Use this to exit from the thread if you are using a Qt event loop. More... | |
void | start (QThread::Priority p=QThread::InheritPriority) |
Tell MThread to start running the thread in the near future. More... | |
void | terminate (void) |
Kill a thread unsafely. More... | |
void | quit (void) |
calls exit(0) More... | |
bool | wait (std::chrono::milliseconds time=std::chrono::milliseconds::max()) |
Wait for the MThread to exit, with a maximum timeout. More... | |
Private Member Functions | |
void | FreeStreamsList (QList< HLSStream * > *streams) const |
HLSStream * | GetStreamForSegment (int segnum) const |
HLSStream * | GetStream (int wanted, const StreamsList *streams=nullptr) const |
HLSStream * | GetFirstStream (const StreamsList *streams=nullptr) const |
HLSStream * | GetLastStream (const StreamsList *streams=nullptr) const |
HLSStream * | FindStream (const HLSStream *hls_new, const StreamsList *streams=nullptr) const |
HLSStream * | GetCurrentStream (void) const |
return the stream we are currently streaming from More... | |
HLSStream * | ParseStreamInformation (const QString &line, const QString &uri) const |
int | ParseKey (HLSStream *hls, const QString &line) |
int | ParseM3U8 (const QByteArray *buffer, StreamsList *streams=nullptr) |
int | Prefetch (int count) |
Preferetch the first x segments of the stream. More... | |
void | SanityCheck (const HLSStream *hls) const |
HLSSegment * | GetSegment (int segnum, std::chrono::milliseconds timeout=1s) |
Retrieve segment [segnum] from any available streams. More... | |
int | NumSegments (void) const |
int | ChooseSegment (int stream) const |
int64_t | SizeMedia (void) const |
void | WaitUntilBuffered (void) |
Wait until we have enough segments buffered to allow smooth playback Do not wait if VOD and at end of buffer. More... | |
void | SanitizeStreams (StreamsList *streams=nullptr) |
Streams may not be all starting at the same sequence number, so attempt to align their starting sequence. More... | |
Static Private Member Functions | |
static QString | ParseAttributes (const QString &line, const char *attr) |
static int | ParseDecimalValue (const QString &line, int &target) |
Return the decimal argument in a line of type: blah:<decimal> presence of value <decimal> is compulsory or it will return RET_ERROR. More... | |
static int | ParseSegmentInformation (const HLSStream *hls, const QString &line, int &duration, QString &title) |
static int | ParseTargetDuration (HLSStream *hls, const QString &line) |
static int | ParseMediaSequence (HLSStream *hls, const QString &line) |
static int | ParseProgramDateTime (HLSStream *hls, const QString &line) |
static int | ParseAllowCache (HLSStream *hls, const QString &line) |
static int | ParseVersion (const QString &line, int &version) |
static int | ParseEndList (HLSStream *hls) |
static int | ParseDiscontinuity (HLSStream *hls, const QString &line) |
Private Attributes | |
QString | m_m3u8 |
QByteArray | m_peeked |
HLSPlayback * | m_playback {nullptr} |
StreamsList | m_streams |
QMutex | m_lock |
bool | m_meta {false} |
bool | m_error {false} |
int | m_startup {0} |
int64_t | m_bitrate {0} |
assumed bitrate of playback used for the purpose of calculating length and seek position. More... | |
bool | m_seektoend {false} |
FFmpeg seek to the end of the stream in order to determine the length of the video. More... | |
StreamWorker * | m_streamworker {nullptr} |
PlaylistWorker * | m_playlistworker {nullptr} |
FILE * | m_fd {nullptr} |
bool | m_interrupted {false} |
bool | m_killed {false} |
Friends | |
class | StreamWorker |
class | PlaylistWorker |
Additional Inherited Members | |
![]() | |
static constexpr std::chrono::milliseconds | kDefaultOpenTimeout { 2s } |
static constexpr std::chrono::milliseconds | kLiveTVOpenTimeout { 10s } |
![]() | |
static void | setTerminationEnabled (bool enabled=true) |
static void | usleep (std::chrono::microseconds time) |
template<typename R , typename P > | |
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > | usleep (std::chrono::duration< R, P > time) |
static void | ThreadSetup (const QString &name) |
This is to be called on startup in those few threads that haven't been ported to MThread. More... | |
static void | ThreadCleanup (void) |
This is to be called on exit in those few threads that haven't been ported to MThread. More... | |
static void | Cleanup (void) |
This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More... | |
static void | GetAllThreadNames (QStringList &list) |
static void | GetAllRunningThreadNames (QStringList &list) |
![]() | |
MythBufferType | m_type |
QReadWriteLock | m_posLock |
long long | m_readPos { 0 } |
long long | m_writePos { 0 } |
long long | m_internalReadPos { 0 } |
long long | m_ignoreReadPos { -1 } |
QReadWriteLock | m_rbrLock |
int | m_rbrPos { 0 } |
QReadWriteLock | m_rbwLock |
int | m_rbwPos { 0 } |
volatile bool | m_stopReads {false} |
QString | m_safeFilename |
QReadWriteLock | m_rwLock |
QString | m_filename |
QString | m_subtitleFilename |
QString | m_lastError |
ThreadedFileWriter * | m_tfw { nullptr } |
int | m_fd2 { -1 } |
bool | m_writeMode { false } |
RemoteFile * | m_remotefile { nullptr } |
uint | m_bufferSize { BUFFER_SIZE_MINIMUM } |
bool | m_lowBuffers { false } |
bool | m_fileIsMatroska { false } |
bool | m_unknownBitrate { false } |
bool | m_startReadAhead { false } |
char * | m_readAheadBuffer { nullptr } |
bool | m_readAheadRunning { false } |
bool | m_reallyRunning { false } |
bool | m_requestPause { false } |
bool | m_paused { false } |
bool | m_ateof { false } |
bool | m_waitForWrite { false } |
bool | m_beingWritten { false } |
bool | m_readsAllowed { false } |
bool | m_readsDesired { false } |
volatile bool | m_recentSeek { true } |
bool | m_setSwitchToNext { false } |
uint | m_rawBitrate { 8000 } |
float | m_playSpeed { 1.0F } |
int | m_fillThreshold { 65536 } |
int | m_fillMin { -1 } |
int | m_readBlockSize { DEFAULT_CHUNK_SIZE} |
int | m_wantToRead { 0 } |
int | m_numFailures { 0 } |
bool | m_commsError { false } |
bool | m_oldfile { false } |
LiveTVChain * | m_liveTVChain { nullptr } |
bool | m_ignoreLiveEOF { false } |
long long | m_readAdjust { 0 } |
int | m_readOffset { 0 } |
bool | m_readInternalMode { false } |
bool | m_bitrateMonitorEnabled { false } |
QMutex | m_decoderReadLock |
QMap< std::chrono::milliseconds, uint64_t > | m_decoderReads |
QMutex | m_storageReadLock |
QMap< std::chrono::milliseconds, uint64_t > | m_storageReads |
QWaitCondition | m_generalWait |
Condition to signal that the read ahead thread is running. More... | |
![]() | |
MThreadInternal * | m_thread {nullptr} |
QRunnable * | m_runnable {nullptr} |
bool | m_prologExecuted {true} |
bool | m_epilogExecuted {true} |
Definition at line 38 of file httplivestreambuffer.h.
|
explicit |
Definition at line 1617 of file httplivestreambuffer.cpp.
HLSRingBuffer::HLSRingBuffer | ( | const QString & | lfilename, |
bool | open | ||
) |
Definition at line 1625 of file httplivestreambuffer.cpp.
|
override |
Definition at line 1636 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 3055 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 3048 of file httplivestreambuffer.cpp.
|
overridevirtual |
Opens an HTTP Live Stream for reading.
lfilename | Url of the HTTP live stream to read. |
retry_ms | Ignored. This value is part of the API inherited from the parent class. |
Implements MythMediaBuffer.
Definition at line 2611 of file httplivestreambuffer.cpp.
Referenced by HLSRingBuffer().
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 49 of file httplivestreambuffer.h.
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 50 of file httplivestreambuffer.h.
Referenced by SeekInternal().
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 51 of file httplivestreambuffer.h.
|
static |
Definition at line 1756 of file httplivestreambuffer.cpp.
Referenced by OpenFile(), and TestForHTTPLiveStreaming().
|
static |
Definition at line 1790 of file httplivestreambuffer.cpp.
Referenced by MythMediaBuffer::Create().
bool HLSRingBuffer::SaveToDisk | ( | const QString & | filename, |
int | segstart = 0 , |
||
int | segend = -1 |
||
) |
Definition at line 2699 of file httplivestreambuffer.cpp.
int HLSRingBuffer::NumStreams | ( | void | ) | const |
Definition at line 2478 of file httplivestreambuffer.cpp.
Referenced by StreamWorker::BandwidthAdaptation(), StreamWorker::Cancel(), and PlaylistWorker::Cancel().
void HLSRingBuffer::Interrupt | ( | void | ) |
Definition at line 3060 of file httplivestreambuffer.cpp.
void HLSRingBuffer::Continue | ( | void | ) |
Definition at line 3069 of file httplivestreambuffer.cpp.
int HLSRingBuffer::DurationForBytes | ( | uint | size | ) |
returns an estimated duration in ms for size amount of data returns 0 if we can't estimate the duration
Definition at line 2862 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2777 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Reimplemented from MythMediaBuffer.
Definition at line 2886 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2892 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1663 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist(), and ~HLSRingBuffer().
|
private |
Definition at line 1677 of file httplivestreambuffer.cpp.
Referenced by SeekInternal().
|
private |
Definition at line 1687 of file httplivestreambuffer.cpp.
Referenced by StreamWorker::BandwidthAdaptation(), StreamWorker::Cancel(), PlaylistWorker::Cancel(), ChooseSegment(), DurationForBytes(), FindStream(), FreeStreamsList(), GetCurrentStream(), GetFirstStream(), PlaylistWorker::GetHTTPLiveMetaPlaylist(), GetLastStream(), GetSegment(), GetStreamForSegment(), NumSegments(), PlaylistWorker::ReloadPlaylist(), StreamWorker::run(), SafeRead(), and SanitizeStreams().
|
private |
Definition at line 1701 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1706 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1719 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist().
|
private |
return the stream we are currently streaming from
Definition at line 1747 of file httplivestreambuffer.cpp.
Referenced by GetStreamForSegment(), OpenFile(), PlaylistWorker::run(), SizeMedia(), and WaitUntilBuffered().
|
staticprivate |
Definition at line 1822 of file httplivestreambuffer.cpp.
Referenced by ParseKey(), and ParseStreamInformation().
|
staticprivate |
Return the decimal argument in a line of type: blah:<decimal> presence of value <decimal> is compulsory or it will return RET_ERROR.
Definition at line 1847 of file httplivestreambuffer.cpp.
Referenced by ParseMediaSequence(), ParseTargetDuration(), and ParseVersion().
|
staticprivate |
Definition at line 1862 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1921 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1939 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1982 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 2011 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2096 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2107 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2131 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2162 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2174 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 2181 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::GetHTTPLiveMetaPlaylist(), and OpenFile().
|
private |
Preferetch the first x segments of the stream.
Definition at line 2391 of file httplivestreambuffer.cpp.
Referenced by OpenFile().
|
private |
Definition at line 2416 of file httplivestreambuffer.cpp.
Referenced by GetSegment().
|
private |
Retrieve segment [segnum] from any available streams.
Assure that the segment has been downloaded Return nullptr if segment couldn't be retrieved after timeout (in ms)
Definition at line 2442 of file httplivestreambuffer.cpp.
Referenced by SaveToDisk().
|
private |
Definition at line 2483 of file httplivestreambuffer.cpp.
Referenced by ChooseSegment(), StreamWorker::CurrentLiveBuffer(), StreamWorker::GotBufferedSegments(), StreamWorker::IsAtEnd(), IsOpen(), OpenFile(), SafeRead(), SaveToDisk(), and SeekInternal().
|
private |
Definition at line 2494 of file httplivestreambuffer.cpp.
|
private |
Definition at line 2731 of file httplivestreambuffer.cpp.
Referenced by GetRealFileSizeInternal(), and SeekInternal().
|
private |
Wait until we have enough segments buffered to allow smooth playback Do not wait if VOD and at end of buffer.
Definition at line 2748 of file httplivestreambuffer.cpp.
Referenced by SafeRead().
|
private |
Streams may not be all starting at the same sequence number, so attempt to align their starting sequence.
Definition at line 2540 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::GetHTTPLiveMetaPlaylist(), and OpenFile().
|
friend |
Definition at line 124 of file httplivestreambuffer.h.
Referenced by OpenFile().
|
friend |
Definition at line 126 of file httplivestreambuffer.h.
Referenced by OpenFile().
|
private |
Definition at line 97 of file httplivestreambuffer.h.
Referenced by OpenFile(), ParseM3U8(), and ParseStreamInformation().
|
private |
Definition at line 98 of file httplivestreambuffer.h.
|
private |
Definition at line 100 of file httplivestreambuffer.h.
Referenced by StreamWorker::CurrentPlaybackBuffer(), DurationForBytes(), GetReadPosition(), OpenFile(), StreamWorker::run(), SafeRead(), SeekInternal(), WaitUntilBuffered(), and ~HLSRingBuffer().
|
private |
Definition at line 103 of file httplivestreambuffer.h.
Referenced by FindStream(), FreeStreamsList(), PlaylistWorker::GetHTTPLiveMetaPlaylist(), GetLastStream(), GetStream(), IsOpen(), NumStreams(), OpenFile(), ParseM3U8(), PlaylistWorker::ReloadPlaylist(), SanitizeStreams(), and ~HLSRingBuffer().
|
mutableprivate |
Definition at line 104 of file httplivestreambuffer.h.
Referenced by Continue(), and Interrupt().
Definition at line 105 of file httplivestreambuffer.h.
Referenced by ParseM3U8(), and StreamWorker::run().
Definition at line 106 of file httplivestreambuffer.h.
Referenced by GetReadPosition(), GetSegment(), IsOpen(), IsSeekingAllowed(), OpenFile(), Prefetch(), PlaylistWorker::run(), SafeRead(), SeekInternal(), SizeMedia(), and WaitUntilBuffered().
|
private |
Definition at line 110 of file httplivestreambuffer.h.
Referenced by OpenFile(), and SeekInternal().
|
private |
assumed bitrate of playback used for the purpose of calculating length and seek position.
the value itself is irrelevant, as it's only used as a common reference
Definition at line 116 of file httplivestreambuffer.h.
Referenced by OpenFile(), SeekInternal(), and SizeMedia().
FFmpeg seek to the end of the stream in order to determine the length of the video.
Set to boolean to true after we detected a seek to the end this will prevent waiting for new data in safe_read
Definition at line 122 of file httplivestreambuffer.h.
Referenced by SeekInternal(), and WaitUntilBuffered().
|
private |
Definition at line 125 of file httplivestreambuffer.h.
Referenced by DurationForBytes(), GetCurrentStream(), GetSegment(), GetStreamForSegment(), OpenFile(), Prefetch(), PlaylistWorker::run(), SafeRead(), SanityCheck(), SeekInternal(), WaitUntilBuffered(), and ~HLSRingBuffer().
|
private |
Definition at line 127 of file httplivestreambuffer.h.
Referenced by OpenFile(), and ~HLSRingBuffer().
|
private |
Definition at line 128 of file httplivestreambuffer.h.
Referenced by SafeRead(), and ~HLSRingBuffer().
Definition at line 129 of file httplivestreambuffer.h.
Referenced by Continue(), Interrupt(), SafeRead(), SeekInternal(), and WaitUntilBuffered().
Definition at line 130 of file httplivestreambuffer.h.
Referenced by ParseM3U8(), Prefetch(), and ~HLSRingBuffer().