MythTV
master
|
#include <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 43 of file httplivestreambuffer.h.
|
explicit |
Definition at line 1540 of file httplivestreambuffer.cpp.
HLSRingBuffer::HLSRingBuffer | ( | const QString & | lfilename, |
bool | open | ||
) |
Definition at line 1548 of file httplivestreambuffer.cpp.
|
override |
Definition at line 1559 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 2955 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 2948 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 2514 of file httplivestreambuffer.cpp.
Referenced by HLSRingBuffer().
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 54 of file httplivestreambuffer.h.
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 55 of file httplivestreambuffer.h.
Referenced by SeekInternal().
|
inlineoverridevirtual |
Reimplemented from MythMediaBuffer.
Definition at line 56 of file httplivestreambuffer.h.
|
static |
Definition at line 1679 of file httplivestreambuffer.cpp.
Referenced by OpenFile(), and TestForHTTPLiveStreaming().
|
static |
Definition at line 1713 of file httplivestreambuffer.cpp.
Referenced by MythMediaBuffer::Create().
bool HLSRingBuffer::SaveToDisk | ( | const QString & | filename, |
int | segstart = 0 , |
||
int | segend = -1 |
||
) |
Definition at line 2602 of file httplivestreambuffer.cpp.
int HLSRingBuffer::NumStreams | ( | void | ) | const |
Definition at line 2385 of file httplivestreambuffer.cpp.
Referenced by StreamWorker::BandwidthAdaptation(), StreamWorker::Cancel(), and PlaylistWorker::Cancel().
void HLSRingBuffer::Interrupt | ( | void | ) |
Definition at line 2960 of file httplivestreambuffer.cpp.
void HLSRingBuffer::Continue | ( | void | ) |
Definition at line 2969 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 2762 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2677 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Reimplemented from MythMediaBuffer.
Definition at line 2786 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2792 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1586 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist(), and ~HLSRingBuffer().
|
private |
Definition at line 1600 of file httplivestreambuffer.cpp.
Referenced by SeekInternal().
|
private |
Definition at line 1610 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 1624 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1629 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1642 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist().
|
private |
return the stream we are currently streaming from
Definition at line 1670 of file httplivestreambuffer.cpp.
Referenced by GetStreamForSegment(), OpenFile(), PlaylistWorker::run(), SizeMedia(), and WaitUntilBuffered().
|
staticprivate |
Definition at line 1745 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 1770 of file httplivestreambuffer.cpp.
Referenced by ParseMediaSequence(), ParseTargetDuration(), and ParseVersion().
|
staticprivate |
Definition at line 1783 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1842 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1860 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1903 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1932 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2017 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2028 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2052 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2083 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2095 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 2102 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::GetHTTPLiveMetaPlaylist(), and OpenFile().
|
private |
Preferetch the first x segments of the stream.
Definition at line 2298 of file httplivestreambuffer.cpp.
Referenced by OpenFile().
|
private |
Definition at line 2323 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 2349 of file httplivestreambuffer.cpp.
Referenced by SaveToDisk().
|
private |
Definition at line 2390 of file httplivestreambuffer.cpp.
Referenced by ChooseSegment(), StreamWorker::CurrentLiveBuffer(), StreamWorker::GotBufferedSegments(), StreamWorker::IsAtEnd(), IsOpen(), OpenFile(), SafeRead(), SaveToDisk(), and SeekInternal().
|
private |
Definition at line 2401 of file httplivestreambuffer.cpp.
|
private |
Definition at line 2634 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 2649 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 2447 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::GetHTTPLiveMetaPlaylist(), and OpenFile().
|
friend |
Definition at line 129 of file httplivestreambuffer.h.
Referenced by OpenFile().
|
friend |
Definition at line 131 of file httplivestreambuffer.h.
Referenced by OpenFile().
|
private |
Definition at line 102 of file httplivestreambuffer.h.
Referenced by OpenFile(), ParseM3U8(), and ParseStreamInformation().
|
private |
Definition at line 103 of file httplivestreambuffer.h.
|
private |
Definition at line 105 of file httplivestreambuffer.h.
Referenced by StreamWorker::CurrentPlaybackBuffer(), DurationForBytes(), GetReadPosition(), OpenFile(), StreamWorker::run(), SafeRead(), SeekInternal(), WaitUntilBuffered(), and ~HLSRingBuffer().
|
private |
Definition at line 108 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 109 of file httplivestreambuffer.h.
Referenced by Continue(), and Interrupt().
Definition at line 110 of file httplivestreambuffer.h.
Referenced by ParseM3U8(), and StreamWorker::run().
Definition at line 111 of file httplivestreambuffer.h.
Referenced by GetReadPosition(), GetSegment(), IsOpen(), IsSeekingAllowed(), OpenFile(), Prefetch(), PlaylistWorker::run(), SafeRead(), SeekInternal(), SizeMedia(), and WaitUntilBuffered().
|
private |
Definition at line 115 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 121 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 127 of file httplivestreambuffer.h.
Referenced by SeekInternal(), and WaitUntilBuffered().
|
private |
Definition at line 130 of file httplivestreambuffer.h.
Referenced by DurationForBytes(), GetCurrentStream(), GetSegment(), GetStreamForSegment(), OpenFile(), Prefetch(), PlaylistWorker::run(), SafeRead(), SanityCheck(), SeekInternal(), WaitUntilBuffered(), and ~HLSRingBuffer().
|
private |
Definition at line 132 of file httplivestreambuffer.h.
Referenced by OpenFile(), and ~HLSRingBuffer().
|
private |
Definition at line 133 of file httplivestreambuffer.h.
Referenced by SafeRead(), and ~HLSRingBuffer().
Definition at line 134 of file httplivestreambuffer.h.
Referenced by Continue(), Interrupt(), SafeRead(), SeekInternal(), and WaitUntilBuffered().
Definition at line 135 of file httplivestreambuffer.h.
Referenced by ParseM3U8(), Prefetch(), and ~HLSRingBuffer().