coreaudio: make sure flush request is served even when paused
authorJoakim Plate <elupus@ecce.se>
Sun, 10 Nov 2013 02:55:13 +0000 (03:55 +0100)
committerJoakim Plate <elupus@ecce.se>
Mon, 11 Nov 2013 19:23:03 +0000 (20:23 +0100)
Core doesn't callg GetFrames when paused, causing it not to serve
the request.

This speeds up seeks but a lot on osx

xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAEStream.cpp

index 400ff91..d606d83 100644 (file)
@@ -380,6 +380,9 @@ unsigned int CCoreAudioAEStream::AddData(void *data, unsigned int size)
   unsigned int addsize  = size;
   unsigned int channelsInBuffer = m_chLayoutCountStream;
 
+  if (m_flushRequested && m_paused)
+    InternalFlush();
+
   if (!m_valid || size == 0 || data == NULL || !m_Buffer || m_flushRequested)
     return 0;