diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | src/db/plugins/upnp/Directory.cxx | 1 | ||||
-rw-r--r-- | src/decoder/plugins/FfmpegDecoderPlugin.cxx | 3 | ||||
-rw-r--r-- | src/input/AsyncInputStream.cxx | 5 | ||||
-rw-r--r-- | src/input/Domain.cxx | 24 | ||||
-rw-r--r-- | src/input/Domain.hxx | 27 | ||||
-rw-r--r-- | src/input/Open.cxx | 3 | ||||
-rw-r--r-- | src/lib/upnp/ContentDirectoryService.cxx | 2 |
9 files changed, 68 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am index dac3e1772..72b6a0ca4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1112,6 +1112,7 @@ endif # libinput_a_SOURCES = \ + src/input/Domain.cxx src/input/Domain.hxx \ src/input/Init.cxx src/input/Init.hxx \ src/input/Registry.cxx src/input/Registry.hxx \ src/input/Open.cxx \ @@ -4,6 +4,13 @@ ver 0.20 (not yet released) * output - pulse: set channel map to WAVE-EX +ver 0.19.3 (not yet released) +* database + - upnp: fix breakage due to malformed URIs +* decoder + - audiofile: fix crash while playing streams + - ffmpeg: support opus + ver 0.19.2 (2014/11/02) * input - curl: fix redirected streams diff --git a/src/db/plugins/upnp/Directory.cxx b/src/db/plugins/upnp/Directory.cxx index 683022a10..e94a1a997 100644 --- a/src/db/plugins/upnp/Directory.cxx +++ b/src/db/plugins/upnp/Directory.cxx @@ -129,6 +129,7 @@ public: state(NONE), tag_type(TAG_NUM_OF_ITEM_TYPES) { + m_tobj.clear(); } protected: diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 2e72269b2..466caa3d1 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -657,7 +657,7 @@ static const char *const ffmpeg_suffixes[] = { "mj2", "mjpeg", "mjpg", "mka", "mkv", "mlp", "mm", "mmf", "mov", "mp+", "mp1", "mp2", "mp3", "mp4", "mpc", "mpeg", "mpg", "mpga", "mpp", "mpu", "mve", "mvi", "mxf", "nc", "nsv", "nut", "nuv", "oga", "ogm", "ogv", - "ogx", "oma", "ogg", "omg", "psp", "pva", "qcp", "qt", "r3d", "ra", + "ogx", "oma", "ogg", "omg", "opus", "psp", "pva", "qcp", "qt", "r3d", "ra", "ram", "rl2", "rm", "rmvb", "roq", "rpl", "rvc", "shn", "smk", "snd", "sol", "son", "spx", "str", "swf", "tgi", "tgq", "tgv", "thp", "ts", "tsp", "tta", "xa", "xvid", "uv", "uv2", "vb", "vid", "vob", "voc", @@ -691,6 +691,7 @@ static const char *const ffmpeg_mime_types[] = { "audio/mpeg", "audio/musepack", "audio/ogg", + "audio/opus", "audio/qcelp", "audio/vorbis", "audio/vorbis+ogg", diff --git a/src/input/AsyncInputStream.cxx b/src/input/AsyncInputStream.cxx index d34ba2ff3..c8e3fcfd5 100644 --- a/src/input/AsyncInputStream.cxx +++ b/src/input/AsyncInputStream.cxx @@ -19,6 +19,7 @@ #include "config.h" #include "AsyncInputStream.hxx" +#include "Domain.hxx" #include "tag/Tag.hxx" #include "event/Call.hxx" #include "thread/Cond.hxx" @@ -113,8 +114,10 @@ AsyncInputStream::Seek(offset_type new_offset, Error &error) /* no-op */ return true; - if (!IsSeekable()) + if (!IsSeekable()) { + error.Set(input_domain, "Not seekable"); return false; + } /* check if we can fast-forward the buffer */ diff --git a/src/input/Domain.cxx b/src/input/Domain.cxx new file mode 100644 index 000000000..26ae298a4 --- /dev/null +++ b/src/input/Domain.cxx @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2003-2014 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" +#include "Domain.hxx" +#include "util/Domain.hxx" + +const Domain input_domain("input"); diff --git a/src/input/Domain.hxx b/src/input/Domain.hxx new file mode 100644 index 000000000..16fa5e0f1 --- /dev/null +++ b/src/input/Domain.hxx @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2003-2014 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_INPUT_DOMAIN_HXX +#define MPD_INPUT_DOMAIN_HXX + +class Domain; + +extern const Domain input_domain; + +#endif diff --git a/src/input/Open.cxx b/src/input/Open.cxx index 18572d6b2..66ccdce74 100644 --- a/src/input/Open.cxx +++ b/src/input/Open.cxx @@ -22,14 +22,13 @@ #include "Registry.hxx" #include "InputPlugin.hxx" #include "LocalOpen.hxx" +#include "Domain.hxx" #include "plugins/RewindInputPlugin.hxx" #include "fs/Traits.hxx" #include "fs/Path.hxx" #include "util/Error.hxx" #include "util/Domain.hxx" -static constexpr Domain input_domain("input"); - InputStream * InputStream::Open(const char *url, Mutex &mutex, Cond &cond, diff --git a/src/lib/upnp/ContentDirectoryService.cxx b/src/lib/upnp/ContentDirectoryService.cxx index ee7c0d7f5..0e5d2d955 100644 --- a/src/lib/upnp/ContentDirectoryService.cxx +++ b/src/lib/upnp/ContentDirectoryService.cxx @@ -29,7 +29,7 @@ ContentDirectoryService::ContentDirectoryService(const UPnPDevice &device, const UPnPService &service) - :m_actionURL(uri_apply_base(device.URLBase, service.controlURL)), + :m_actionURL(uri_apply_base(service.controlURL, device.URLBase)), m_serviceType(service.serviceType), m_deviceId(device.UDN), m_friendlyName(device.friendlyName), |