MythTV master
mythplayerui.h
Go to the documentation of this file.
1#ifndef MYTHPLAYERUI_H
2#define MYTHPLAYERUI_H
3
4// MythTV
7#include "jitterometer.h"
8#include "mythplayer.h"
9
10class MythDisplay;
11
13{
14 Q_OBJECT
15
16 public slots:
17 void OSDDebugVisibilityChanged(bool Visible);
18
19 protected slots:
20 void InitialiseState() override;
21 void ChangeOSDDebug();
22 void UpdateOSDDebug();
23 virtual void SetBookmark(bool Clear = false);
24 virtual void SetLastPlayPosition(uint64_t frame = 0);
25
26 public:
27 MythPlayerUI(MythMainWindow* MainWindow, TV* Tv, PlayerContext* Context, PlayerFlags Flags);
28
29 bool StartPlaying();
30 virtual void InitialSeek();
31 virtual void EventLoop();
32 void ReinitVideo(bool ForceUpdate) override;
33 virtual void VideoStart();
34 virtual void EventStart();
35 virtual bool VideoLoop();
36 virtual void PreProcessNormalFrame();
37 void ChangeSpeed() override;
38 void SetVideoParams(int Width, int Height, double FrameRate, float Aspect,
39 bool ForceUpdate, int ReferenceFrames,
41 const QString& CodecName = QString()) override;
42 void GetPlaybackData(InfoMap& Map);
43 void GetCodecDescription(InfoMap& Map);
44 bool CanSupportDoubleRate();
45 void SetWatched(bool ForceWatched = false);
46
47 protected:
48 void InitFrameInterval() override;
49 virtual void DisplayPauseFrame();
50 virtual bool DisplayNormalFrame(bool CheckPrebuffer = true);
51
52 void FileChanged();
53 void RefreshPauseFrame();
54 void RenderVideoFrame(MythVideoFrame* Frame, FrameScanType Scan, bool Prepare, std::chrono::microseconds Wait);
55 void DoDisplayVideoFrame(MythVideoFrame* Frame, std::chrono::microseconds Due);
56 void EnableFrameRateMonitor(bool Enable = false);
57 void EnableBitrateMonitor(bool Enable = false);
58
59 Jitterometer m_outputJmeter { "Player" };
60 std::chrono::microseconds m_refreshInterval { 0us };
61
62 private:
63 Q_DISABLE_COPY(MythPlayerUI)
64
65 void SwitchToProgram();
66 void JumpToProgram();
67 void JumpToStream(const QString &stream);
68
69 bool m_osdDebug { false };
71
72 MythDisplay *m_display { nullptr };
73};
74
75#endif
#define Clear(a)
void InitialiseState() override
QTimer m_osdDebugTimer
Definition: mythplayerui.h:70
virtual void SetVideoParams(int w, int h, double fps, float aspect, bool ForceUpdate, int ReferenceFrames, FrameScanType=kScan_Ignore, const QString &codecName=QString())
Definition: mythplayer.cpp:321
virtual void InitFrameInterval()
Definition: mythplayer.cpp:694
virtual void ReinitVideo(bool ForceUpdate)
Definition: mythplayer.cpp:294
virtual void ChangeSpeed(void)
Control TV playback.
Definition: tv_play.h:156
PlayerFlags
Definition: mythplayer.h:65
#define MTV_PUBLIC
Definition: mythtvexp.h:15
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
FrameScanType
Definition: videoouttypes.h:95
@ kScan_Ignore
Definition: videoouttypes.h:96