Uff... Subject forgotten :( Sorry for my lameness! On Mon, 05 Mar 2012, David Coppa wrote:
> I'd like to remove this "write_size" constraint, as suggested by > jakemsr@ some time ago: > > http://marc.info/?l=openbsd-ports&m=128630571914847 > > http://marc.info/?l=openbsd-ports&m=128630890119517 > > As jake said, 1024 bytes is only 256 samples of 16-bit stereo. > At 44.1kHz, that's only 5.8 miliseconds. If mpd takes more than > 5.8 ms between writes, for whatever reason, it will skip. > So, this represents a performance penalty on fast machines and > afaik sndiod should already cope with eventual stuffups just > fine on slower ones... > > Alexandre, what do you think about this? Is it reasonable? > > ciao > David Index: Makefile =================================================================== RCS file: /cvs/ports/audio/mpd/Makefile,v retrieving revision 1.43 diff -u -p -r1.43 Makefile --- Makefile 4 Mar 2012 16:57:19 -0000 1.43 +++ Makefile 5 Mar 2012 10:10:23 -0000 @@ -2,6 +2,7 @@ COMMENT = Music Player Daemon DISTNAME = mpd-0.16.7 +REVISION = 0 CATEGORIES = audio HOMEPAGE = http://www.musicpd.org/ MAINTAINER = David Coppa <dco...@openbsd.org> Index: patches/patch-doc_mpd_conf_5 =================================================================== RCS file: patches/patch-doc_mpd_conf_5 diff -N patches/patch-doc_mpd_conf_5 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-doc_mpd_conf_5 5 Mar 2012 10:10:23 -0000 @@ -0,0 +1,20 @@ +$OpenBSD$ + +Remove "write_size" constraint. See: +http://marc.info/?l=openbsd-ports&m=128630571914847 +http://marc.info/?l=openbsd-ports&m=128630890119517 + +--- doc/mpd.conf.5.orig Mon Mar 5 10:33:42 2012 ++++ doc/mpd.conf.5 Mon Mar 5 10:34:09 2012 +@@ -390,11 +390,6 @@ for available options for some commonly used drivers. + using "=", and ";" is used to separate options. An example for oss: + "dsp=/dev/dsp". An example for alsa09: "dev=hw:0,0;buf_size=4096". The + default is "". +-.TP +-.B write_size <size in bytes> +-This specifies how many bytes to write to the audio device at once. This +-parameter is to work around a bug in older versions of libao on sound cards +-with very small buffers. The default is 1024. + .SH REQUIRED FIFO OUTPUT PARAMETERS + .TP + .B path <path> Index: patches/patch-src_output_ao_plugin_c =================================================================== RCS file: patches/patch-src_output_ao_plugin_c diff -N patches/patch-src_output_ao_plugin_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_output_ao_plugin_c 5 Mar 2012 10:10:23 -0000 @@ -0,0 +1,35 @@ +$OpenBSD$ + +Remove "write_size" constraint. See: +http://marc.info/?l=openbsd-ports&m=128630571914847 +http://marc.info/?l=openbsd-ports&m=128630890119517 + +--- src/output/ao_plugin.c.orig Mon Mar 5 10:34:57 2012 ++++ src/output/ao_plugin.c Mon Mar 5 10:35:21 2012 +@@ -32,7 +32,6 @@ static const ao_sample_format OUR_AO_FORMAT_INITIALIZE + static unsigned ao_output_ref; + + struct ao_data { +- size_t write_size; + int driver; + ao_option *options; + ao_device *device; +@@ -89,8 +88,6 @@ ao_output_init(G_GNUC_UNUSED const struct audio_format + + ad->options = NULL; + +- ad->write_size = config_get_block_unsigned(param, "write_size", 1024); +- + if (ao_output_ref == 0) { + ao_initialize(); + } +@@ -230,9 +227,6 @@ ao_output_play(void *data, const void *chunk, size_t s + GError **error) + { + struct ao_data *ad = (struct ao_data *)data; +- +- if (size > ad->write_size) +- size = ad->write_size; + + if (ao_play_deconst(ad->device, chunk, size) == 0) { + ao_output_error(error);