Merge branch 'v0.16.x'

Conflicts:
	NEWS
	configure.ac
This commit is contained in:
Max Kellermann 2011-12-13 21:57:44 +01:00
commit aa4f45b9a5
9 changed files with 36 additions and 16 deletions

1
.gitignore vendored
View File

@ -34,6 +34,7 @@ missing
mkinstalldirs mkinstalldirs
mpd mpd
mpd.exe mpd.exe
mpd.service
stamp-h1 stamp-h1
tags tags
*~ *~

10
NEWS
View File

@ -29,7 +29,13 @@ ver 0.17 (2011/??/??)
* support floating point samples * 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: * decoder:
- fix assertion failure when resuming streams - fix assertion failure when resuming streams
- ffmpeg: work around bogus channel count - ffmpeg: work around bogus channel count
@ -44,7 +50,7 @@ ver 0.16.6 (2010/??/??)
* WIN32: autodetect filesystem encoding * WIN32: autodetect filesystem encoding
ver 0.16.5 (2010/10/09) ver 0.16.5 (2011/10/09)
* configure.ac * configure.ac
- disable assertions in the non-debugging build - disable assertions in the non-debugging build
- show solaris plugin result correctly - show solaris plugin result correctly

View File

@ -440,6 +440,11 @@ dnl ---------------------------------------------------------------------------
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.12 gthread-2.0],, PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.12 gthread-2.0],,
[AC_MSG_ERROR([GLib 2.12 is required])]) [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 ---------------------------------------------------------------------------
dnl Protocol Options dnl Protocol Options
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
@ -454,7 +459,11 @@ if test x$enable_ipv6 = xyes; then
AC_EGREP_CPP([AP_maGiC_VALUE], AC_EGREP_CPP([AP_maGiC_VALUE],
[ [
#include <sys/types.h> #include <sys/types.h>
#ifdef WIN32
#include <winsock2.h>
#else
#include <sys/socket.h> #include <sys/socket.h>
#endif
#include <netdb.h> #include <netdb.h>
#ifdef PF_INET6 #ifdef PF_INET6
#ifdef AF_INET6 #ifdef AF_INET6

View File

@ -194,8 +194,6 @@ parse_cmdline(int argc, char **argv, struct options *options,
if(g_file_test(system_path, if(g_file_test(system_path,
G_FILE_TEST_IS_REGULAR)) { G_FILE_TEST_IS_REGULAR)) {
ret = config_read_file(system_path,error_r); ret = config_read_file(system_path,error_r);
g_free(system_path);
g_free(&system_config_dirs);
break; break;
} }
++i;; ++i;;

View File

@ -94,6 +94,12 @@ mp4_read(void *user_data, void *buffer, uint32_t length)
{ {
struct mp4ff_input_stream *mis = user_data; 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); return decoder_read(mis->decoder, mis->input_stream, buffer, length);
} }

View File

@ -61,6 +61,10 @@ openal_output_quark(void)
static ALenum static ALenum
openal_audio_format(struct audio_format *audio_format) 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) { switch (audio_format->format) {
case SAMPLE_FORMAT_S16: case SAMPLE_FORMAT_S16:
if (audio_format->channels == 2) if (audio_format->channels == 2)
@ -72,16 +76,6 @@ openal_audio_format(struct audio_format *audio_format)
audio_format->channels = 1; audio_format->channels = 1;
return openal_audio_format(audio_format); 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: default:
/* fall back to 16 bit */ /* fall back to 16 bit */
audio_format->format = SAMPLE_FORMAT_S16; audio_format->format = SAMPLE_FORMAT_S16;

View File

@ -81,7 +81,7 @@ timer_delay(const struct timer *timer)
if (delay > G_MAXINT) if (delay > G_MAXINT)
delay = G_MAXINT; delay = G_MAXINT;
return delay / 1000; return delay;
} }
void timer_sync(struct timer *timer) void timer_sync(struct timer *timer)

View File

@ -616,6 +616,8 @@ update_regular_file(struct directory *directory,
} }
if (song == NULL) { if (song == NULL) {
g_debug("reading %s/%s",
directory_get_path(directory), name);
song = song_file_load(name, directory); song = song_file_load(name, directory);
if (song == NULL) { if (song == NULL) {
g_debug("ignoring unrecognized file %s/%s", g_debug("ignoring unrecognized file %s/%s",

View File

@ -34,7 +34,11 @@
#include <pwd.h> #include <pwd.h>
#endif #endif
#ifdef HAVE_IPV6 #if HAVE_IPV6 && WIN32
#include <winsock2.h>
#endif
#if HAVE_IPV6 && ! WIN32
#include <sys/socket.h> #include <sys/socket.h>
#endif #endif