Max Kellermann
3055c1266d
output/osx: don't use variable-length arrays
2019-06-08 11:51:15 +02:00
Max Kellermann
931c3a1de0
output/osx: convert int
to size_t
2019-06-08 11:49:15 +02:00
Yue Wang
a7b30fcb9e
add missing header.
...
bad_alloc depends on <new>
2019-06-07 21:59:31 -07:00
Max Kellermann
e153407b51
tag/Id3Scan: eliminate a string copy in UFID importer
2019-06-06 13:42:14 +02:00
Max Kellermann
5675431eaf
tag/ApeTag: use IterableSplitString
...
Eliminates yet another string copy.
2019-06-06 13:32:39 +02:00
Max Kellermann
8a136b79e5
decoder/opus: pass StringView to ScanOneOpusTag()
2019-06-06 13:27:17 +02:00
Max Kellermann
dffa25c55e
decoder/opus: use StringView::Split()
2019-06-06 13:26:35 +02:00
Max Kellermann
72a0aeb265
util/NumberParser: add overload with StringView
2019-06-06 13:26:30 +02:00
Max Kellermann
e556cd20f7
util/NumberParser: add noexcept
2019-06-06 13:26:30 +02:00
Max Kellermann
80ec6f976c
tag/Table: add StringView overloads
2019-06-06 13:23:16 +02:00
Max Kellermann
589639f80f
tag/ParseName: add StringView overloads
2019-06-06 13:21:33 +02:00
Max Kellermann
548aa00111
tag/Handler: pass StringView to OnTag() and OnPair()
...
Eliminates a number of allocations, because callers don't need to copy
the strings to a newly allocated buffer only to null-terminate them.
And most callers don't need to have a null-terminated string.
2019-06-06 13:00:53 +02:00
Max Kellermann
76eb550011
util/StringView: add method Split()
2019-06-06 12:54:42 +02:00
Max Kellermann
c1719a5200
lib/xiph/FlacStreamMetadata: add missing include
2019-06-06 12:54:42 +02:00
Max Kellermann
b07bbb928a
decoder/dsdiff: allow longer tag values
2019-06-06 12:44:25 +02:00
Max Kellermann
3b5a128097
decoder/dsdiff: pass DecoderClient* to dsdiff_handle_native_tag()
2019-06-06 12:43:20 +02:00
Max Kellermann
fad60f977e
meson.build: enable -Wvla
2019-06-06 12:40:32 +02:00
Max Kellermann
71f9332bd3
test/TestCircularBuffer: add constexpr
to fix -Wvla
2019-06-06 12:40:32 +02:00
Max Kellermann
3eae3a2826
queue/Queue: allocate MoveRange() buffer on the heap
...
No variable-length arrays on the stack.
2019-06-06 12:39:42 +02:00
Max Kellermann
3c1f7c77f0
queue/Queue: remove outdated API documentation
2019-06-06 12:38:21 +02:00
Max Kellermann
3e40b1d9d2
decoder/dsdiff: use a fixed-size buffer for the tag value
...
Variable-length arrays are a C-only feature.
2019-06-06 12:33:14 +02:00
Max Kellermann
adffbba2a5
release v0.21.10
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlz4JuAQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEq9nD/40/ryDwvgsQnKhYcpPhlV8bf8iTOUSPsrW
2P5m48sfGb3LBHV+U/sHLWH8svODSxloyvyxYSUOEJyqOu42lj0BnxPBDvRwTjcq
PxJPHHKVuExys04k4SOKIEci742WEHTVRzO8EeOvIdgkjXCak7tpQk/wmhrGfHF1
+rLfSu6jq90/tELsOyTLGmk3KapY637Qf2Q99Z6VZnAXhIRLK4O1E8oKGOjl2h8I
xvjZckVZV1FYeNrC0OYdNQX0A+JhkFwLFAeWP3ksBmKfs+Csf8X0JTCofnYph46t
5SmhTd9I6NEVnNoZyOplV7QVawGPK1p69ORB052d/9QUhMqcPmwnHrhcrWtrYl5I
6QtUwf8nJz/TnUc7/a3BBIPHLB/PD0fGsmdDoElikkPz76sGYNor+UZIdQke1HQL
m3zmNDxjU++sRfrSjAPOK2mxD0Km8tYIcrQBMZcyxoc7GCHaw1pIa2cxxs1aB5QZ
gFxYICL7LJ+g5Q19JhTiWlwfdOS7jGH7mVUjhLDA/mcxGf6ln6FkDx58GqPJV+es
UcWVbOjb3T448TVNH0Jj+FrtWK5uBmOFNTk102BbTnfDT8muedbRmRCxn0NyKkFQ
dS8/FdU7ffw2II49ZI6BfmeLucfoTwuQ1Ky297K/62NrM67/1dKKkBLAE3/aGxwh
xzIDTT3Mkg==
=SELi
-----END PGP SIGNATURE-----
Merge tag 'v0.21.10'
release v0.21.10
2019-06-05 22:38:54 +02:00
Max Kellermann
e239009295
release v0.21.10
v0.21.10
2019-06-05 22:32:32 +02:00
Max Kellermann
3fae2150f5
decoder/OpusReader: return StringView
...
Since we now don't duplicate all items, we can easily remove the 64kB
limit from OpusReader::ReadString() and instead silently ignore and
skip all strings which are longer than 4 kB.
This fixes a tag duplication bug with Opus file containing a very long
`METADATA_BLOCK_PICTURE` tag, which occurred because the Opus plugin
returned false after parsing all tags, and then the MPD core fell back
to FFmpeg which scanned the tags again.
2019-06-05 22:19:35 +02:00
cathugger
f9ca2f52c1
output/httpd: reject some well-known request paths
...
Return `404 not found` for some common well-known paths, as clients requesting them usually do that automatically and don't expect endless audio stram.
Closes #572
2019-06-05 21:53:46 +02:00
cathugger
4b81cf0c2c
output/httpd: use strncmp instead of memcmp
...
memcmp use may result in out of bounds access
2019-06-05 21:53:46 +02:00
Max Kellermann
e7acbf112c
output/httpd: fix indent
2019-06-05 21:53:43 +02:00
Max Kellermann
120e570da7
archive/Domain: remove unused library
2019-06-04 17:54:59 +02:00
Max Kellermann
0019231a37
archive/Lookup, input/Archive: remove useless log messages
2019-06-04 17:54:35 +02:00
Max Kellermann
9ae1256ae7
input/archive: include cleanup
2019-05-31 19:59:09 +02:00
Max Kellermann
e1ac377812
archive/ArchiveLookup: replace output parameters with a struct
2019-05-31 19:56:25 +02:00
Max Kellermann
7866d1a005
archive/meson.build: move ArchiveLookup.cxx to archive_glue.a
...
Fixes the Windows build.
2019-05-31 19:56:13 +02:00
Max Kellermann
3e3ee581a8
fs/Path: add constexpr
2019-05-31 19:47:50 +02:00
Max Kellermann
0e8ca44968
archive/List: disallow passing suffix==nullptr to archive_plugin_from_suffix()
2019-05-31 19:05:26 +02:00
Max Kellermann
12e75a523a
archive/ArchiveLookup: remove "suffix" output parameter
...
Let the caller do this. Our GetSuffix() function was broken anyway.
2019-05-31 19:01:22 +02:00
Max Kellermann
508ba22789
archive/ArchiveLookup: use class FileInfo
2019-05-31 18:55:27 +02:00
Max Kellermann
fa13648f2c
archive/ArchiveLookup: throw on error
2019-05-31 18:52:11 +02:00
Max Kellermann
2f83ed90d0
archive/iso9660: implement seeking
2019-05-31 18:40:24 +02:00
Max Kellermann
5d74b5cee1
input/cache: first draft of the file cache
2019-05-31 17:49:52 +02:00
Max Kellermann
e8a0ce643a
tag/Generic: fail if InputStream is not seekable
2019-05-31 17:49:37 +02:00
Max Kellermann
9ed4fac341
input/InputStream: check offset in Rewind()
...
Don't call Seek() if the stream is already at the beginning. This
avoids unnecessary exceptions if seeking is not implemented by an
Inputstream implementation.
2019-05-31 17:47:16 +02:00
Max Kellermann
81b2b4a85c
Merge branch 'v0.21.x'
2019-05-31 17:27:20 +02:00
Max Kellermann
304d45b551
Revert "player/Thread: remove unnecessary "pipe" check"
...
This reverts commit ff3e2c05142c94efadee00812ec348c15f1be1ba. The
check was necessary, after all, because this is what checked whether
the decoder had finished the current or the next song.
> The "queued" flag can only possibly be set if the decoder is still
> decoding the current song or if the decoder is stopped.
That was wrong because ProcessCommand() sets `queued=true` and also
starts the decoder (if it was idle).
> This is also what the following assert() checks.
That was also wrong, because the assert() has two conditions.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/566
2019-05-31 17:23:12 +02:00
Max Kellermann
0f488dcecf
doc/protocol.rst: binary responses do have a newline after all
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/568
2019-05-31 16:47:41 +02:00
Max Kellermann
17039aec70
doc/user.rst: more heading corrections
...
According to http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#sections
2019-05-31 16:30:06 +02:00
Max Kellermann
fb6cb07912
doc/developer.rst: remove outdated section about the clang static analyzer
2019-05-31 16:27:43 +02:00
Max Kellermann
e9e0e02db3
doc/user.rst: use ".. note:"
2019-05-31 16:26:52 +02:00
Max Kellermann
03507037e8
increment version number to 0.21.10
2019-05-31 16:16:56 +02:00
Max Kellermann
7739b3960c
mixer/Listener: add noexcept
2019-05-31 14:09:47 +02:00
Max Kellermann
11ec7117ab
Partition: add noexcept
2019-05-31 14:07:33 +02:00