/
hlsstreamhandler.h
47 lines (36 loc) · 1.08 KB
/
hlsstreamhandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/** -*- Mode: c++ -*-
* HLSStreamHandler
* Copyright (c) 2013 Bubblestuff Pty Ltd
* based on IPTVStreamHandler
* Distributed as part of MythTV under GPL v2 and later.
*/
#ifndef _HLSSTREAMHANDLER_H_
#define _HLSSTREAMHANDLER_H_
#include <vector>
using namespace std;
#include <QString>
#include <QMutex>
#include <QMap>
#include "channelutil.h"
#include "iptvstreamhandler.h"
class MPEGStreamData;
class HLSRingBuffer;
class HLSStreamHandler : public IPTVStreamHandler
{
public:
static HLSStreamHandler* Get(const IPTVTuningData& tuning);
static void Return(HLSStreamHandler* & ref);
protected:
HLSStreamHandler(const IPTVTuningData &tuning);
virtual ~HLSStreamHandler(void);
virtual void run(void); // MThread
protected:
IPTVTuningData m_tuning;
HLSRingBuffer* m_hls;
uint8_t* m_buffer;
// for implementing Get & Return
static QMutex s_handlers_lock;
static QMap<QString, HLSStreamHandler*> s_handlers;
static QMap<QString, uint> s_handlers_refcnt;
};
#endif // _HLSSTREAMHANDLER_H_