From 0ad23e752afb3afdf0771a50a8fc9992b6308485 Mon Sep 17 00:00:00 2001
From: Dimitris Papastamos <[email protected]>
Date: Wed, 22 Jun 2016 14:03:27 +0100
Subject: [PATCH 1/2] sndio: Allow tweaking application buffer size
It defaults to 250 ms.
---
src/output/plugins/SndioOutputPlugin.cxx | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/output/plugins/SndioOutputPlugin.cxx
b/src/output/plugins/SndioOutputPlugin.cxx
index ed039e7..eac302a 100644
--- a/src/output/plugins/SndioOutputPlugin.cxx
+++ b/src/output/plugins/SndioOutputPlugin.cxx
@@ -36,10 +36,13 @@
#define SIO_DEVANY "default"
#endif
+static constexpr unsigned MPD_SNDIO_BUFFER_TIME_MS = 250;
+
class SndioOutput {
friend struct AudioOutputWrapper<SndioOutput>;
AudioOutput base;
const char *device;
+ unsigned buffer_time; /* in ms */
struct sio_hdl *sio_hdl;
public:
@@ -66,6 +69,8 @@ SndioOutput::Configure(const ConfigBlock &block, Error &error)
if (!base.Configure(block, error))
return false;
device = block.GetBlockValue("device", SIO_DEVANY);
+ buffer_time = block.GetBlockValue("buffer_time",
+ MPD_SNDIO_BUFFER_TIME_MS);
return true;
}
@@ -133,6 +138,7 @@ SndioOutput::Open(AudioFormat &audio_format, gcc_unused
Error &error)
par.pchan = chans;
par.sig = 1;
par.le = SIO_LE_NATIVE;
+ par.appbufsz = rate * buffer_time / 1000;
if (!sio_setpar(sio_hdl, &par) ||
!sio_getpar(sio_hdl, &par)) {
--
2.8.4
_______________________________________________
mpd-devel mailing list
[email protected]
http://mailman.blarg.de/listinfo/mpd-devel