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 1538 of file httplivestreambuffer.cpp.
HLSRingBuffer::HLSRingBuffer | ( | const QString & | lfilename, |
bool | open | ||
) |
Definition at line 1546 of file httplivestreambuffer.cpp.
|
override |
Definition at line 1557 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 2957 of file httplivestreambuffer.cpp.
|
overridevirtual |
Implements MythMediaBuffer.
Definition at line 2950 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 2516 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 1677 of file httplivestreambuffer.cpp.
Referenced by OpenFile(), and TestForHTTPLiveStreaming().
|
static |
Definition at line 1711 of file httplivestreambuffer.cpp.
Referenced by MythMediaBuffer::Create().
bool HLSRingBuffer::SaveToDisk | ( | const QString & | filename, |
int | segstart = 0 , |
||
int | segend = -1 |
||
) |
Definition at line 2604 of file httplivestreambuffer.cpp.
int HLSRingBuffer::NumStreams | ( | void | ) | const |
Definition at line 2383 of file httplivestreambuffer.cpp.
Referenced by StreamWorker::BandwidthAdaptation(), StreamWorker::Cancel(), and PlaylistWorker::Cancel().
void HLSRingBuffer::Interrupt | ( | void | ) |
Definition at line 2962 of file httplivestreambuffer.cpp.
void HLSRingBuffer::Continue | ( | void | ) |
Definition at line 2971 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 2764 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2679 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Reimplemented from MythMediaBuffer.
Definition at line 2788 of file httplivestreambuffer.cpp.
|
overrideprotectedvirtual |
Implements MythMediaBuffer.
Definition at line 2794 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1584 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist(), and ~HLSRingBuffer().
|
private |
Definition at line 1598 of file httplivestreambuffer.cpp.
Referenced by SeekInternal().
|
private |
Definition at line 1608 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 1622 of file httplivestreambuffer.cpp.
|
private |
Definition at line 1627 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1640 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::ReloadPlaylist().
|
private |
return the stream we are currently streaming from
Definition at line 1668 of file httplivestreambuffer.cpp.
Referenced by GetStreamForSegment(), OpenFile(), PlaylistWorker::run(), SizeMedia(), and WaitUntilBuffered().
|
staticprivate |
Definition at line 1743 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 1768 of file httplivestreambuffer.cpp.
Referenced by ParseMediaSequence(), ParseTargetDuration(), and ParseVersion().
|
staticprivate |
Definition at line 1781 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1840 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1858 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 1901 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 1930 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2015 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2026 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2050 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2081 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
staticprivate |
Definition at line 2093 of file httplivestreambuffer.cpp.
Referenced by ParseM3U8().
|
private |
Definition at line 2100 of file httplivestreambuffer.cpp.
Referenced by PlaylistWorker::GetHTTPLiveMetaPlaylist(), and OpenFile().
|
private |
Preferetch the first x segments of the stream.
Definition at line 2296 of file httplivestreambuffer.cpp.
Referenced by OpenFile().
|
private |
Definition at line 2321 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 2347 of file httplivestreambuffer.cpp.
Referenced by SaveToDisk().
|
private |
Definition at line 2388 of file httplivestreambuffer.cpp.
Referenced by ChooseSegment(), StreamWorker::CurrentLiveBuffer(), StreamWorker::GotBufferedSegments(), StreamWorker::IsAtEnd(), IsOpen(), OpenFile(), SafeRead(), SaveToDisk(), and SeekInternal().
|
private |
Definition at line 2399 of file httplivestreambuffer.cpp.
|
private |
Definition at line 2636 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 2651 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 2445 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().