12 #include "DVDCodecs/Video/DVDVideoCodec.h" 13 #include "DVDMessageQueue.h" 14 #include "DVDOverlayContainer.h" 15 #include "DVDStreamInfo.h" 16 #include "IVideoPlayer.h" 17 #include "PTSTracker.h" 18 #include "cores/VideoPlayer/VideoRenderers/RenderManager.h" 19 #include "threads/Thread.h" 20 #include "utils/BitstreamStats.h" 24 #define DROP_DROPPED 1 25 #define DROP_VERYLATE 2 26 #define DROP_BUFFER_LEVEL 4 34 void AddOutputDropGain(
double pts,
int frames);
40 std::deque<CGain> m_gain;
56 void CloseStream(
bool bWaitForBuffers)
override;
57 void Flush(
bool sync)
override;
58 bool AcceptsData()
const override;
59 bool HasData()
const override;
60 bool IsInited()
const override;
61 void SendMessage(std::shared_ptr<CDVDMsg> pMsg,
int priority = 0)
override;
62 void FlushMessages()
override;
64 void EnableSubtitle(
bool bEnable)
override { m_bRenderSubs = bEnable; }
65 bool IsSubtitleEnabled()
override {
return m_bRenderSubs; }
66 double GetSubtitleDelay()
override {
return m_iSubtitleDelay; }
67 void SetSubtitleDelay(
double delay)
override { m_iSubtitleDelay = delay; }
68 bool IsStalled()
const override {
return m_stalled; }
69 bool IsRewindStalled()
const override {
return m_rewindStalled; }
70 double GetCurrentPts()
override;
71 double GetOutputDelay()
override;
72 std::string GetPlayerInfo()
override;
73 int GetVideoBitrate()
override;
74 void SetSpeed(
int iSpeed)
override;
90 void OnExit()
override;
91 void Process()
override;
93 bool ProcessDecoderOutput(
double &frametime,
double &pts);
94 void SendMessageBack(
const std::shared_ptr<CDVDMsg>& pMsg,
int priority = 0);
95 MsgQueueReturnCode GetMessage(std::shared_ptr<CDVDMsg>& pMsg,
96 std::chrono::milliseconds timeout,
100 void ProcessOverlays(
const VideoPicture* pSource,
double pts);
101 void OpenStream(
CDVDStreamInfo& hint, std::unique_ptr<CDVDVideoCodec> codec);
103 void ResetFrameRateCalc();
104 void CalcFrameRate();
105 int CalcDropRequirement(
double pts);
107 double m_iSubtitleDelay;
110 int m_iDroppedFrames;
111 int m_iDroppedRequest;
114 double m_fStableFrameRate;
115 int m_iFrameRateCount;
118 int m_iFrameRateLength;
123 float m_fForcedAspectRatio;
125 std::atomic_bool m_stalled =
false;
126 std::atomic_bool m_rewindStalled;
128 IDVDStreamPlayer::ESyncState m_syncState;
129 std::atomic_bool m_bAbortOutput;
136 std::unique_ptr<CDVDVideoCodec> m_pVideoCodec;
138 std::list<DVDMessageListItem> m_packets;
143 EOutputState m_outputSate;
Definition: VideoPlayerVideo.h:35
Definition: DVDStreamInfo.h:23
Definition: VideoPlayerVideo.h:30
Definition: VideoPlayerVideo.h:45
Definition: DVDMessageQueue.h:48
Definition: IVideoPlayer.h:75
Definition: BitstreamStats.h:13
Definition: DVDDemux.h:124
Definition: PTSTracker.h:18
Definition: RenderManager.h:54
Definition: ProcessInfo.h:26
Definition: DVDClock.h:18
Definition: DVDVideoCodec.h:36
Definition: DVDOverlayContainer.h:19