diff options
-rw-r--r-- | xbmc/cores/dvdplayer/DVDMessageQueue.cpp | 5 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDMessageQueue.h | 4 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDPlayer.cpp | 4 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 2 |
5 files changed, 12 insertions, 5 deletions
diff --git a/xbmc/cores/dvdplayer/DVDMessageQueue.cpp b/xbmc/cores/dvdplayer/DVDMessageQueue.cpp index 0e208da9b6..79f0f4b689 100644 --- a/xbmc/cores/dvdplayer/DVDMessageQueue.cpp +++ b/xbmc/cores/dvdplayer/DVDMessageQueue.cpp @@ -227,3 +227,8 @@ void CDVDMessageQueue::WaitUntilEmpty() msg->Wait(&m_bAbortRequest, 0); msg->Release(); } + +int CDVDMessageQueue::GetLevel() const +{ + return std::min(100, 100 * m_iDataSize / m_iMaxDataSize); +}
\ No newline at end of file diff --git a/xbmc/cores/dvdplayer/DVDMessageQueue.h b/xbmc/cores/dvdplayer/DVDMessageQueue.h index 9a16c01f0b..7802c3c76e 100644 --- a/xbmc/cores/dvdplayer/DVDMessageQueue.h +++ b/xbmc/cores/dvdplayer/DVDMessageQueue.h @@ -71,7 +71,9 @@ public: void WaitUntilEmpty(); // non messagequeue related functions - bool IsFull() const { return (m_iDataSize >= m_iMaxDataSize); } + bool IsFull() const { return GetLevel() == 100; } + int GetLevel() const; + void SetMaxDataSize(int iMaxDataSize) { m_iMaxDataSize = iMaxDataSize; } int GetMaxDataSize() const { return m_iMaxDataSize; } bool IsInited() const { return m_bInitialized; } diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp index 9e8b098556..fb53ecc7d5 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -3223,8 +3223,8 @@ bool CDVDPlayer::AddSubtitle(const CStdString& strSubPath) int CDVDPlayer::GetCacheLevel() const { - int a = min(100,100 * m_dvdPlayerAudio.m_messageQueue.GetDataSize() / m_dvdPlayerAudio.m_messageQueue.GetMaxDataSize()); - int v = min(100,100 * m_dvdPlayerVideo.m_messageQueue.GetDataSize() / m_dvdPlayerVideo.m_messageQueue.GetMaxDataSize()); + int a = m_dvdPlayerAudio.m_messageQueue.GetLevel(); + int v = m_dvdPlayerVideo.m_messageQueue.GetLevel(); return max(a, v); } diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp index 3c14f584a2..b156b3cfb8 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp @@ -773,7 +773,7 @@ void CDVDPlayerAudio::WaitForBuffers() string CDVDPlayerAudio::GetPlayerInfo() { std::ostringstream s; - s << "aq:" << setw(2) << min(99,100 * m_messageQueue.GetDataSize() / m_messageQueue.GetMaxDataSize()) << "%"; + s << "aq:" << setw(2) << min(99,m_messageQueue.GetLevel()) << "%"; s << ", kB/s:" << fixed << setprecision(2) << (double)GetAudioBitrate() / 1024.0; return s.str(); } diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp index c63aac63fd..ef92856983 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -1262,7 +1262,7 @@ void CDVDPlayerVideo::UpdateMenuPicture() std::string CDVDPlayerVideo::GetPlayerInfo() { std::ostringstream s; - s << "vq:" << setw(2) << min(99,100 * m_messageQueue.GetDataSize() / m_messageQueue.GetMaxDataSize()) << "%"; + s << "vq:" << setw(2) << min(99,m_messageQueue.GetLevel()) << "%"; s << ", dc:" << m_codecname; s << ", Mb/s:" << fixed << setprecision(2) << (double)GetVideoBitrate() / (1024.0*1024.0); s << ", drop:" << m_iDroppedFrames; |