include $(TOPDIR)/rules.mk
PKG_NAME:=mpd
-PKG_VERSION:=0.17.6
-PKG_RELEASE:=4
+PKG_VERSION:=0.18.11
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.17/
-PKG_MD5SUM:=0a42ed81ff298c12e22c16be31097e4c
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.18/
+PKG_MD5SUM:=be23120f342250e8352f6499cb960fd2
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILE:=COPYING
+
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
CATEGORY:=Sound
TITLE:=Music Player Daemon
URL:=http://www.musicpd.org/
- DEPENDS:= +glib2 +libcurl +libpthread $(ICONV_DEPENDS) \
+ DEPENDS:= +glib2 +libcurl +libpthread +libmpdclient $(ICONV_DEPENDS) \
+libflac +BUILD_PATENTED:libmad +libvorbisidec
endef
--disable-fluidsynth \
--disable-gme \
--enable-inotify \
+ --disable-eventfd \
--disable-iso9660 \
--disable-jack \
--disable-lame-encoder \
$(if $(CONFIG_BUILD_PATENTED),MAD_CFLAGS="$(TARGET_CFLAGS)") \
$(if $(CONFIG_BUILD_PATENTED),MAD_LIBS="$(TARGET_LDFLAGS) -lmad") \
-TARGET_CFLAGS += -std=gnu99
TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib $(if $(ICONV_FULL),-liconv)
-# use gcc instead of g++ to avoid unnecessary linking against libstdc++
-TARGET_CXX:=$(TARGET_CC)
-
ifeq ($(BUILD_VARIANT),full)
CONFIGURE_ARGS += \
#!/bin/sh /etc/rc.common
-# Copyright (C) 2007-2011 OpenWrt.org
+# Copyright (C) 2007-2014 OpenWrt.org
START=93
-start() {
- #create mpd directories
- pld=`grep ^playlist_directory /etc/mpd.conf | cut -d "\"" -f 2 | sed "s/~/\/root/g"`
- if [ ! -d $pld ]; then
- mkdir -m 0755 -p $pld
- fi
+USE_PROCD=1
- # Set the initial volume to something manageable
- [ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 40
+PROG=/usr/bin/mpd
+CONFIGFILE=/etc/mpd.conf
+NICEPRIO=-10
- if [ -x /bin/nice ]; then
- # This has real-time constraints, so let's at least tell the OS
- # that this should have higher priority to avoid skipping
- # when doing other things in the background.
- nice -n -10
- fi
+#TODO: Add uci config - nice, config
- service_start /usr/bin/mpd
-}
+start_service() {
+ #create mpd directories from config
+ local pld=`grep ^playlist_directory "$CONFIGFILE" | cut -d "\"" -f 2 | sed "s/~/\/root/g"`
+ if [ ! -d $pld ]; then
+ mkdir -m 0755 -p $pld
+ fi
-stop() {
- service_stop /usr/bin/mpd
+ procd_open_instance
+ procd_set_param command "$PROG" --no-daemon "$CONFIGFILE"
+ # Give MPD some real-time priority
+ procd_set_param nice "$NICEPRIO"
+ procd_close_instance
}
+++ /dev/null
---- a/configure
-+++ b/configure
-@@ -9821,6 +9821,7 @@ fi
- # Check whether --with-faad was given.
- if test "${with_faad+set}" = set; then :
- withval=$with_faad;
-+ faad_prefix=$with_faad;
- else
- faad_prefix=""
- fi
---- a/src/input/file_input_plugin.c
-+++ b/src/input/file_input_plugin.c
-@@ -82,10 +82,6 @@ input_file_open(const char *filename,
- return NULL;
- }
-
--#ifdef POSIX_FADV_SEQUENTIAL
-- posix_fadvise(fd, (off_t)0, st.st_size, POSIX_FADV_SEQUENTIAL);
--#endif
--
- fis = g_new(struct file_input_stream, 1);
- input_stream_init(&fis->base, &input_plugin_file, filename,
- mutex, cond);
+++ /dev/null
---- a/src/decoder/ffmpeg_decoder_plugin.c
-+++ b/src/decoder/ffmpeg_decoder_plugin.c
-@@ -370,6 +370,13 @@
- #endif
- return SAMPLE_FORMAT_S32;
-
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 94, 1)
-+ case AV_SAMPLE_FMT_FLT:
-+#else
-+ case SAMPLE_FMT_FLOAT:
-+#endif
-+ return SAMPLE_FORMAT_FLOAT;
-+
- default:
- g_warning("Unsupported libavcodec SampleFormat value: %d",
- codec_context->sample_fmt);
---- a/src/decoder/ffmpeg_decoder_plugin.c
-+++ b/src/decoder/ffmpeg_decoder_plugin.c
-@@ -387,6 +387,13 @@ ffmpeg_probe(struct decoder *decoder, st
-
- unsigned char *buffer = g_malloc(BUFFER_SIZE);
- size_t nbytes = decoder_read(decoder, is, buffer, BUFFER_SIZE);
-+
-+ if ((nbytes > 0) && (nbytes < 1024))
-+ {
-+ // Gobble some more data if header is small
-+ nbytes += decoder_read(decoder, is, buffer + nbytes, BUFFER_SIZE - nbytes);
-+ }
-+
- if (nbytes <= PADDING ||
- !input_stream_lock_seek(is, 0, SEEK_SET, NULL)) {
- g_free(buffer);
-@@ -683,6 +690,7 @@ static const char *const ffmpeg_mime_typ
+--- a/src/decoder/FfmpegDecoderPlugin.cxx
++++ b/src/decoder/FfmpegDecoderPlugin.cxx
+@@ -634,6 +634,7 @@ static const char *const ffmpeg_mime_typ
"audio/qcelp",
"audio/vorbis",
"audio/vorbis+ogg",
--- /dev/null
+--- a/src/decoder/FfmpegDecoderPlugin.cxx
++++ b/src/decoder/FfmpegDecoderPlugin.cxx
+@@ -373,6 +373,13 @@ ffmpeg_probe(Decoder *decoder, InputStre
+
+ unsigned char buffer[BUFFER_SIZE];
+ size_t nbytes = decoder_read(decoder, is, buffer, BUFFER_SIZE);
++
++ if ((nbytes > 0) && (nbytes < 1024))
++ {
++ // Gobble some more data if header is small
++ nbytes += decoder_read(decoder, is, buffer + nbytes, BUFFER_SIZE - nbytes);
++ }
++
+ if (nbytes <= PADDING || !is.LockRewind(IgnoreError()))
+ return nullptr;
+