|
MythTV master
|
#include <libmythtv/recorders/HLS/HLSReader.h>
Public Types | |
| using | StreamContainer = QMap< QString, HLSRecStream * > |
| using | SegmentContainer = QVector< HLSRecSegment > |
Public Member Functions | |
| HLSReader (int inputId) | |
| ~HLSReader (void) | |
| bool | Open (const QString &m3u, int bitrate_index=0) |
| void | Close (bool quiet=false) |
| qint64 | Read (uint8_t *buffer, qint64 len) |
| void | Throttle (bool val) |
| bool | IsThrottled (void) const |
| bool | IsOpen (const QString &url) const |
| bool | FatalError (void) const |
| bool | LoadMetaPlaylists (MythSingleDownload &downloader) |
| void | ResetStream (void) |
| void | ResetSequence (void) |
| QString | StreamURL (void) const |
Static Public Member Functions | |
| static void | CancelURL (const QString &url) |
| static void | CancelURL (const QStringList &urls) |
| static bool | IsValidPlaylist (QTextStream &text) |
Protected Member Functions | |
| void | Cancel (bool quiet=false) |
| bool | LoadSegments (MythSingleDownload &downloader) |
| uint | PercentBuffered (void) const |
| std::chrono::seconds | TargetDuration (void) const |
| void | AllowPlaylistSwitch (void) |
| void | PlaylistGood (void) |
| void | PlaylistRetrying (void) |
| int | PlaylistRetryCount (void) const |
Private Member Functions | |
| bool | ParseM3U8 (const QByteArray &buffer, HLSRecStream *stream=nullptr) |
| void | DecreaseBitrate (int progid) |
| void | IncreaseBitrate (int progid) |
| int | DownloadSegmentData (MythSingleDownload &downloader, HLSRecStream *hls, HLSRecSegment &segment, int playlist_size) |
| void | EnableDebugging (void) |
Private Attributes | |
| QString | m_m3u8 |
| QString | m_segmentBase |
| StreamContainer | m_streams |
| SegmentContainer | m_segments |
| HLSRecStream * | m_curstream {nullptr} |
| int64_t | m_curSeq {-1} |
| int | m_bitrateIndex {0} |
| bool | m_fatal {false} |
| bool | m_cancel {false} |
| bool | m_throttle {true} |
| bool | m_aesMsg {false} |
| HLSPlaylistWorker * | m_playlistWorker {nullptr} |
| HLSStreamWorker * | m_streamWorker {nullptr} |
| int | m_playlistSize {0} |
| bool | m_bandwidthCheck {false} |
| uint | m_prebufferCnt {10} |
| QMutex | m_seqLock |
| QMutex | m_streamLock |
| QMutex | m_workerLock |
| QMutex | m_throttleLock |
| QWaitCondition | m_throttleCond |
| bool | m_debug {false} |
| int | m_debugCnt {0} |
| int | m_slowCnt {0} |
| QByteArray | m_buffer |
| QMutex | m_bufLock |
| int | m_inputId {0} |
Friends | |
| class | HLSStreamWorker |
| class | HLSPlaylistWorker |
Definition at line 33 of file HLSReader.h.
| using HLSReader::SegmentContainer = QVector<HLSRecSegment> |
Definition at line 40 of file HLSReader.h.
| using HLSReader::StreamContainer = QMap<QString, HLSRecStream* > |
Definition at line 39 of file HLSReader.h.
|
inline |
Definition at line 42 of file HLSReader.h.
| HLSReader::~HLSReader | ( | void | ) |
Definition at line 31 of file HLSReader.cpp.
|
inlineprotected |
Definition at line 77 of file HLSReader.h.
Referenced by HLSPlaylistWorker::run().
Definition at line 171 of file HLSReader.cpp.
Referenced by Close().
|
static |
Referenced by Cancel().
|
static |
Definition at line 147 of file HLSReader.cpp.
Referenced by Open(), and ~HLSReader().
|
private |
Definition at line 812 of file HLSReader.cpp.
Referenced by LoadMetaPlaylists().
|
private |
Definition at line 995 of file HLSReader.cpp.
Referenced by LoadSegments().
|
private |
Definition at line 1162 of file HLSReader.cpp.
Referenced by DownloadSegmentData(), LoadMetaPlaylists(), ParseM3U8(), HLSPlaylistWorker::run(), and HLSStreamWorker::run().
|
inline |
Definition at line 52 of file HLSReader.h.
Referenced by HLSPlaylistWorker::run(), HLSStreamWorker::run(), and HLSStreamHandler::run().
|
private |
Definition at line 847 of file HLSReader.cpp.
Referenced by LoadMetaPlaylists().
|
inline |
Definition at line 50 of file HLSReader.h.
Referenced by Open(), and HLSStreamHandler::run().
|
inline |
Definition at line 49 of file HLSReader.h.
Referenced by HLSStreamHandler::run().
|
static |
Definition at line 267 of file HLSReader.cpp.
Referenced by IPTVTuningData::IsHLSPlaylist(), and Open().
| bool HLSReader::LoadMetaPlaylists | ( | MythSingleDownload & | downloader | ) |
Definition at line 738 of file HLSReader.cpp.
Referenced by HLSPlaylistWorker::run().
|
protected |
Definition at line 882 of file HLSReader.cpp.
Referenced by HLSStreamWorker::run().
| bool HLSReader::Open | ( | const QString & | m3u, |
| int | bitrate_index = 0 |
||
| ) |
Definition at line 38 of file HLSReader.cpp.
Referenced by HLSStreamHandler::run().
|
private |
Definition at line 304 of file HLSReader.cpp.
Referenced by LoadMetaPlaylists(), and Open().
|
protected |
Definition at line 987 of file HLSReader.cpp.
Referenced by LoadMetaPlaylists(), and HLSPlaylistWorker::run().
|
protected |
Definition at line 1140 of file HLSReader.cpp.
Referenced by HLSPlaylistWorker::run().
|
protected |
Definition at line 1154 of file HLSReader.cpp.
Referenced by HLSPlaylistWorker::run().
|
protected |
Definition at line 1147 of file HLSReader.cpp.
Referenced by HLSPlaylistWorker::run().
| qint64 HLSReader::Read | ( | uint8_t * | buffer, |
| qint64 | len | ||
| ) |
Definition at line 214 of file HLSReader.cpp.
Referenced by HLSStreamHandler::run().
|
inline |
Definition at line 57 of file HLSReader.h.
Referenced by ParseM3U8(), and HLSStreamWorker::run().
|
inline |
Definition at line 55 of file HLSReader.h.
Referenced by HLSPlaylistWorker::run().
|
inline |
Definition at line 59 of file HLSReader.h.
Referenced by ParseM3U8().
|
inlineprotected |
Definition at line 74 of file HLSReader.h.
Referenced by HLSPlaylistWorker::run().
| void HLSReader::Throttle | ( | bool | val | ) |
Definition at line 200 of file HLSReader.cpp.
Referenced by HLSStreamHandler::run().
|
friend |
Definition at line 36 of file HLSReader.h.
Referenced by Open().
|
friend |
Definition at line 35 of file HLSReader.h.
Referenced by Open().
Definition at line 108 of file HLSReader.h.
Referenced by ParseM3U8().
Definition at line 114 of file HLSReader.h.
Referenced by LoadMetaPlaylists(), LoadSegments(), and ParseM3U8().
|
private |
Definition at line 102 of file HLSReader.h.
Referenced by LoadSegments(), Open(), and ParseM3U8().
|
private |
Definition at line 131 of file HLSReader.h.
Referenced by DownloadSegmentData(), and Read().
|
private |
Definition at line 132 of file HLSReader.h.
Referenced by DownloadSegmentData(), and Read().
Definition at line 105 of file HLSReader.h.
Referenced by Cancel(), LoadMetaPlaylists(), LoadSegments(), Open(), ParseM3U8(), and Read().
|
private |
Definition at line 101 of file HLSReader.h.
Referenced by LoadSegments(), and ParseM3U8().
|
private |
Definition at line 100 of file HLSReader.h.
Referenced by Cancel(), Close(), DecreaseBitrate(), IncreaseBitrate(), LoadMetaPlaylists(), LoadSegments(), Open(), PlaylistGood(), PlaylistRetryCount(), PlaylistRetrying(), and Read().
Definition at line 126 of file HLSReader.h.
Referenced by DownloadSegmentData(), EnableDebugging(), LoadSegments(), and ParseM3U8().
|
private |
Definition at line 127 of file HLSReader.h.
Referenced by EnableDebugging(), and ParseM3U8().
Definition at line 104 of file HLSReader.h.
Referenced by DownloadSegmentData(), and Open().
|
private |
Definition at line 135 of file HLSReader.h.
Referenced by LoadSegments(), and ParseM3U8().
|
private |
Definition at line 96 of file HLSReader.h.
Referenced by Open(), and ParseM3U8().
|
private |
Definition at line 113 of file HLSReader.h.
Referenced by LoadMetaPlaylists(), LoadSegments(), ParseM3U8(), and PercentBuffered().
|
private |
Definition at line 110 of file HLSReader.h.
|
private |
Definition at line 115 of file HLSReader.h.
Referenced by LoadSegments(), and Throttle().
|
private |
Definition at line 97 of file HLSReader.h.
Referenced by LoadMetaPlaylists(), Open(), and ParseM3U8().
|
private |
Definition at line 99 of file HLSReader.h.
Referenced by Cancel(), LoadMetaPlaylists(), LoadSegments(), ParseM3U8(), and PercentBuffered().
|
private |
Definition at line 117 of file HLSReader.h.
Referenced by LoadSegments(), and ParseM3U8().
|
private |
Definition at line 130 of file HLSReader.h.
Referenced by DownloadSegmentData().
|
mutableprivate |
Definition at line 119 of file HLSReader.h.
Referenced by Close(), LoadMetaPlaylists(), LoadSegments(), Open(), PlaylistGood(), PlaylistRetryCount(), and PlaylistRetrying().
|
private |
Definition at line 98 of file HLSReader.h.
Referenced by Close(), DecreaseBitrate(), IncreaseBitrate(), Open(), and ParseM3U8().
|
private |
Definition at line 111 of file HLSReader.h.
Referenced by Cancel(), Close(), LoadMetaPlaylists(), Open(), and ParseM3U8().
Definition at line 106 of file HLSReader.h.
Referenced by LoadSegments(), and Throttle().
|
private |
Definition at line 124 of file HLSReader.h.
Referenced by Cancel(), LoadSegments(), and Throttle().
|
private |
Definition at line 123 of file HLSReader.h.
Referenced by Cancel(), LoadSegments(), and Throttle().
|
mutableprivate |
Definition at line 121 of file HLSReader.h.
Referenced by Cancel(), Close(), Open(), and ParseM3U8().