aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/alsa
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-12 09:00:06 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-12 09:00:06 +0000
commit11c28d4511817b4dea7acb7f652fd2bb67d1628b (patch)
tree147a7f8cf5c36a4a03903adbc53716319c66d1dd /src/plugins/Output/alsa
parent8113df7aa2370598a02fa5ff5aa4befa2b26010a (diff)
downloadqmmp-11c28d4511817b4dea7acb7f652fd2bb67d1628b.tar.gz
qmmp-11c28d4511817b4dea7acb7f652fd2bb67d1628b.tar.bz2
qmmp-11c28d4511817b4dea7acb7f652fd2bb67d1628b.zip
added alsa buffer aligment
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2120 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output/alsa')
-rw-r--r--src/plugins/Output/alsa/outputalsa.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp
index 460a300c4..2270d8a94 100644
--- a/src/plugins/Output/alsa/outputalsa.cpp
+++ b/src/plugins/Output/alsa/outputalsa.cpp
@@ -283,7 +283,13 @@ qint64 OutputALSA::writeAudio(unsigned char *data, qint64 maxSize)
long OutputALSA::alsa_write(unsigned char *data, long size)
{
- long m = 0;
+ long m = snd_pcm_avail_update(pcm_handle);
+ if(m >= 0 && m < size)
+ {
+ snd_pcm_wait(pcm_handle, 500);
+ return 0;
+ }
+
if (m_use_mmap)
m = snd_pcm_mmap_writei (pcm_handle, data, size);
else