pisymbol . | 15 Feb 23:46 2015

Can't control volume during SACD playback


When using 'mixer_type="software"' in my mpd.conf file, volume can not
be controlled during DSF and SACD ISO playback (ISO support is via
Maxim Anisiutkin's experimental plugin). However, FLAC and MP3 files
work just fine in using the software option for my mixer setting.

Running Linux Mint 17, 3.13.0.-37-generic x86_64. I am using
mpd-0.18.7-1 as well as Maxim's fork (git pull as of 2/14/15). My
client is ncmpcpp-0.5.10-1.1.

Hardware based volume control works fine though with all file formats,
only software based fails with SACD based files. Given that the SACD
files should be converted to 24-bit/385.2k PCM during playback,
shouldn't software mixer based volume control still work?

More info:

 $ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC283 Analog [ALC283 Analog]
(Continue reading)

Ville Skyttä | 15 Feb 11:30 2015

[PATCH] bash completion: Install to where bash-completion.pc says

 Makefile.am             | 13 ++++++++++---
 configure.ac            |  3 +++
 doc/mpc-completion.bash |  2 +-
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 1567ba9..24c060d 100644
--- a/Makefile.am
+++ b/Makefile.am
 <at>  <at>  -3,9 +3,16  <at>  <at>  AUTOMAKE_OPTIONS = foreign 1.11 dist-xz subdir-objects

 man_MANS = doc/mpc.1
-	doc/mpd-m3u-handler.sh doc/mpd-pls-handler.sh doc/mppledit \
-	doc/mpc-completion.bash
-EXTRA_DIST = $(man_MANS) $(doc_DATA)
+	doc/mpd-m3u-handler.sh doc/mpd-pls-handler.sh doc/mppledit
+bashcompdir =  <at> bashcompdir <at> 
+bashcomp_DATA = doc/mpc-completion.bash
+EXTRA_DIST = $(man_MANS) $(doc_DATA) $(bashcomp_DATA)
+	mv $(DESTDIR)$(bashcompdir)/mpc-completion.bash \
+	   $(DESTDIR)$(bashcompdir)/mpc
+	$(RM) $(DESTDIR)$(bashcompdir)/mpc

 bin_PROGRAMS = src/mpc

(Continue reading)

kaliko | 9 Feb 12:59 2015

mpd-website request pull


I've corrected a link for a python module page.

Please consider merging the ref libs:


mpd-devel mailing list
mpd-devel <at> musicpd.org
Ben Boeckel | 8 Feb 02:39 2015

[PATCH] util: clarify that the error is from mpd

When mpc prints out 'error: ...', it is ambiguous where it came from.
When the error comes from the mpd server, the user might be confused by
something like:

    % mpc sticker music find
    syntax: sticker <dir> find <key>
    % mpc sticker music find rating
    error: unknown command "sticker"

thinking that 'mpc sticker' isn't working properly when the real error
is that the mpd server was built without sqlite.

Signed-off-by: Ben Boeckel <mathstuf <at> gmail.com>
 src/util.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/util.c b/src/util.c
index 411df2c..50fb137 100644
--- a/src/util.c
+++ b/src/util.c
 <at>  <at>  -42,7 +42,7  <at>  <at>  printErrorAndExit(struct mpd_connection *conn)
 		   rest is either US-ASCII or locale */
 		message = charset_from_utf8(message);

-	fprintf(stderr, "error: %s\n", message);
+	fprintf(stderr, "mpd error: %s\n", message);
(Continue reading)

Gustavo Zacarias | 26 Jan 14:42 2015

[PATCH] thread/Name: include stdio.h for prctl as well

We're still using snprintf so we need it, otherwise it leads to build

Signed-off-by: Gustavo Zacarias <gustavo <at> zacarias.com.ar>
 src/thread/Name.hxx | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/thread/Name.hxx b/src/thread/Name.hxx
index 1576b3f..8d46d33 100644
--- a/src/thread/Name.hxx
+++ b/src/thread/Name.hxx
 <at>  <at>  -26,6 +26,7  <at>  <at> 
 #  include <stdio.h>
 #elif defined(HAVE_PRCTL)
 #  include <sys/prctl.h>
+#  include <stdio.h>
 #  ifdef PR_SET_NAME
 #    define HAVE_THREAD_NAME
 #  endif


mpd-devel mailing list
mpd-devel <at> musicpd.org
Felix Salfelder | 23 Jan 22:46 2015

mixer-only alsa output (feature request)

Hi there.

thanks for mpd!

i have mpd outputing audio to jack.

audio_output {
	type        "jack"
	name      "My JACK Device"

and i use an alsa output just to remote control a mixer.

audio_output {
	type            "alsa"
	name            "My ALSA Mixer"
	device          "none"  # <=
	mixer_device    "hw:1"
	mixer_control   "Master"

this is working perfectly, as intended. however, mpd actually tries to
use alsa for output as well. and complains a lot, spamming the log file.

ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM none
Jan 23 21:31 : alsa_output: Failed to open "My ALSA Device" [alsa]: Failed to open ALSA device "none": No
such file or directory

it would be nice to have some way to disable this. see below for the simplest patch i can think of.

(Continue reading)

Alexander Hall | 15 Jan 22:03 2015

Fwd: mpc diff - mpc git diff

Fix use-after-free in mpc / cmd_seek()

Please cc me any reply as I'm not a subscriber of the list.


diff --git a/src/command.c b/src/command.c
index 02894aa..31a2c72 100644
--- a/src/command.c
+++ b/src/command.c
 <at>  <at>  -458,11 +458,11  <at>  <at>  cmd_seek(gcc_unused int argc, gcc_unused char **argv, struct mpd_connection *con
 	if (seekto > (int)mpd_status_get_total_time(status))
 		DIE("Seek amount would seek past the end of the song\n");

-	mpd_status_free(status);
 	if (!mpd_run_seek_id(conn, mpd_status_get_song_id(status), seekto))

+	mpd_status_free(status);
 	return 1;

mpd-devel mailing list
mpd-devel <at> musicpd.org
Wieland Hoffmann | 12 Jan 11:37 2015

[PATCH] doc/protocol.xml: Fix a typo

 doc/protocol.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/protocol.xml b/doc/protocol.xml
index d56b09f..9bd1854 100644
--- a/doc/protocol.xml
+++ b/doc/protocol.xml
 <at>  <at>  -238,7 +238,7  <at>  <at> 
         "before" the current song in that sequence) will only be
         scheduled for repeated playback if its priority has become
         bigger than the priority of the current song.  Decreasing the
-        priority of a song will moved it farther to the end of the
+        priority of a song will move it farther to the end of the
         sequence.  Changing the priority of the current song has no
         effect on the sequence.  During playback, a song's priority is
         reset to zero.


mpd-devel mailing list
mpd-devel <at> musicpd.org
Reventlov | 1 Jan 18:30 2015

[PATCH] Fixing the systemd service file against systemd>205

Since Systemd 205, the low-level cgroup configuration options
ControlGroup= and ControlGroupAttribute= have been removed.

Relevant upstream changelog:

Thoses options should be disabled. Preserving the pre-systemd
205 behavior toward realtime is behind my scope, but I think it can be
achieved by using (I guess) IOSchedulingClass.

Happy new year, patch is attached.
mpd-devel mailing list
mpd-devel <at> musicpd.org
Vincent Mussard | 28 Dec 18:05 2014

PATCH : Add option to set cache size of libcdio_paranoia

Dear all

Here is a little patch that add an option "cache_size" to the 
cdio_paranoia plugin.
This option set the libcdio_paranoia cache size (in sector), which is by 
default very high (1200 sectors == 16 seconds).
On my setup (raspberry pi + usb dvd drive) this default value cause 
sound to drop every 16 seconds. With a small value of 75 sectors, it 
works much better.
Patch is based on mpd 0.18.21.

Thank you


Attachment (patch_paranoia.patch): text/x-patch, 1289 bytes
mpd-devel mailing list
mpd-devel <at> musicpd.org
Jan Brittenson | 23 Dec 07:26 2014

DSF ID3 tags hitting 4k size limit

Here’s a change to dynamically allocate the DSD ID3 tag buffer.  Pretty much anything with cover art
is going to exceed the existing, static 4k limit...  Here’s a change to dynamically allocate the buffer and
sanity check it at some upper limit.  I rather arbitrarily pulled 256k out of thin air just to keep a corrupt
file from causing it to trying to allocate a buffer larger than available memory.

diff --git a/src/decoder/plugins/DsdLib.cxx b/src/decoder/plugins/DsdLib.cxx
index 13f6bc8..9ac986b 100644
--- a/src/decoder/plugins/DsdLib.cxx
+++ b/src/decoder/plugins/DsdLib.cxx
 <at>  <at>  -29,6 +29,7  <at>  <at> 
 #include "input/InputStream.hxx"
 #include "tag/TagId3.hxx"
 #include "util/Error.hxx"
+#include "util/Alloc.hxx"

 #include <string.h>

 <at>  <at>  -123,22 +124,27  <at>  <at>  dsdlib_tag_id3(InputStream &is,

 	const id3_length_t count = size - offset;

-	/* Check and limit id3 tag size to prevent a stack overflow */
-	id3_byte_t dsdid3[4096];
-	if (count == 0 || count > sizeof(dsdid3))
+	if (count < 10 || count > 256*1024)

-	if (!decoder_read_full(nullptr, is, dsdid3, count))
+	id3_byte_t *const id3_buf = static_cast<id3_byte_t*>(xalloc(count));
(Continue reading)