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 
11 {
12  Q_OBJECT
13 
14  public slots:
15  void OSDDebugVisibilityChanged(bool Visible);
16 
17  protected slots:
18  void InitialiseState() override;
19  void ChangeOSDDebug();
20  void UpdateOSDDebug();
21  virtual void SetBookmark(bool Clear = false);
22  virtual void SetLastPlayPosition(uint64_t frame = 0);
23 
24  public:
25  MythPlayerUI(MythMainWindow* MainWindow, TV* Tv, PlayerContext* Context, PlayerFlags Flags);
26 
27  bool StartPlaying();
28  virtual void InitialSeek();
29  virtual void EventLoop();
30  void ReinitVideo(bool ForceUpdate) override;
31  virtual void VideoStart();
32  virtual void EventStart();
33  virtual bool VideoLoop();
34  virtual void PreProcessNormalFrame();
35  void ChangeSpeed() override;
36  void SetVideoParams(int Width, int Height, double FrameRate, float Aspect,
37  bool ForceUpdate, int ReferenceFrames,
39  const QString& CodecName = QString()) override;
40  void GetPlaybackData(InfoMap& Map);
41  void GetCodecDescription(InfoMap& Map);
42  bool CanSupportDoubleRate();
43  void SetWatched(bool ForceWatched = false);
44 
45  protected:
46  void InitFrameInterval() override;
47  virtual void DisplayPauseFrame();
48  virtual bool DisplayNormalFrame(bool CheckPrebuffer = true);
49 
50  void FileChanged();
51  void RefreshPauseFrame();
52  void RenderVideoFrame(MythVideoFrame* Frame, FrameScanType Scan, bool Prepare, std::chrono::microseconds Wait);
53  void DoDisplayVideoFrame(MythVideoFrame* Frame, std::chrono::microseconds Due);
54  void EnableFrameRateMonitor(bool Enable = false);
55  void EnableBitrateMonitor(bool Enable = false);
56 
57  Jitterometer m_outputJmeter { "Player" };
58  std::chrono::microseconds m_refreshInterval { 0us };
59 
60  private:
61  Q_DISABLE_COPY(MythPlayerUI)
62 
63  void SwitchToProgram();
64  void JumpToProgram();
65  void JumpToStream(const QString &stream);
66 
67  bool m_osdDebug { false };
69 };
70 
71 #endif
mythplayereditorui.h
MythPlayer::ChangeSpeed
virtual void ChangeSpeed(void)
Definition: mythplayer.cpp:1370
Frame
Definition: zmdefines.h:93
FrameScanType
FrameScanType
Definition: videoouttypes.h:94
mythplayer.h
PlayerFlags
PlayerFlags
Definition: mythplayer.h:64
MythPlayerUI::m_osdDebugTimer
QTimer m_osdDebugTimer
Definition: mythplayerui.h:68
Visible
Definition: channelsettings.cpp:416
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
MythPlayerUI
Definition: mythplayerui.h:10
mythvideoscantracker.h
FrameRate
Definition: recorderbase.h:37
jitterometer.h
Jitterometer
Definition: jitterometer.h:43
MythPlayerEditorUI::InitialiseState
void InitialiseState() override
Definition: mythplayereditorui.cpp:26
MythPlayer::ReinitVideo
virtual void ReinitVideo(bool ForceUpdate)
Definition: mythplayer.cpp:297
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:324
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MythPlayer::InitFrameInterval
virtual void InitFrameInterval()
Definition: mythplayer.cpp:697
MythPlayerEditorUI
Definition: mythplayereditorui.h:7
Clear
#define Clear(a)
Definition: audiooutputopensles.cpp:54
PlayerContext
Definition: playercontext.h:49
MythVideoScanTracker
Definition: mythvideoscantracker.h:12
MythVideoFrame
Definition: mythframe.h:88
MythMainWindow
Definition: mythmainwindow.h:28
kScan_Ignore
@ kScan_Ignore
Definition: videoouttypes.h:96
TV
Control TV playback.
Definition: tv_play.h:152