Max Kellermann
ae23682372
system/FileDescriptor: add method FullWrite()
2020-09-07 20:13:43 +02:00
Max Kellermann
540919f256
*: use nullptr instead of NULL
2020-09-07 20:08:27 +02:00
Max Kellermann
398281cd76
io/FileDescriptor: add method FullRead()
2020-09-07 20:07:47 +02:00
Max Kellermann
88446ccde9
test/run_filter: use Filter::Flush()
2020-09-07 20:07:40 +02:00
Max Kellermann
6238cc0734
test/run_filter: pass ConstBuffer<void> to FullWrite()
2020-09-07 20:07:33 +02:00
Max Kellermann
fd4823c507
test/run_filter: fix error message
2020-09-07 20:07:29 +02:00
Max Kellermann
68bcfd8bf0
test/run_filter: check for partial writes
2020-09-07 20:07:24 +02:00
Max Kellermann
1d332746af
test/run_filter: move code to WriteOrThrow()
2020-09-07 20:07:18 +02:00
Max Kellermann
f3e133c617
test/run_filter: use class FileDescriptor
2020-09-07 20:07:13 +02:00
Max Kellermann
1678a6eb59
test/run_filter: ensure that partial frames will not get passed to the filter
2020-09-07 20:07:08 +02:00
Max Kellermann
b4dc2c07d5
test/run_filter: move the buffer into the loop
2020-09-07 20:07:03 +02:00
Max Kellermann
d7838950d8
test/run_input: use WithBufferedOutputStream()
2020-09-07 20:04:13 +02:00
Max Kellermann
2e93a83dd5
test/run_input: convert pointer to reference
2020-09-07 20:02:12 +02:00
Max Kellermann
db8b419b8c
archive/iso9660: free iso9660_stat_t as early as possible
2020-09-04 18:17:24 +02:00
Max Kellermann
990f631cbc
archive/bzip2: make variables more local
2020-09-04 18:02:22 +02:00
Max Kellermann
db46d84458
archive/bzip2: move the eof check out of the ScopeUnlock
2020-09-04 18:01:29 +02:00
Max Kellermann
9e6c4f8d80
archive/bzip2: throw on unexpected input EOF
...
Don't silently return 0 when there is no more data, because this may
crash the caller. And flush output even if input EOF has been reached.
2020-09-04 17:54:53 +02:00
Max Kellermann
41b47f95c5
archive/bzip2: simplify bz_stream initializer
2020-09-04 17:52:04 +02:00
Max Kellermann
15939fd87c
archive/bzip2: fold Open() into constructor
2020-09-04 17:51:41 +02:00
Max Kellermann
f63c343f68
archive/bzip2: reorder fields to improve packing
2020-09-04 17:51:22 +02:00
Max Kellermann
1a516e7744
archive/bzip2: add override
2020-09-04 17:51:21 +02:00
Max Kellermann
5c9d97775f
python/build/libs.py: update Boost to 1.74.0
2020-09-04 14:49:11 +02:00
Max Kellermann
64aadcd13f
python/build/libs.py: update CURL to 7.72.0
2020-09-04 14:48:40 +02:00
Max Kellermann
1f6a7d6462
archive/zzip: fix crash on corrupt ZIP file
...
Sometimes, zzip_file_read() returns 0 even though the end of the file
was not reached. This causes assertion failures in
DecoderBridge::Read().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/935
2020-09-04 14:34:54 +02:00
Max Kellermann
e44b953d9a
archive/zzip: use zzip_ssize_t to avoid integer overflows
2020-09-04 14:33:44 +02:00
Max Kellermann
6c85020630
archive/zzip: add override
2020-09-04 14:33:44 +02:00
Max Kellermann
9d910320f3
archive/zzip: pass std::shared_ptr as template parameter
...
This eliminates a tiny amount of overhead because the compiler can
choose how to pass the parameter.
2020-09-04 14:33:44 +02:00
Max Kellermann
c53074efc9
archive/zzip: add explicit
2020-09-04 14:33:11 +02:00
Max Kellermann
3b51c53eca
win32/build.py: add -D_FORTIFY_SOURCE=0
...
This fixes the Windows build. Linking failed because some packages
(e.g. libFLAC) default to enabling `_FORTIFY_SOURCE`, which is broken
in recent mingw versions
(https://github.com/msys2/MINGW-packages/issues/5803 ).
2020-09-04 14:33:11 +02:00
Max Kellermann
0aa0ffb67b
decoder/sndfile: allow partial reads at end of file
...
While libsndfile doesn't like partial reads in the middle of a file
(see commit 95ac6071b9
), it allows partial reads at the end of a file.
It doesn't pay attention to the file size when issuing a read.
Commit ecb67a1ed1
(MPD 0.18.12) was a regression: previously,
partial reads at the end of a file were possible, but switching to
decoder_read_full() made this an error condition. This way, a portion
at the end of each file was lost, leading to corruption with gapless
playback (https://github.com/MusicPlayerDaemon/MPD/issues/936 ).
This fix switches to the newly introduced function
decoder_read_much(), which does the same as the code before commit
ecb67a1ed1
.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/936
2020-09-04 13:35:00 +02:00
Max Kellermann
33f70931dd
decoder/API: add decoder_read_much()
2020-09-04 13:35:00 +02:00
Max Kellermann
8830ea319f
decoder/API: add noexcept
2020-09-04 13:35:00 +02:00
Max Kellermann
cbcdc73f9a
system/ByteOrder: add noexcept
2020-08-14 16:36:24 +02:00
Max Kellermann
4f6c54ecb3
output/osx: catch kAudioDevicePropertyHogMode errors
...
Our AudioObjectGetPropertyDataT() wrapper throws exception on error,
and calling it from OSXOutput::Disable() can cause MPD crash due to
std::terminate().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/932
2020-08-14 16:33:43 +02:00
Max Kellermann
2bdf1b2284
test/meson.build: add explicit dependency from run_output on libevent.a
...
We could exclude that feature if neither ALSA nor httpd are enabled,
but that's too complicated for this small debug program.
2020-08-14 14:40:39 +02:00
Rosen Penev
c876d6a51c
lib/icu: fix build without libc iconv support
...
Need to check for it in iconv.h. Otherwise meson prefixes a __builtin variant in the check.
2020-07-23 14:09:43 +02:00
Max Kellermann
3c745b4bc6
neighbor/smbclient: remove obsolete commented code
2020-07-20 18:13:38 +02:00
Max Kellermann
3a08a6ad72
doc/plugins.rst: document sample formats for OpenSLES
2020-07-20 15:27:41 +02:00
Max Kellermann
448b397cb8
output/sles: support floating point samples
...
According to https://developer.android.com/ndk/guides/audio/opensl/android-extensions
This feature was mentioned in https://github.com/MusicPlayerDaemon/MPD/issues/922
2020-07-20 15:23:50 +02:00
Max Kellermann
64a1386eb6
output/sles: move SampleFormat selection to switch/case block
2020-07-20 14:47:36 +02:00
Max Kellermann
77c2efe171
python/build/libs.py: update CURL to 7.71.1
2020-07-20 12:37:54 +02:00
Max Kellermann
587c0f6232
python/build/libs.py: update FFmpeg to 4.3.1
2020-07-20 12:37:16 +02:00
Max Kellermann
64e8abf203
python/build/libs.py: update libvorbis to 1.3.7
2020-07-20 12:34:16 +02:00
Max Kellermann
6c40d2a656
python/build/libs.py: update libmpdclient to 2.19
2020-07-20 12:32:19 +02:00
Max Kellermann
cf674e9273
input/Init: downgrade PluginUnconfigured to LogLevel::DEBUG
...
`LogLevel::INFO` is logged by default, but this message shall only
appear with `--verbose`.
This finally solves https://github.com/MusicPlayerDaemon/MPD/issues/430
2020-07-16 13:19:14 +02:00
Max Kellermann
9bda0379af
increment version number to 0.21.26
2020-07-16 12:53:22 +02:00
Max Kellermann
c67372f8af
release v0.21.25
2020-07-06 21:41:53 +02:00
Max Kellermann
00789de7d4
db/upnp/Object: root nodes are allowed to omit parent_id and name
...
This fixes compatibility with Plex DLNA.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/851
2020-07-06 21:36:30 +02:00
Max Kellermann
5ece9685c2
PluginUnavailable: backport class PluginUnconfigured from master
...
Stop bothering people about the Tidal/Qobuz plugins.
2020-07-06 21:08:22 +02:00
Max Kellermann
e7c5a42821
Log: add Log() and LogFormat() overloads with std::exception_ptr
...
Make LogError()/FormatError() wrappers for those. Now we can log
exceptions with a lower level.
2020-07-06 21:08:04 +02:00