From f8f5d40532067af6f3251ef8d63c235d1e9b00df Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 25 Jun 2009 11:29:08 +0200 Subject: NEWS: updated NEWS file for 0.15.1 --- NEWS | 3 +++ configure.ac | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index dde8ae706..aec055b91 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +ver 0.15.1 (2009/??/??) + + ver 0.15 (2009/06/23) * input: - parse Icy-Metadata diff --git a/configure.ac b/configure.ac index 47adedd07..1d793dddb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.60) -AC_INIT(mpd, 0.15, musicpd-dev-team@lists.sourceforge.net) +AC_INIT(mpd, 0.15.1~git, musicpd-dev-team@lists.sourceforge.net) AC_CONFIG_SRCDIR([src/main.c]) AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2]) AM_CONFIG_HEADER(config.h) -- cgit v1.2.3 From d820a893ccc765388ed69de4aed3ff842c53c55c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 25 Jun 2009 11:29:51 +0200 Subject: configure.ac: fix the --disable-ffmpeg help text --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1d793dddb..ebf08cb8f 100644 --- a/configure.ac +++ b/configure.ac @@ -398,7 +398,7 @@ AC_ARG_ENABLE(audiofile, AC_ARG_ENABLE(ffmpeg, AS_HELP_STRING([--disable-ffmpeg], - [enable FFMPEG support (default: enable)]),, + [disable FFMPEG support (default: enable)]),, enable_ffmpeg=yes) AC_ARG_ENABLE(flac, -- cgit v1.2.3 From 84c2e8457060297a1ccafc5317e1715a1f2f7656 Mon Sep 17 00:00:00 2001 From: Enrico Mioso Date: Fri, 26 Jun 2009 14:41:07 +0200 Subject: doc: fix wording for option "follow_inside_symlinks" --- doc/mpd.conf.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index 7bf3a3f75..776fdbefd 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -35,8 +35,8 @@ You must recreate the database after changing this option. The default is "yes". .TP .B follow_inside_symlinks -Control if MPD will follow symbolic links pointing outside the music dir, potentially -adding duplicates to the database. +Control if MPD will follow symbolic links pointing inside the music dir, +potentially adding duplicates to the database. You must recreate the database after changing this option. The default is "yes". .TP -- cgit v1.2.3 From 40851b7cac34abb708d12ce5bf110ffb15af6819 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 29 Jun 2009 22:20:36 +0200 Subject: output_all: don't resume playback when stopping during pause When MPD was paused, and the client sent the "stop" command (or "clear"), a glitch caused MPD to continue playback for a split second. This was because audio_output_all_cancel() calls audio_output_all_update(), which reopens all output devices, and re-ignites the playback loop. --- NEWS | 2 ++ src/output_all.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index aec055b91..a4c377fa5 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.15.1 (2009/??/??) +* commands: + - don't resume playback when stopping during pause ver 0.15 (2009/06/23) diff --git a/src/output_all.c b/src/output_all.c index c6fb0f481..4b5ba3a6f 100644 --- a/src/output_all.c +++ b/src/output_all.c @@ -439,8 +439,6 @@ audio_output_all_cancel(void) { unsigned int i; - audio_output_all_update(); - /* send the cancel() command to all audio outputs */ for (i = 0; i < num_audio_outputs; ++i) { -- cgit v1.2.3 From 1937d29228a9727fb76faeffd66a74c6167238e0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 29 Jun 2009 22:20:46 +0200 Subject: output_thread: don't play next chunk after command==PAUSE When the PAUSE loop ends, re-check the next command before calling ao_play() again. --- src/output_thread.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/output_thread.c b/src/output_thread.c index acedd863e..d414ba8d5 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -246,7 +246,11 @@ static gpointer audio_output_task(gpointer arg) case AO_COMMAND_PAUSE: ao_pause(ao); - break; + /* don't "break" here: this might cause + ao_play() to be called when command==CLOSE + ends the paused state - "continue" checks + the new command first */ + continue; case AO_COMMAND_CANCEL: ao->chunk = NULL; -- cgit v1.2.3 From 746e95a0a6eea0b226ca54b82dad75436c9ca188 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 30 Jun 2009 07:28:34 +0200 Subject: doc/protocol: clarified "idle database" --- doc/protocol.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/protocol.xml b/doc/protocol.xml index b4addf35a..792227a1a 100644 --- a/doc/protocol.xml +++ b/doc/protocol.xml @@ -134,7 +134,7 @@ database: the song database - has been updated + has been modified after update. -- cgit v1.2.3 From 5b9dfbe3539ba3d7d1d2962f1f888c4bd90755fa Mon Sep 17 00:00:00 2001 From: Enrico Mioso Date: Tue, 30 Jun 2009 07:31:09 +0200 Subject: doc/user: added introduction - introduce a section explaining the mpd.conf format, as done in the man page: is it better to re-explain it here or ointing the user to the man page, avoiding information dupplication? - reorganizze some sections of the manual to give them a linear aspect... --- doc/user.xml | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/doc/user.xml b/doc/user.xml index e230f3837..2f7b56448 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -11,6 +11,30 @@ This document is work in progress. Most of it may be incomplete yet. Please help! + + + MPD (Music Player Daemon) is, as the name suggests, a server + software allowing you to remotely play your music, handle + playlists, deliver music (HTTP STREAMS with various + sub-protocols) and organizze playlists. + + + + It has been written with minimal resource usage and stability in + mind! Infact, it runs fine on a Pentium 75, allowing you to use + your cheap old PC to create a stereo system! + + + + MPD supports also Gapless playback, buffered audio output, and + crossfading! + + + + The separate client and server design allows users to choose a + user interface that best suites their tastes independently of + the underlying daemon, which actually plays music! + @@ -26,10 +50,16 @@ Installing on Debian/Ubuntu - Install the package mpd: + Install the package mpd via APT: apt-get install mpd + + + When installed this way, MPD by default looks for music in + /var/lib/mpd/music/; this may not be correct. Look at your + /etc/mpd.conf file... +
@@ -41,8 +71,8 @@ page and unpack it: - tar xjf mpd-0.14.2.tar.bz -cd mpd-0.14.2 + tar xjf mpd-version.tar.bz +cd mpd-version Make sure that all the required libraries and build tools are -- cgit v1.2.3 From 15d4c841ce8b5b387850d710999c623b038910fa Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 30 Jun 2009 16:29:40 +0200 Subject: database: fixed NULL pointer dereference after charset change When the filesystem_charset is changed in mpd.conf, MPD should discard the old database. In this error branch, MPD did not fill the GError object properly, and logged a warning message instead, which caused a segmentation fault. --- NEWS | 1 + src/database.c | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index a4c377fa5..b0518128a 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ ver 0.15.1 (2009/??/??) * commands: - don't resume playback when stopping during pause +* database: fixed NULL pointer dereference after charset change ver 0.15 (2009/06/23) diff --git a/src/database.c b/src/database.c index 7257930bc..5a06dda98 100644 --- a/src/database.c +++ b/src/database.c @@ -318,10 +318,11 @@ db_load(GError **error) if (old_charset != NULL && strcmp(new_charset, old_charset)) { fclose(fp); - g_message("Existing database has charset \"%s\" " - "instead of \"%s\"; " - "discarding database file", - new_charset, old_charset); + g_set_error(error, db_quark(), 0, + "Existing database has charset " + "\"%s\" instead of \"%s\"; " + "discarding database file", + new_charset, old_charset); return false; } } else { -- cgit v1.2.3 From badb827712f14a811483ed542b2c2cf09e650cce Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 5 Jul 2009 07:14:24 +0200 Subject: log: fix double free() bug during shutdown Don't free an internal configuration value in log_init(). Call config_get_path() instead of manually calling parsePath(). --- NEWS | 1 + src/log.c | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index b0518128a..8c3d17862 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,7 @@ ver 0.15.1 (2009/??/??) * commands: - don't resume playback when stopping during pause * database: fixed NULL pointer dereference after charset change +* log: fix double free() bug during shutdown ver 0.15 (2009/06/23) diff --git a/src/log.c b/src/log.c index b7c6b9bb0..94691ab64 100644 --- a/src/log.c +++ b/src/log.c @@ -259,12 +259,8 @@ void log_init(bool verbose, bool use_stdout) log_init_syslog(); #endif } else { - char *path = parsePath(param->value); - g_free(param->value); - - if (path == NULL) - g_error("error parsing \"%s\" at line %i\n", - CONF_LOG_FILE, param->line); + const char *path = config_get_path(CONF_LOG_FILE); + assert(path != NULL); log_init_file(path, param->line); } -- cgit v1.2.3 From 00eea0e61509847d52c6e7c328c526cd8ea21f5e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 11:32:31 +0200 Subject: song: initialize mtime in song_alloc() --- src/song.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/song.c b/src/song.c index f7eee54a2..76c25f44f 100644 --- a/src/song.c +++ b/src/song.c @@ -49,6 +49,7 @@ song_alloc(const char *url, struct directory *parent) song->tag = NULL; memcpy(song->url, url, urllen + 1); song->parent = parent; + song->mtime = 0; return song; } -- cgit v1.2.3 From 64ca94c91020626edf626a7e639e168dba9e7d74 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 14:40:06 +0200 Subject: output/httpd: include sys/types.h On Mac OS X, the httpd plugin cannot be compiled, because OS X's system headers do nto include sys/types.h, although they use u_int32_t. --- NEWS | 2 ++ src/output/httpd_output_plugin.c | 1 + 2 files changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 8c3d17862..8872c3c1f 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.15.1 (2009/??/??) +* output: + - httpd: include sys/types.h (fixes Mac OS X) * commands: - don't resume playback when stopping during pause * database: fixed NULL pointer dereference after charset change diff --git a/src/output/httpd_output_plugin.c b/src/output/httpd_output_plugin.c index 02fa1cf17..edfc1063d 100644 --- a/src/output/httpd_output_plugin.c +++ b/src/output/httpd_output_plugin.c @@ -28,6 +28,7 @@ #include +#include #include #include #include -- cgit v1.2.3 From c0c5119788c24832ee548df7f3f72742c878e906 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 22:09:30 +0200 Subject: decoder/flac: fix assertion failure in tag_free() call Initialize flac_data.tag right after flac_data_init(). This way, the "goto fail" won't jump to the point where tag_free(NULL) can be called. --- NEWS | 2 ++ src/decoder/flac_plugin.c | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 8872c3c1f..d7c6dd630 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.15.1 (2009/??/??) +* dcecoders: + - flac: fix assertion failure in tag_free() call * output: - httpd: include sys/types.h (fixes Mac OS X) * commands: diff --git a/src/decoder/flac_plugin.c b/src/decoder/flac_plugin.c index 965a8b46b..1d7a9f868 100644 --- a/src/decoder/flac_plugin.c +++ b/src/decoder/flac_plugin.c @@ -394,6 +394,7 @@ flac_decode_internal(struct decoder * decoder, if (!(flac_dec = flac_new())) return; flac_data_init(&data, decoder, input_stream); + data.tag = tag_new(); #if defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT > 7 if(!FLAC__stream_decoder_set_metadata_respond(flac_dec, FLAC__METADATA_TYPE_VORBIS_COMMENT)) @@ -422,8 +423,6 @@ flac_decode_internal(struct decoder * decoder, } } - data.tag = tag_new(); - if (!flac_process_metadata(flac_dec)) { err = "problem reading metadata"; goto fail; -- cgit v1.2.3 From 47cf647ef6ae1e90c6dc92de5d127abdc8db0321 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 22:15:36 +0200 Subject: doc: documented the "command" setting of the "pipe" output plugin --- doc/user.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/user.xml b/doc/user.xml index 2f7b56448..8db2ce905 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -708,6 +708,28 @@ cd mpd-version The pipe plugin starts a program and writes raw PCM data into its standard input. + + + + + + Setting + Description + + + + + + command + CMD + + + This command is invoked with the shell. + + + + +
-- cgit v1.2.3 From 0e383fbec2dbc8e8249b2ea8b9fe18cab7cdbc4d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 22:17:27 +0200 Subject: doc: documented the "pulse" output plugin settings --- doc/user.xml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/doc/user.xml b/doc/user.xml index 8db2ce905..3c6e3ac21 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -739,6 +739,40 @@ cd mpd-version The pulse plugin connects to a PulseAudio server. + + + + + + Setting + Description + + + + + + server + HOSTNAME + + + Sets the host name of the PulseAudio server. By + default, MPD connects to the local PulseAudio + server. + + + + + sink + NAME + + + Specifies the name of the PulseAudio sink MPD should + play on. + + + + +
-- cgit v1.2.3 From ce517ad5d81f53a67293a5ea504f194a2c558d7e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 22:25:28 +0200 Subject: doc: documented the "shout" output plugin settings --- doc/user.xml | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/doc/user.xml b/doc/user.xml index 3c6e3ac21..6c3f5edeb 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -782,6 +782,129 @@ cd mpd-version The shout plugin connects to a ShoutCast or IceCast server. It forwards tags to this server. + + + You must set a format. + + + + + + + Setting + Description + + + + + + host + HOSTNAME + + + Sets the host name of the Shoutcast/Icecast server. + + + + + port + PORTNUMBER + + + Connect to this port number on the specified host. + + + + + timeout + SECONDS + + + Set the timeout for the shout connection in seconds. + Defaults to 2 seconds. + + + + + mount + URI + + + Mounts the MPD stream in the specified URI. + + + + + user + USERNAME + + + Sets the user name for submitting the stream to the + server. Default is "source". + + + + + password + PWD + + + Sets the password for submitting the stream to the + server. + + + + + name + NAME + + + Sets the name of the stream. + + + + + genre + GENRE + + + Sets the genre of the stream (optional). + + + + + description + DESCRIPTION + + + Sets a short description of the stream (optional). + + + + + public + yes|no + + + Specifies whether the stream should be "public". + Default is "no". + + + + + encoder + PLUGIN + + + Sets the name of the encoder plugin. Default is + "vorbis". "vorbis" and "lame" are valid encoder + plugins (provided that you enabled them at compile + time). + + + + +
-- cgit v1.2.3 From 58dd6eee5d95e0d836b953c9e587651c2cb53008 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 14 Jul 2009 14:23:44 +0200 Subject: output/httpd: removed duplicate sys/types.h include The first patch by Patrick didn't work, because his "#ifdef HAVE_OSX" line would have required config.h. --- src/output/httpd_output_plugin.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/output/httpd_output_plugin.c b/src/output/httpd_output_plugin.c index edfc1063d..9fdf46456 100644 --- a/src/output/httpd_output_plugin.c +++ b/src/output/httpd_output_plugin.c @@ -34,10 +34,6 @@ #include #include -#ifdef HAVE_OSX -#include -#endif - #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "httpd_output" -- cgit v1.2.3 From 0c1c753e23c06c0fb8cf7287138fc2776cfe538f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 14 Jul 2009 14:23:49 +0200 Subject: configure.ac: fail when ffmpeg is enabled, but not found --- configure.ac | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index ebf08cb8f..aca0743c7 100644 --- a/configure.ac +++ b/configure.ac @@ -397,9 +397,9 @@ AC_ARG_ENABLE(audiofile, enable_audiofile=yes) AC_ARG_ENABLE(ffmpeg, - AS_HELP_STRING([--disable-ffmpeg], - [disable FFMPEG support (default: enable)]),, - enable_ffmpeg=yes) + AS_HELP_STRING([--enable-ffmpeg], + [enable FFMPEG support]),, + enable_ffmpeg=auto) AC_ARG_ENABLE(flac, AS_HELP_STRING([--disable-flac], @@ -914,10 +914,8 @@ fi AM_CONDITIONAL(HAVE_AUDIOFILE, test x$enable_audiofile = xyes) -if test x$enable_ffmpeg = xyes; then - PKG_CHECK_MODULES(FFMPEG, [libavformat libavcodec libavutil],, - enable_ffmpeg=no) -fi +MPD_AUTO_PKG(ffmpeg, FFMPEG, [libavformat libavcodec libavutil], + [ffmpeg decoder library], [libavformat+libavcodec+libavutil not found]) if test x$enable_ffmpeg = xyes; then old_LIBS=$LIBS -- cgit v1.2.3 From 966a886ef5784e0525b91c3eec1b9b32e2b1c646 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 14 Jul 2009 14:24:02 +0200 Subject: NEWS: fixed typo --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d7c6dd630..ce78c462c 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ ver 0.15.1 (2009/??/??) -* dcecoders: +* decoders: - flac: fix assertion failure in tag_free() call * output: - httpd: include sys/types.h (fixes Mac OS X) -- cgit v1.2.3 From f0157f6fa1bffd3510b5df63bb073d25e0f11307 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 22:50:07 +0200 Subject: Makefile.am: disable test/run_encoder without plugins If the encoder plugin API is disabled at compile time, don't compile test/run_encoder.c. --- Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index d02eeb12b..aadeb2508 100644 --- a/Makefile.am +++ b/Makefile.am @@ -599,7 +599,6 @@ noinst_PROGRAMS = \ test/run_input \ test/run_decoder \ test/read_tags \ - test/run_encoder \ test/run_output \ test/read_mixer \ test/software_volume @@ -662,6 +661,8 @@ test_read_tags_SOURCES = test/read_tags.c \ $(TAG_SRC) \ $(DECODER_SRC) +if ENABLE_ENCODER +noinst_PROGRAMS += test/run_encoder test_run_encoder_SOURCES = test/run_encoder.c \ src/conf.c src/buffer2array.c \ src/utils.c \ @@ -671,6 +672,7 @@ test_run_encoder_SOURCES = test/run_encoder.c \ test_run_encoder_LDADD = $(MPD_LIBS) \ $(ENCODER_LIBS) \ $(GLIB_LIBS) +endif test_software_volume_SOURCES = test/software_volume.c \ src/audio_parser.c \ -- cgit v1.2.3 From d7bad6ae020ffabfd5d2ae9d2ce723e67e999077 Mon Sep 17 00:00:00 2001 From: Avuton Olrich Date: Wed, 15 Jul 2009 13:36:41 -0700 Subject: mpd version 0.15.1 --- NEWS | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index ce78c462c..bf9401d6c 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -ver 0.15.1 (2009/??/??) +ver 0.15.1 (2009/07/15) * decoders: - flac: fix assertion failure in tag_free() call * output: diff --git a/configure.ac b/configure.ac index aca0743c7..3f631d238 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.60) -AC_INIT(mpd, 0.15.1~git, musicpd-dev-team@lists.sourceforge.net) +AC_INIT(mpd, 0.15.1, musicpd-dev-team@lists.sourceforge.net) AC_CONFIG_SRCDIR([src/main.c]) AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2]) AM_CONFIG_HEADER(config.h) -- cgit v1.2.3