aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-12-13 21:57:44 +0100
committerMax Kellermann <max@duempel.org>2011-12-13 21:57:44 +0100
commitaa4f45b9a56779355f15f867dce9ab0759cb5f7a (patch)
treee0793dfab38b5540a02c8a8e3d4f2612fe2c3faa
parent006b8fa3f07e948cbd277e91546dd815769d7a5e (diff)
parent96ad5b84446be0bf603895adaf0ec2e97bee11aa (diff)
Merge branch 'v0.16.x'
Conflicts: NEWS configure.ac
-rw-r--r--.gitignore1
-rw-r--r--NEWS10
-rw-r--r--configure.ac9
-rw-r--r--src/cmdline.c2
-rw-r--r--src/decoder/mp4ff_decoder_plugin.c6
-rw-r--r--src/output/openal_output_plugin.c14
-rw-r--r--src/timer.c2
-rw-r--r--src/update_walk.c2
-rw-r--r--src/utils.c6
9 files changed, 36 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index 263203c0..f848f467 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,7 @@ missing
mkinstalldirs
mpd
mpd.exe
+mpd.service
stamp-h1
tags
*~
diff --git a/NEWS b/NEWS
index 43539d2e..6cb3018f 100644
--- a/NEWS
+++ b/NEWS
@@ -29,7 +29,13 @@ ver 0.17 (2011/??/??)
* support floating point samples
-ver 0.16.6 (2010/??/??)
+ver 0.16.7 (2011/??/??)
+* output:
+ - httpd: fix excessive buffering
+ - openal: force 16 bit playback, as 8 bit doesn't work
+
+
+ver 0.16.6 (2011/12/01)
* decoder:
- fix assertion failure when resuming streams
- ffmpeg: work around bogus channel count
@@ -44,7 +50,7 @@ ver 0.16.6 (2010/??/??)
* WIN32: autodetect filesystem encoding
-ver 0.16.5 (2010/10/09)
+ver 0.16.5 (2011/10/09)
* configure.ac
- disable assertions in the non-debugging build
- show solaris plugin result correctly
diff --git a/configure.ac b/configure.ac
index 7c3fb3fc..bcf54033 100644
--- a/configure.ac
+++ b/configure.ac
@@ -440,6 +440,11 @@ dnl ---------------------------------------------------------------------------
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.12 gthread-2.0],,
[AC_MSG_ERROR([GLib 2.12 is required])])
+if test x$GCC = xyes; then
+ # suppress warnings in the GLib headers
+ GLIB_CFLAGS=`echo $GLIB_CFLAGS |sed -e 's,-I/,-isystem /,g'`
+fi
+
dnl ---------------------------------------------------------------------------
dnl Protocol Options
dnl ---------------------------------------------------------------------------
@@ -454,7 +459,11 @@ if test x$enable_ipv6 = xyes; then
AC_EGREP_CPP([AP_maGiC_VALUE],
[
#include <sys/types.h>
+#ifdef WIN32
+#include <winsock2.h>
+#else
#include <sys/socket.h>
+#endif
#include <netdb.h>
#ifdef PF_INET6
#ifdef AF_INET6
diff --git a/src/cmdline.c b/src/cmdline.c
index 45e361e7..8ab31773 100644
--- a/src/cmdline.c
+++ b/src/cmdline.c
@@ -194,8 +194,6 @@ parse_cmdline(int argc, char **argv, struct options *options,
if(g_file_test(system_path,
G_FILE_TEST_IS_REGULAR)) {
ret = config_read_file(system_path,error_r);
- g_free(system_path);
- g_free(&system_config_dirs);
break;
}
++i;;
diff --git a/src/decoder/mp4ff_decoder_plugin.c b/src/decoder/mp4ff_decoder_plugin.c
index 6475211a..89f65670 100644
--- a/src/decoder/mp4ff_decoder_plugin.c
+++ b/src/decoder/mp4ff_decoder_plugin.c
@@ -94,6 +94,12 @@ mp4_read(void *user_data, void *buffer, uint32_t length)
{
struct mp4ff_input_stream *mis = user_data;
+ if (length == 0)
+ /* libmp4ff is known to attempt to read 0 bytes - make
+ this a special case, because the input_stream API
+ would not allow this */
+ return 0;
+
return decoder_read(mis->decoder, mis->input_stream, buffer, length);
}
diff --git a/src/output/openal_output_plugin.c b/src/output/openal_output_plugin.c
index 622cf559..0b98dae8 100644
--- a/src/output/openal_output_plugin.c
+++ b/src/output/openal_output_plugin.c
@@ -61,6 +61,10 @@ openal_output_quark(void)
static ALenum
openal_audio_format(struct audio_format *audio_format)
{
+ /* note: cannot map SAMPLE_FORMAT_S8 to AL_FORMAT_STEREO8 or
+ AL_FORMAT_MONO8 since OpenAL expects unsigned 8 bit
+ samples, while MPD uses signed samples */
+
switch (audio_format->format) {
case SAMPLE_FORMAT_S16:
if (audio_format->channels == 2)
@@ -72,16 +76,6 @@ openal_audio_format(struct audio_format *audio_format)
audio_format->channels = 1;
return openal_audio_format(audio_format);
- case SAMPLE_FORMAT_S8:
- if (audio_format->channels == 2)
- return AL_FORMAT_STEREO8;
- if (audio_format->channels == 1)
- return AL_FORMAT_MONO8;
-
- /* fall back to mono */
- audio_format->channels = 1;
- return openal_audio_format(audio_format);
-
default:
/* fall back to 16 bit */
audio_format->format = SAMPLE_FORMAT_S16;
diff --git a/src/timer.c b/src/timer.c
index bbc7a4ab..691ab76b 100644
--- a/src/timer.c
+++ b/src/timer.c
@@ -81,7 +81,7 @@ timer_delay(const struct timer *timer)
if (delay > G_MAXINT)
delay = G_MAXINT;
- return delay / 1000;
+ return delay;
}
void timer_sync(struct timer *timer)
diff --git a/src/update_walk.c b/src/update_walk.c
index 1fabc868..0feedd0a 100644
--- a/src/update_walk.c
+++ b/src/update_walk.c
@@ -616,6 +616,8 @@ update_regular_file(struct directory *directory,
}
if (song == NULL) {
+ g_debug("reading %s/%s",
+ directory_get_path(directory), name);
song = song_file_load(name, directory);
if (song == NULL) {
g_debug("ignoring unrecognized file %s/%s",
diff --git a/src/utils.c b/src/utils.c
index d3b21d36..a2de3212 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -34,7 +34,11 @@
#include <pwd.h>
#endif
-#ifdef HAVE_IPV6
+#if HAVE_IPV6 && WIN32
+#include <winsock2.h>
+#endif
+
+#if HAVE_IPV6 && ! WIN32
#include <sys/socket.h>
#endif