summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-10-02 09:01:38 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-10-02 09:01:38 +0200
commitecb0d28d90f58cd6b64a5111e0092c699fd1f280 (patch)
tree874862402b2bb5e351dc85ac5c4e17e73a1d0c43
parent98fdd847ca736f1ea0f8a15fb9a4d2194c651c61 (diff)
Use number of channels in buffer size calculation (ALSA docs is not exactly precise on this matter...)
-rw-r--r--src/sink.cc2
-rw-r--r--src/source.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/sink.cc b/src/sink.cc
index 779dd38..1211b7e 100644
--- a/src/sink.cc
+++ b/src/sink.cc
@@ -45,7 +45,7 @@ int Sink::writeSamples(const char *pcm, size_t size)
{
int rc;
- rc = snd_pcm_writei(handle, pcm, size / sizeof(short));
+ rc = snd_pcm_writei(handle, pcm, size / sizeof(short) / _channels);
if(rc == -EPIPE) {
// EPIPE means overrun
snd_pcm_prepare(handle);
diff --git a/src/source.cc b/src/source.cc
index 03faa15..6574970 100644
--- a/src/source.cc
+++ b/src/source.cc
@@ -46,7 +46,7 @@ int Source::readSamples(char *pcm, size_t maxsize)
{
int rc;
- rc = snd_pcm_readi(handle, pcm, maxsize / sizeof(short));
+ rc = snd_pcm_readi(handle, pcm, maxsize / sizeof(short) / _channels);
if(rc == -EPIPE) {
// EPIPE means overrun
snd_pcm_prepare(handle);