From 443516cdda2cf6ba5f1e98546ab22ff2523da243 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 27 Nov 2013 08:24:54 +0100 Subject: configure.ac: prepare for 0.18.6 --- NEWS | 2 ++ configure.ac | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 9301f1dcc..b48badb56 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +ver 0.18.6 (not yet released) + ver 0.18.5 (2013/11/23) * configuration - fix crash when db_file is configured without music_directory diff --git a/configure.ac b/configure.ac index b55c19e30..8d4f459e1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ(2.60) -AC_INIT(mpd, 0.18.5, musicpd-dev-team@lists.sourceforge.net) +AC_INIT(mpd, 0.18.6~git, musicpd-dev-team@lists.sourceforge.net) VERSION_MAJOR=0 VERSION_MINOR=18 -- cgit v1.2.3 From 3b0fea5fae8ce52d2d4aa9ae7accc1f7f33592e1 Mon Sep 17 00:00:00 2001 From: Gaetan Bisson Date: Wed, 27 Nov 2013 08:24:34 +0100 Subject: input/cdio_paranoia: support libcdio-paranoia 0.90 --- NEWS | 2 ++ configure.ac | 1 + src/input/CdioParanoiaInputPlugin.cxx | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/NEWS b/NEWS index b48badb56..91803bd8a 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.18.6 (not yet released) +* input + - cdio_paranoia: support libcdio-paranoia 0.90 ver 0.18.5 (2013/11/23) * configuration diff --git a/configure.ac b/configure.ac index 8d4f459e1..a7c18f784 100644 --- a/configure.ac +++ b/configure.ac @@ -749,6 +749,7 @@ MPD_AUTO_PKG(cdio_paranoia, CDIO_PARANOIA, [libcdio_paranoia], if test x$enable_cdio_paranoia = xyes; then AC_DEFINE([ENABLE_CDIO_PARANOIA], 1, [Define to enable libcdio_paranoia support]) + AC_CHECK_HEADERS(cdio/paranoia/paranoia.h) fi AM_CONDITIONAL(ENABLE_CDIO_PARANOIA, test x$enable_cdio_paranoia = xyes) diff --git a/src/input/CdioParanoiaInputPlugin.cxx b/src/input/CdioParanoiaInputPlugin.cxx index cc366bff5..3978ab9c5 100644 --- a/src/input/CdioParanoiaInputPlugin.cxx +++ b/src/input/CdioParanoiaInputPlugin.cxx @@ -41,7 +41,12 @@ #include #include +#ifdef HAVE_CDIO_PARANOIA_PARANOIA_H +#include +#else #include +#endif + #include struct CdioParanoiaInputStream { -- cgit v1.2.3 From 47c50c079d0abf3d807815eb3c4b43dd6544b93f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 28 Nov 2013 00:05:26 +0100 Subject: decoder/ffmpeg: use IgnoreError instead of local Error instance --- src/decoder/FfmpegDecoderPlugin.cxx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/FfmpegDecoderPlugin.cxx index 1b62eae57..6add90045 100644 --- a/src/decoder/FfmpegDecoderPlugin.cxx +++ b/src/decoder/FfmpegDecoderPlugin.cxx @@ -120,8 +120,7 @@ mpd_ffmpeg_stream_seek(void *opaque, int64_t pos, int whence) if (whence == AVSEEK_SIZE) return stream->input.size; - Error error; - if (!stream->input.LockSeek(pos, whence, error)) + if (!stream->input.LockSeek(pos, whence, IgnoreError())) return -1; return stream->input.offset; @@ -342,11 +341,9 @@ ffmpeg_probe(Decoder *decoder, InputStream &is) PADDING = 16, }; - Error error; - unsigned char buffer[BUFFER_SIZE]; size_t nbytes = decoder_read(decoder, is, buffer, BUFFER_SIZE); - if (nbytes <= PADDING || !is.LockRewind(error)) + if (nbytes <= PADDING || !is.LockRewind(IgnoreError())) return nullptr; /* some ffmpeg parsers (e.g. ac3_parser.c) read a few bytes -- cgit v1.2.3 From 0ea5f4ac3a71e3b04672cd63f90206305330ef74 Mon Sep 17 00:00:00 2001 From: Lukas Stabe Date: Mon, 2 Dec 2013 13:08:03 +0100 Subject: output/openal: check __APPLE__ instead of HAVE_OSX On OSX, the configure-flag --enable-osx is used to enable the unsupported osx output. It sets the HAVE_OSX preprocessor define. src/output/OpenALOutputPlugin.cxx uses this define to determine wether it is building on OSX, and imports different headers (which have nothing to do with the osx output) depending on wether or not it is set. --- src/output/OpenALOutputPlugin.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/output/OpenALOutputPlugin.cxx b/src/output/OpenALOutputPlugin.cxx index e753b206f..268cf17cc 100644 --- a/src/output/OpenALOutputPlugin.cxx +++ b/src/output/OpenALOutputPlugin.cxx @@ -25,7 +25,7 @@ #include -#ifndef HAVE_OSX +#ifndef __APPLE__ #include #include #else -- cgit v1.2.3 From 02e8da6c98e3f7ea67702dffe1dd2bea57d8389b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Dec 2013 19:19:27 +0100 Subject: NEWS: add openal line --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 91803bd8a..300404690 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,8 @@ ver 0.18.6 (not yet released) * input - cdio_paranoia: support libcdio-paranoia 0.90 +* output + - openal: fix build failure on Mac OS X ver 0.18.5 (2013/11/23) * configuration -- cgit v1.2.3 From 695ca292742a1d09d9bf9c56cea50ac954383914 Mon Sep 17 00:00:00 2001 From: Lukas Stabe Date: Tue, 10 Dec 2013 19:16:37 +0100 Subject: output/osx: fix build failure --- NEWS | 1 + src/output/OSXOutputPlugin.cxx | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 300404690..3f1fbb269 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ ver 0.18.6 (not yet released) - cdio_paranoia: support libcdio-paranoia 0.90 * output - openal: fix build failure on Mac OS X + - osx: fix build failure ver 0.18.5 (2013/11/23) * configuration diff --git a/src/output/OSXOutputPlugin.cxx b/src/output/OSXOutputPlugin.cxx index 7debe6ab2..97ebae056 100644 --- a/src/output/OSXOutputPlugin.cxx +++ b/src/output/OSXOutputPlugin.cxx @@ -363,9 +363,9 @@ osx_output_open(struct audio_output *ao, AudioFormat &audio_format, OSStatus status = AudioUnitInitialize(od->au); if (status != noErr) { - error.Set(osx_output_domain, status, - "Unable to initialize OS X audio unit: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to initialize OS X audio unit: %s", + GetMacOSStatusCommentString(status)); return false; } -- cgit v1.2.3 From 39d94bd3ea9e7c457f5a30bc3b4017f3d63294e5 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Dec 2013 19:32:26 +0100 Subject: TagFile: add return value API documentation --- src/TagFile.hxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/TagFile.hxx b/src/TagFile.hxx index 3a49a04e1..078abebd9 100644 --- a/src/TagFile.hxx +++ b/src/TagFile.hxx @@ -28,6 +28,9 @@ struct tag_handler; /** * Scan the tags of a song file. Invokes matching decoder plugins, * but does not invoke the special "APE" and "ID3" scanners. + * + * @return true if the file was recognized (even if no metadata was + * found) */ bool tag_file_scan(Path path, -- cgit v1.2.3 From 96fa69ff6b0a07602533b5280c6cfc39571b2552 Mon Sep 17 00:00:00 2001 From: mobidyc Date: Tue, 10 Dec 2013 19:34:35 +0100 Subject: SongUpdate: accept files without metadata If the file was recognized by a decoder plugin, accept it - don't require metadata. --- NEWS | 1 + src/SongUpdate.cxx | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 3f1fbb269..cf886eda4 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ ver 0.18.6 (not yet released) * output - openal: fix build failure on Mac OS X - osx: fix build failure +* accept files without metadata ver 0.18.5 (2013/11/23) * configuration diff --git a/src/SongUpdate.cxx b/src/SongUpdate.cxx index a34734227..1a873fedc 100644 --- a/src/SongUpdate.cxx +++ b/src/SongUpdate.cxx @@ -95,8 +95,7 @@ Song::UpdateFile() TagBuilder tag_builder; if (!tag_file_scan(path_fs, - &full_tag_handler, &tag_builder) || - !tag_builder.IsDefined()) + &full_tag_handler, &tag_builder)) return false; if (tag_builder.IsEmpty()) -- cgit v1.2.3 From de78fe38c84120c60728a4e670b850a81ac45c3e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 11 Dec 2013 20:54:42 +0100 Subject: doc/user: document shout option "protocol" --- doc/user.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/user.xml b/doc/user.xml index 772805161..962b7c280 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -1883,6 +1883,18 @@ systemctl start mpd.socket Defaults to 2 seconds. + + + protocol + icecast2|icecast1|shoutcast + + + Specifies the protocol that wil be used to connect + to the icecast/shoutcast server. The default + is "icecast2". + + + mount -- cgit v1.2.3 From 166c70cab36d654aefe70ccba4c1944b177f398b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 11 Dec 2013 20:57:59 +0100 Subject: doc/user: document the "fifo" output Move from doc/mpd.conf.5. --- doc/mpd.conf.5 | 11 ----------- doc/user.xml | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index 3c48b5f30..c697eba88 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -420,17 +420,6 @@ default is "". 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 -This specifies the path of the FIFO to output to. Must be an absolute path. -If the path does not exist it will be created when mpd is started, and removed -when mpd is stopped. The FIFO will be created with the same user and group as -mpd is running as. Default permissions can be modified by using the builtin -shell command "umask". If a FIFO already exists at the specified path it will -be reused, and will \fBnot\fP be removed when mpd is stopped. You can use the -"mkfifo" command to create this, and then you may modify the permissions to -your liking. .SH REQUIRED SHOUT OUTPUT PARAMETERS .TP .B name diff --git a/doc/user.xml b/doc/user.xml index 962b7c280..d90fce9c6 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -1408,6 +1408,38 @@ systemctl start mpd.socket FIFO (First In, First Out) file. The data can be read by another program. + + + + + + Setting + Description + + + + + + path + P + + + This specifies the path of the FIFO to write to. + Must be an absolute path. If the path does not + exist, it will be created when MPD is started, and + removed when MPD is stopped. The FIFO will be + created with the same user and group as MPD is + running as. Default permissions can be modified by + using the builtin shell command "umask". If a FIFO + already exists at the specified path it will be + reused, and will not be removed when MPD is stopped. + You can use the "mkfifo" command to create this, and + then you may modify the permissions to your liking. + + + + +
-- cgit v1.2.3 From 82a89c6bfe152cea692ad143f9557016102f742d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 11 Dec 2013 21:03:11 +0100 Subject: doc/user: document the "ao" output Move from doc/mpd.conf.5. --- doc/mpd.conf.5 | 22 ---------------------- doc/user.xml | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index c697eba88..eafff086a 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -398,28 +398,6 @@ channels, respectively. The default is to let JACK choose a pair of ports. .TP .B ringbuffer_size This specifies the size of the ringbuffer in bytes. The default is 32768. -.SH OPTIONAL AO OUTPUT PARAMETERS -.TP -.B driver -This specifies the libao driver to use for audio output. Possible values -depend on what libao drivers are available. See -<\fBhttp://www.xiph.org/ao/doc/drivers.html\fP> for information on some -commonly used drivers. Typical values for Linux include "oss" and "alsa09". -The default is "default", which causes libao to select an appropriate plugin. -.TP -.B options -This specifies the options to use for the selected libao driver. For oss, the -only option available is "dsp". For alsa09, the available options are: "dev", -"buf_size", and "periods". See <\fBhttp://www.xiph.org/ao/doc/drivers.html\fP> -for available options for some commonly used drivers. Options are assigned -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 -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 SHOUT OUTPUT PARAMETERS .TP .B name diff --git a/doc/user.xml b/doc/user.xml index d90fce9c6..99278a69b 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -1398,6 +1398,59 @@ systemctl start mpd.socket The ao plugin uses the portable libao library. + + + + + + Setting + Description + + + + + + driver + D + + + The libao driver to use for + audio output. Possible values depend on what libao + drivers are available. See http://www.xiph.org/ao/doc/drivers.html + for information on some commonly used drivers. + Typical values for Linux include "oss" and "alsa09". + The default is "default", which causes libao to + select an appropriate plugin. + + + + + + options + O + + + Options to pass to the selected + libao driver. + + + + + + write_size + O + + + 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. + + + + +
-- cgit v1.2.3 From db4ae19246a32df27cfe4d487f9e1aaec8673440 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 11 Dec 2013 20:55:17 +0100 Subject: doc/mpd.conf.5: remove redundant documentation The real and detailed documentation is in the user manual. --- doc/mpd.conf.5 | 98 ---------------------------------------------------------- 1 file changed, 98 deletions(-) diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index eafff086a..6431613d1 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -363,104 +363,6 @@ errors on bandwidth-limited devices. Some users have reported good results with this set to 50000, but not all devices support values this high. Most users do not need to change this. The default is 256000000 / sample_rate(kHz), or 5804 microseconds for CD-quality audio. -.SH OPTIONAL OSS OUTPUT PARAMETERS -.TP -.B device -This specifies the device to use for audio output. The default is "/dev/dsp". -.TP -.B mixer_device -This specifies which mixer to use. The default is "/dev/mixer". -.TP -.B mixer_control -This specifies which mixer control to use (sometimes referred to as the -"device"). The default is to use the main PCM mixer. An example is "Pcm". -.SH OPTIONAL PULSE OUTPUT PARAMETERS -.TP -.B server -A space separated list of servers to try to connect to. See -<\fBhttp://www.pulseaudio.org/wiki/ServerStrings\fP> for more details. The -default is to let PulseAudio choose a server. -If you specify more than one server name, MPD tries to connect to one -after another until it successfully establishes a connection. -.TP -.B sink -The sink to output to. The default is to let PulseAudio choose a sink. -.SH OPTIONAL JACK OUTPUT PARAMETERS -.TP -.B client_name -The client name to use when connecting to JACK. The output ports :left -and :right will also be created for the left and right channels, -respectively. -.TP -.B ports -This specifies the left and right ports to connect to for the left and right -channels, respectively. The default is to let JACK choose a pair of ports. -.TP -.B ringbuffer_size -This specifies the size of the ringbuffer in bytes. The default is 32768. -.SH REQUIRED SHOUT OUTPUT PARAMETERS -.TP -.B name -This specifies not only the unique audio output name, but also the stream -title. -.TP -.B host -This specifies the hostname of the icecast server to connect to. -.TP -.B port -This specifies the port of the icecast server to connect to. -.TP -.B mount -This specifies the icecast mountpoint to use. -.TP -.B password -This specifies the password to use when logging in to the icecast server. -.TP -.B quality -This specifies the encoding quality to use. The value must be between 0 -and 10. Fractional values, such as 2.5, are permitted. Either the quality or -the bitrate parameter must be specified, but not both. For Ogg, a -higher quality number produces higher quality output. For MP3, it's -just the opposite, with lower numbers producing higher quality output. -.TP -.B bitrate -This specifies the bitrate to use for encoding. Either the quality or the -bitrate parameter must be specified, but not both. -.TP -.B format -This specifies the sample rate, bits per sample, and number of channels to use -for encoding. -.SH OPTIONAL SHOUT OUTPUT PARAMETERS -.TP -.B encoding -This specifies which output encoding to use. Should be either "ogg" -or "mp3", "mp3" is needed for shoutcast streaming. The default is "ogg". -.TP -.B protocol -This specifies the protocol that wil be used to connect to the -icecast/shoutcast server. The options are "shoutcast", "icecast1" and -"icecast2". The default is "icecast2". -.TP -.B user -This specifies the username to use when logging in to the icecast server. The -default is "source". -.TP -.B public -This specifies whether to request that the stream be listed in all public -stream directories that the icecast server knows about. The default is no. -.TP -.B timeout -This specifies the number of seconds to wait before giving up on trying to -connect to the icecast server. The default is 2 seconds. -.TP -.B description -This specifies a description of the stream. -.TP -.B url -This specifies a URL associated with the stream. -.TP -.B genre -This specifies the genre(s) of the stream. .SH FILES .TP .BI ~/.mpdconf -- cgit v1.2.3 From 8e38b4f83c98ae61e9f843c3d770dcbac699c98c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 13 Dec 2013 14:35:36 +0100 Subject: mixer/alsa: use BlockingCall() instead of EventLoop::AddCall() This is safer, and works without epoll(). Fixes a build failure with uClibc, which does not support epoll(). --- NEWS | 2 ++ src/mixer/AlsaMixerPlugin.cxx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index cf886eda4..f789af2b1 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,8 @@ ver 0.18.6 (not yet released) * output - openal: fix build failure on Mac OS X - osx: fix build failure +* mixer + - alsa: fix build failure with uClibc * accept files without metadata ver 0.18.5 (2013/11/23) diff --git a/src/mixer/AlsaMixerPlugin.cxx b/src/mixer/AlsaMixerPlugin.cxx index 7defdd7be..b81ca4246 100644 --- a/src/mixer/AlsaMixerPlugin.cxx +++ b/src/mixer/AlsaMixerPlugin.cxx @@ -24,6 +24,7 @@ #include "Main.hxx" #include "event/MultiSocketMonitor.hxx" #include "event/Loop.hxx" +#include "event/Call.hxx" #include "util/ASCII.hxx" #include "util/ReusableArray.hxx" #include "util/Error.hxx" @@ -46,7 +47,7 @@ class AlsaMixerMonitor final : private MultiSocketMonitor { public: AlsaMixerMonitor(EventLoop &_loop, snd_mixer_t *_mixer) :MultiSocketMonitor(_loop), mixer(_mixer) { - _loop.AddCall([this](){ InvalidateSockets(); }); + BlockingCall(_loop, [this](){ InvalidateSockets(); }); } private: -- cgit v1.2.3 From c170fed6f9a747bfe9e4e53a85ebc2e92a70bab6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 14 Dec 2013 12:33:20 +0100 Subject: .gitignore: ignore "test-driver" File generated by automake version 1.14. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a520f12d0..3c8552099 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ libtool ltmain.sh missing mkinstalldirs +/test-driver mpd mpd.service stamp-h1 -- cgit v1.2.3