Max Kellermann
e29c06b718
player/Thread: add another code comment explaining OnPlayerSync()
2020-09-16 20:12:52 +02:00
Max Kellermann
d9d511f33e
player/Thread: update function name in comment
2020-09-16 20:12:05 +02:00
Max Kellermann
c61a3b8d13
LogBackend: change the initial log_threshold to DEFAULT
...
The log levels have always been very confusing (and badly named), but
this was most confusing: if there's a log level called "default", why
is it not the default?
Closes https://github.com/MusicPlayerDaemon/MPD/issues/926
2020-09-16 17:17:34 +02:00
Max Kellermann
e10b867fe6
decoder/ffmpeg: add "hls+http://" to the list of supported protocols
2020-09-16 16:36:07 +02:00
Max Kellermann
43e230f543
decoder/ffmpeg: remove "rtsp://" from the list of supported protocols
...
FFmpeg implements RTSP as a demuxer, not as a protocol handler. Thus,
avio_open() cannot be used, and our input plugin cannot handle RTSP.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/930
2020-09-16 16:32:31 +02:00
Max Kellermann
b2ae5298a7
archive/iso9660: implement seeking
2020-09-07 21:13:28 +02:00
Max Kellermann
17dd21ac7f
archive/iso9660: fix unaligned reads
...
Oh the horror! This plugin cannot possibly ever have worked. It was
broken from the start, when it was added in commit 37796699cf
nearly
twelve (!) years ago.
The plugin would always read at sector boundaries, so it could only
ever work at multiples of 2 kB.
2020-09-07 21:08:46 +02:00
Max Kellermann
1a5e0ef7c9
test/test_archive_iso9660.sh: use an odd chunk size to trigger bug
...
This makes the unit test fail. D'oh!
2020-09-07 20:53:46 +02:00
Max Kellermann
979a7a1dcc
test/run_input: add option --chunk-size
2020-09-07 20:52:37 +02:00
Max Kellermann
962cf32ba7
test/run_input: pass FileDescriptor to dump_input_stream()
2020-09-07 20:14:39 +02:00
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