MythTV  master
mythplayerui.h
Go to the documentation of this file.
1 #ifndef MYTHPLAYERUI_H
2 #define MYTHPLAYERUI_H
3 
4 // MythTV
5 #include "mythplayereditorui.h"
6 #include "mythvideoscantracker.h"
7 #include "jitterometer.h"
8 #include "mythplayer.h"
9 
10 class 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
mythplayereditorui.h
kScan_Ignore
@ kScan_Ignore
Definition: videoouttypes.h:96
MythPlayer::ChangeSpeed
virtual void ChangeSpeed(void)
Definition: mythplayer.cpp:1367
Frame
Definition: zmdefines.h:102
mythplayer.h
PlayerFlags
PlayerFlags
Definition: mythplayer.h:64
MythPlayerUI::m_osdDebugTimer
QTimer m_osdDebugTimer
Definition: mythplayerui.h:70
Visible
Definition: channelsettings.cpp:416
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
MythPlayerUI
Definition: mythplayerui.h:12
mythvideoscantracker.h
jitterometer.h
MythDisplay
Definition: mythdisplay.h:22
Jitterometer
Definition: jitterometer.h:43
MythPlayerEditorUI::InitialiseState
void InitialiseState() override
Definition: mythplayereditorui.cpp:26
MythPlayer::ReinitVideo
virtual void ReinitVideo(bool ForceUpdate)
Definition: mythplayer.cpp:294
MythPlayer::SetVideoParams
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
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MythPlayer::InitFrameInterval
virtual void InitFrameInterval()
Definition: mythplayer.cpp:694
MythPlayerEditorUI
Definition: mythplayereditorui.h:7
Clear
#define Clear(a)
Definition: audiooutputopensles.cpp:54
PlayerContext
Definition: playercontext.h:49
FrameScanType
FrameScanType
Definition: videoouttypes.h:94
MythVideoScanTracker
Definition: mythvideoscantracker.h:12
MythVideoFrame
Definition: mythframe.h:87
MythMainWindow
Definition: mythmainwindow.h:28
TV
Control TV playback.
Definition: tv_play.h:154