MythTV master
videodecodebuffer.h
Go to the documentation of this file.
1#ifndef VIDEODECODEBUFFER_H
2#define VIDEODECODEBUFFER_H
3
4// Qt
5#include <QList>
6#include <QWaitCondition>
7#include <QMutex>
8#include <QRunnable>
9
10// MythTV
12
14class MythVideoOutput;
15
16class VideoDecodeBuffer : public QRunnable
17{
18 public:
20 bool Cutlist, int Size = 5);
21 ~VideoDecodeBuffer() override;
22
23 void stop ();
24 void run () override;
25 MythVideoFrame *GetFrame(int &DidFF, bool &Key);
26
27 private:
29 {
31 int didFF;
32 bool isKey;
33 };
34
35 MythTranscodePlayer* const m_player { nullptr };
36 MythVideoOutput* const m_videoOutput { nullptr };
37 bool const m_honorCutlist;
38 int const m_maxFrames;
39 bool volatile m_runThread { true };
40 bool volatile m_isRunning { false };
41 QMutex mutable m_queueLock; // Guards the following...
42 bool m_eof { false };
43 QList<DecodedFrameInfo> m_frameList;
44 QWaitCondition m_frameWaitCond;
45};
46
47#endif
48
MythVideoFrame * GetFrame(int &DidFF, bool &Key)
bool const m_honorCutlist
QList< DecodedFrameInfo > m_frameList
QWaitCondition m_frameWaitCond
~VideoDecodeBuffer() override
MythVideoOutput *const m_videoOutput
bool volatile m_runThread
void run() override
MythTranscodePlayer *const m_player
VideoDecodeBuffer(MythTranscodePlayer *Player, MythVideoOutput *Videoout, bool Cutlist, int Size=5)
bool volatile m_isRunning