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:25
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