Commit 3f754fd3 authored by Max Kellermann's avatar Max Kellermann

Merge branch 'v0.20.x'

parents 91438b65 bc8dd572
...@@ -9,6 +9,10 @@ ver 0.21 (not yet released) ...@@ -9,6 +9,10 @@ ver 0.21 (not yet released)
* output * output
- alsa: non-blocking mode - alsa: non-blocking mode
ver 0.20.11 (not yet released)
* storage
- curl: support Content-Type application/xml
ver 0.20.10 (2017/08/24) ver 0.20.10 (2017/08/24)
* decoder * decoder
- ffmpeg: support MusicBrainz ID3v2 tags - ffmpeg: support MusicBrainz ID3v2 tags
......
...@@ -444,7 +444,9 @@ ...@@ -444,7 +444,9 @@
<listitem> <listitem>
<para> <para>
<varname>volume</varname>: <varname>volume</varname>:
<returnvalue>0-100</returnvalue> <returnvalue>0-100</returnvalue> or
<returnvalue>-1</returnvalue> if the volume cannot
be determined
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
......
...@@ -210,6 +210,22 @@ ParseU64(const char *s, size_t length) ...@@ -210,6 +210,22 @@ ParseU64(const char *s, size_t length)
return ParseU64(std::string(s, length).c_str()); return ParseU64(std::string(s, length).c_str());
} }
gcc_pure
static bool
IsXmlContentType(const char *content_type) noexcept
{
return StringStartsWith(content_type, "text/xml") ||
StringStartsWith(content_type, "application/xml");
}
gcc_pure
static bool
IsXmlContentType(const std::multimap<std::string, std::string> &headers) noexcept
{
auto i = headers.find("content-type");
return i != headers.end() && IsXmlContentType(i->second.c_str());
}
/** /**
* A WebDAV PROPFIND request. Each "response" element will be passed * A WebDAV PROPFIND request. Each "response" element will be passed
* to OnDavResponse() (to be implemented by a derived class). * to OnDavResponse() (to be implemented by a derived class).
...@@ -271,9 +287,7 @@ private: ...@@ -271,9 +287,7 @@ private:
throw FormatRuntimeError("Status %d from WebDAV server; expected \"207 Multi-Status\"", throw FormatRuntimeError("Status %d from WebDAV server; expected \"207 Multi-Status\"",
status); status);
auto i = headers.find("content-type"); if (!IsXmlContentType(headers))
if (i == headers.end() ||
strncmp(i->second.c_str(), "text/xml", 8) != 0)
throw std::runtime_error("Unexpected Content-Type from WebDAV server"); throw std::runtime_error("Unexpected Content-Type from WebDAV server");
} }
......
...@@ -51,6 +51,11 @@ class CrossGccToolchain: ...@@ -51,6 +51,11 @@ class CrossGccToolchain:
self.strip = os.path.join(toolchain_bin, arch + '-strip') self.strip = os.path.join(toolchain_bin, arch + '-strip')
common_flags = '' common_flags = ''
if not x64:
# enable SSE support which is required for LAME
common_flags += ' -march=pentium3'
self.cflags = '-O2 -g ' + common_flags self.cflags = '-O2 -g ' + common_flags
self.cxxflags = '-O2 -g ' + common_flags self.cxxflags = '-O2 -g ' + common_flags
self.cppflags = '-isystem ' + os.path.join(install_prefix, 'include') self.cppflags = '-isystem ' + os.path.join(install_prefix, 'include')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment