[WASAPI] fixed: use the more accurate GetDelay() for Drain().
authorwsoltys <wiso@no.way>
Thu, 15 Aug 2013 18:00:22 +0000 (20:00 +0200)
committerRainer Hochecker <fernetmenta@online.de>
Thu, 22 Aug 2013 10:58:00 +0000 (12:58 +0200)
xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h

index e4022e3..dbfc071 100644 (file)
@@ -193,8 +193,7 @@ CAESinkWASAPI::CAESinkWASAPI() :
   m_avgTimeWaiting(50),
   m_sinkLatency(0.0),
   m_pBuffer(NULL),
-  m_bufferPtr(0),
-  m_hnsRequestedDuration(0)
+  m_bufferPtr(0)
 {
   m_channelLayout.Reset();
 }
@@ -1196,8 +1195,6 @@ initialize:
   hr = m_pAudioClient->Initialize(AUDCLNT_SHAREMODE_EXCLUSIVE, AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST,
                                     audioSinkBufferDurationMsec, audioSinkBufferDurationMsec, &wfxex.Format, NULL);
 
-  m_hnsRequestedDuration = audioSinkBufferDurationMsec;
-
   if (hr == AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED)
   {
     /* WASAPI requires aligned buffer */
@@ -1333,7 +1330,7 @@ void CAESinkWASAPI::Drain()
   if(!m_pAudioClient)
     return;
 
-  Sleep( (DWORD)(m_hnsRequestedDuration / 10000));
+  Sleep( (DWORD)(GetDelay()*50) );
 
   if (m_running)
   {
index 8b29f50..144bad3 100644 (file)
@@ -83,5 +83,4 @@ private:
 
     uint8_t            *m_pBuffer;
     int                 m_bufferPtr;
-    REFERENCE_TIME      m_hnsRequestedDuration;
 };