MythTV  master
mythdvdplayer.h
Go to the documentation of this file.
1 #ifndef MYTHDVDPLAYER_H
2 #define MYTHDVDPLAYER_H
3 
4 // MythTV
5 #include "mythplayerui.h"
6 
7 // Std
8 #include <cstdint>
9 
11 {
12  Q_OBJECT
13 
14  signals:
15  void DisableDVDSubtitles();
16 
17  public:
18  MythDVDPlayer(MythMainWindow* MainWindow, TV* Tv, PlayerContext* Context,PlayerFlags Flags = kNoFlags);
19 
20  void ReleaseNextVideoFrame(MythVideoFrame *Buffer, std::chrono::milliseconds Timecode, bool Wrap = true) override;
21  bool HasReachedEof(void) const override;
22  bool PrepareAudioSample(std::chrono::milliseconds &Timecode) override;
23  uint64_t GetBookmark(void) override;
24  std::chrono::milliseconds GetMillisecondsPlayed(bool HonorCutList) override;
25  std::chrono::milliseconds GetTotalMilliseconds(bool HonorCutList) const override;
26  bool IsInStillFrame() const override;
27  int GetNumAngles(void) const override;
28  int GetCurrentAngle(void) const override;
29  QString GetAngleName(int Angle) const override;
30  bool SwitchAngle(int Angle) override;
31  int GetNumChapters(void) override;
32  int GetCurrentChapter(void) override;
33  void GetChapterTimes(QList<std::chrono::seconds> &Times) override;
34 
35  void SetStillFrameTimeout(std::chrono::seconds Length);
36  void StillFrameCheck(void);
37 
38  protected:
39  void ResetPlaying(bool ResetFrames = true) override;
40  bool PrebufferEnoughFrames(int MinBuffers = 0) override;
41  void DecoderPauseCheck(void) override;
42  void DoFFRewSkip(void) override;
43  void ChangeSpeed(void) override;
44  void DisplayPauseFrame(void) override;
45  void PreProcessNormalFrame(void) override;
46  void VideoStart(void) override;
47  bool VideoLoop(void) override;
48  void EventStart(void) override;
49  virtual void EventEnd(void);
50  void InitialSeek(void) override;
52  std::chrono::microseconds FrameInterval, bool AllowLock = true) override;
53  long long CalcMaxFFTime(long long FastFwd, bool Setjump = true) const override;
54  bool FastForward(float Seconds) override;
55  bool Rewind(float Seconds) override;
56  bool JumpToFrame(uint64_t Frame) override;
57  void CreateDecoder(TestBufferVec & Testbuf) override;
58  bool DoJumpChapter(int Chapter) override;
59 
60  protected slots:
61  void GoToMenu(const QString& Menu);
62  void GoToDVDProgram(bool Direction);
63  void SetBookmark(bool Clear = false) override;
64  void DisableCaptions(uint Mode, bool OSDMsg = true) override;
65  void EnableCaptions(uint Mode, bool OSDMsg = true) override;
66  void SetTrack(uint Type, uint TrackNo) override;
67  void DoDisableDVDSubtitles();
68 
69  private:
70  void DisplayDVDButton(void);
71 
72  int m_buttonVersion { 0 };
73  bool m_dvdStillFrameShowing { false };
74 
75  // additional bookmark seeking information
76  int m_initialTitle { -1 };
77  int m_initialAudioTrack { -1 };
80 
81  // still frame timing
83  std::chrono::seconds m_stillFrameLength { 0s };
84  QRecursiveMutex m_stillFrameTimerLock;
85 };
86 
87 #endif // MYTHDVDPLAYER_H
MythDVDPlayer::EnableCaptions
void EnableCaptions(uint Mode, bool OSDMsg=true) override
Definition: mythdvdplayer.cpp:67
MythDVDPlayer::DisableCaptions
void DisableCaptions(uint Mode, bool OSDMsg=true) override
Definition: mythdvdplayer.cpp:60
MythDVDPlayer::VideoStart
void VideoStart(void) override
Definition: mythdvdplayer.cpp:116
MythVideoOutput
Definition: mythvideoout.h:35
VideoOutput
This class serves as the base class for all video output methods.
mythplayerui.h
MythTimer
A QElapsedTimer based timer to replace use of QTime as a timer.
Definition: mythtimer.h:13
MythDVDPlayer::JumpToFrame
bool JumpToFrame(uint64_t Frame) override
Definition: mythdvdplayer.cpp:245
MythDVDPlayer::CreateDecoder
void CreateDecoder(TestBufferVec &Testbuf) override
Definition: mythdvdplayer.cpp:717
MythDVDPlayer::HasReachedEof
bool HasReachedEof(void) const override
Definition: mythdvdplayer.cpp:46
Mode
Mode
Definition: synaesthesia.h:23
Frame
Definition: zmdefines.h:93
MythDVDPlayer::m_initialDvdState
QString m_initialDvdState
Definition: mythdvdplayer.h:79
MythDVDPlayer::AutoDeint
void AutoDeint(MythVideoFrame *Frame, MythVideoOutput *VideoOutput, std::chrono::microseconds FrameInterval, bool AllowLock=true) override
Check whether deinterlacing should be enabled.
Definition: mythdvdplayer.cpp:19
MythDVDPlayer::GetMillisecondsPlayed
std::chrono::milliseconds GetMillisecondsPlayed(bool HonorCutList) override
Definition: mythdvdplayer.cpp:457
PlayerFlags
PlayerFlags
Definition: mythplayer.h:64
MythDVDPlayer::IsInStillFrame
bool IsInStillFrame() const override
Definition: mythdvdplayer.cpp:645
MythDVDPlayer::PrepareAudioSample
bool PrepareAudioSample(std::chrono::milliseconds &Timecode) override
Definition: mythdvdplayer.cpp:315
MythDVDPlayer::SwitchAngle
bool SwitchAngle(int Angle) override
Definition: mythdvdplayer.cpp:674
MythDVDPlayer::InitialSeek
void InitialSeek(void) override
Definition: mythdvdplayer.cpp:277
MythDVDPlayer::m_stillFrameTimerLock
QRecursiveMutex m_stillFrameTimerLock
Definition: mythdvdplayer.h:84
MythPlayerUI
Definition: mythplayerui.h:10
MythDVDPlayer::GetChapterTimes
void GetChapterTimes(QList< std::chrono::seconds > &Times) override
Definition: mythdvdplayer.cpp:513
MythDVDPlayer::PreProcessNormalFrame
void PreProcessNormalFrame(void) override
Definition: mythdvdplayer.cpp:111
MythDVDPlayer::m_dvdStillFrameShowing
bool m_dvdStillFrameShowing
Definition: mythdvdplayer.h:73
MythDVDPlayer::StillFrameCheck
void StillFrameCheck(void)
Definition: mythdvdplayer.cpp:697
MythDVDPlayer
Definition: mythdvdplayer.h:10
MythDVDPlayer::DisableDVDSubtitles
void DisableDVDSubtitles()
MythDVDPlayer::GetTotalMilliseconds
std::chrono::milliseconds GetTotalMilliseconds(bool HonorCutList) const override
Definition: mythdvdplayer.cpp:474
MythDVDPlayer::GetCurrentAngle
int GetCurrentAngle(void) const override
Definition: mythdvdplayer.cpp:657
TestBufferVec
std::vector< char > TestBufferVec
Definition: decoderbase.h:23
MythDVDPlayer::CalcMaxFFTime
long long CalcMaxFFTime(long long FastFwd, bool Setjump=true) const override
CalcMaxFFTime(ffframes): forward ffframes forward.
Definition: mythdvdplayer.cpp:449
MythDVDPlayer::ReleaseNextVideoFrame
void ReleaseNextVideoFrame(MythVideoFrame *Buffer, std::chrono::milliseconds Timecode, bool Wrap=true) override
Definition: mythdvdplayer.cpp:39
uint
unsigned int uint
Definition: compat.h:81
MythDVDPlayer::Rewind
bool Rewind(float Seconds) override
Definition: mythdvdplayer.cpp:238
MythDVDPlayer::EventEnd
virtual void EventEnd(void)
Definition: mythdvdplayer.cpp:309
MythDVDPlayer::GetCurrentChapter
int GetCurrentChapter(void) override
Definition: mythdvdplayer.cpp:506
MythDVDPlayer::ResetPlaying
void ResetPlaying(bool ResetFrames=true) override
Definition: mythdvdplayer.cpp:304
kNoFlags
@ kNoFlags
Definition: mythplayer.h:66
MythDVDPlayer::DisplayPauseFrame
void DisplayPauseFrame(void) override
Definition: mythdvdplayer.cpp:81
Buffer
Definition: MythExternControl.h:36
MythDVDPlayer::GetNumChapters
int GetNumChapters(void) override
Definition: mythdvdplayer.cpp:499
MythDVDPlayer::GoToDVDProgram
void GoToDVDProgram(bool Direction)
Definition: mythdvdplayer.cpp:634
Clear
#define Clear(a)
Definition: audiooutputopensles.cpp:54
MythDVDPlayer::MythDVDPlayer
MythDVDPlayer(MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags=kNoFlags)
Definition: mythdvdplayer.cpp:11
MythDVDPlayer::GetBookmark
uint64_t GetBookmark(void) override
Definition: mythdvdplayer.cpp:372
MythDVDPlayer::DecoderPauseCheck
void DecoderPauseCheck(void) override
Definition: mythdvdplayer.cpp:89
MythDVDPlayer::m_stillFrameTimer
MythTimer m_stillFrameTimer
Definition: mythdvdplayer.h:82
MythDVDPlayer::DoFFRewSkip
void DoFFRewSkip(void) override
Definition: mythdvdplayer.cpp:100
MythDVDPlayer::PrebufferEnoughFrames
bool PrebufferEnoughFrames(int MinBuffers=0) override
Definition: mythdvdplayer.cpp:95
PlayerContext
Definition: playercontext.h:49
MythDVDPlayer::m_initialSubtitleTrack
int m_initialSubtitleTrack
Definition: mythdvdplayer.h:78
MythDVDPlayer::SetTrack
void SetTrack(uint Type, uint TrackNo) override
Definition: mythdvdplayer.cpp:488
MythDVDPlayer::GoToMenu
void GoToMenu(const QString &Menu)
Definition: mythdvdplayer.cpp:617
MythDVDPlayer::m_stillFrameLength
std::chrono::seconds m_stillFrameLength
Definition: mythdvdplayer.h:83
MythVideoFrame
Definition: mythframe.h:88
MythDVDPlayer::DoDisableDVDSubtitles
void DoDisableDVDSubtitles()
Definition: mythdvdplayer.cpp:54
MythDVDPlayer::SetStillFrameTimeout
void SetStillFrameTimeout(std::chrono::seconds Length)
Definition: mythdvdplayer.cpp:686
MythDVDPlayer::SetBookmark
void SetBookmark(bool Clear=false) override
Definition: mythdvdplayer.cpp:324
MythDVDPlayer::DoJumpChapter
bool DoJumpChapter(int Chapter) override
Definition: mythdvdplayer.cpp:520
MythDVDPlayer::ChangeSpeed
void ChangeSpeed(void) override
Definition: mythdvdplayer.cpp:420
MythDVDPlayer::VideoLoop
bool VideoLoop(void) override
Definition: mythdvdplayer.cpp:124
MythDVDPlayer::EventStart
void EventStart(void) override
Definition: mythdvdplayer.cpp:255
MythDVDPlayer::m_initialTitle
int m_initialTitle
Definition: mythdvdplayer.h:76
MythMainWindow
Definition: mythmainwindow.h:28
MythDVDPlayer::FastForward
bool FastForward(float Seconds) override
Definition: mythdvdplayer.cpp:231
MythDVDPlayer::m_initialAudioTrack
int m_initialAudioTrack
Definition: mythdvdplayer.h:77
MythDVDPlayer::GetAngleName
QString GetAngleName(int Angle) const override
Definition: mythdvdplayer.cpp:664
MythDVDPlayer::DisplayDVDButton
void DisplayDVDButton(void)
Definition: mythdvdplayer.cpp:558
MythDVDPlayer::GetNumAngles
int GetNumAngles(void) const override
Definition: mythdvdplayer.cpp:650
MythDVDPlayer::m_buttonVersion
int m_buttonVersion
Definition: mythdvdplayer.h:72
TV
Control TV playback.
Definition: tv_play.h:152