Max Kellermann
ebed7e2147
playlist/cue/Parser: parse tags after "INDEX 01"
...
Instead of setting state=IGNORE_TRACK, ignore only the following
"INDEX" lines.
Correction for commit 8461d71b52
. Closes #227
2018-02-24 21:29:16 +01:00
Max Kellermann
53f5d4c710
android/build.py: disable libmad
...
Let FFmpeg do the MP3 decoding. See commit
a4de96508d
2018-02-24 10:52:40 +01:00
Max Kellermann
139a4054c5
python/build/libs.py: remove duplicate FFmpeg option and fix typo
...
Closes #232
2018-02-24 10:52:09 +01:00
Max Kellermann
a4de96508d
python/build/libs.py: re-enable FFmpeg MP3 decoder
...
libmad has been unmaintained for a long time, and it fails to build on
Windows. I could go and fix libmad's broken configure script, but I
prefer to just assign MP3 decoding to FFmpeg for now.
Closes #228
2018-02-24 10:49:05 +01:00
Max Kellermann
a7582aaf15
python/build/libs.py: update FFmpeg to 3.4.2
2018-02-24 10:47:46 +01:00
Max Kellermann
c5c1c64a81
python/build/libs.py: add libnfs
...
Enable the NFS storage plugin on Android.
Closes #226
2018-02-20 22:47:17 +01:00
Max Kellermann
992c52ce7f
python/build/autotools.py: add autoreconf support
2018-02-20 22:46:54 +01:00
FlashSystems
9f6af4f2cc
Fix for bogus output of the albumart command on 32bit platforms.
...
read_stream_art uses PRIu64 unconditionally with the Format
method of a Respone instance to output a size_t typed value.
If size_t is 32bit the output is garbeled. This patch uses
offset_type and PRIoffset to make sure the format string
and the type of the output value always match.
2018-02-17 19:19:38 +01:00
Max Kellermann
60efdce5ff
Merge branch 'v0.20.x'
2018-02-17 13:37:03 +01:00
Max Kellermann
026aef7465
decoder/flac: move the SubmitData() call out of the callback
...
This addresses two problems:
1. the libFLAC write callback had to send an error status to its
caller when SubmitData() returned a command; this disrupted libFLAC
and the resulting command could not be used for anything;
2. the libFLAC function FLAC__stream_decoder_seek_absolute() also
calls the write callback, but its result cannot be used, because
seeking is still in progress, so we lose all data from one FLAC frame.
By moving the SubmitData() call until after CommandFinished(), we
avoid losing this data. This fixes another part of #113
2018-02-17 13:33:53 +01:00
Max Kellermann
b53a23b51b
decoder/flac: call FlacSubmitToClient() again after seeking
...
See code comment.
2018-02-17 13:33:51 +01:00
Max Kellermann
2aad015392
decoder/flac: move code to FlacSubmitToClient()
2018-02-17 13:33:48 +01:00
Max Kellermann
986ec877b0
decoder/Bridge: truncate last chunk at the exact end_time
...
Instead of passing whole chunks to the MusicPipe and checking the
end_time after each chunk, truncate the last chunk if it would exceed
the end_time. This requires keeping track of the absolute PCM frame
number.
This fixes a problem with gapless CUE song transitions: a small part
of the following song was always played twice.
Closes #113
2018-02-17 13:10:00 +01:00
Max Kellermann
a68f2cb9fa
input/InputPlugin: add API documentation
2018-02-17 10:32:17 +01:00
Max Kellermann
5f5be823f3
input/RemoteTagScanner: add API documentation
2018-02-17 08:49:35 +01:00
Max Kellermann
03700ad37c
test/DumpDecoderClient: use STDOUT_FILENO
2018-02-17 08:33:01 +01:00
Max Kellermann
6d01ee9284
test/DumpDecoderClient: convert static local to class attribute
2018-02-17 08:32:16 +01:00
Max Kellermann
cc3c1f31d0
test/DumpDecoderClient: convert to class
2018-02-17 08:31:19 +01:00
Max Kellermann
5909502a13
test/DumpDecoderClient: add API documentation
2018-02-17 08:30:12 +01:00
Max Kellermann
88bbd847e0
test/FakeDecoderAPI: rename to DumpDecoderClient
2018-02-17 08:27:03 +01:00
Max Kellermann
34d14df297
Makefile.am: remove obsolete dependencies on FakeDecoderAPI.cxx
2018-02-17 08:26:10 +01:00
Max Kellermann
bfc886cd54
decoder/Client: update API documentation
2018-02-17 08:20:07 +01:00
cathugger
c43ea74b30
encoder/opus: initialize granulepos to 0
...
it was uninitialized before
2018-02-17 01:22:17 +01:00
Max Kellermann
79981f3cda
increment version number to 0.20.18
2018-02-17 01:21:46 +01:00
Max Kellermann
8624d8c144
doc/user.xml: example "ps" command for real-time scheduling check
2018-02-17 01:07:06 +01:00
Max Kellermann
420582ec5e
.travis.yml: enable ccache
2018-02-17 00:30:32 +01:00
Max Kellermann
36207d9726
.travis.yml: add variable MATRIX_EVAL
2018-02-17 00:23:31 +01:00
Max Kellermann
855d1bc5a1
.travis.yml: switch to osx_image xcode9.3beta
...
The clang/libc++ version in the default xcode8 image is unable to
compile MPD due to incomplete C++14 support.
2018-02-17 00:23:30 +01:00
Max Kellermann
081d15a830
.travis.yml: use "matrix"
2018-02-16 23:21:14 +01:00
Max Kellermann
d29d186d62
output/alsa: use a new I/O thread with real-time scheduling
...
The normal I/O event thread can have a large latency, e.g. when
libgnutls loads all TLS CA certificates for a https connect. This
makes it unreliable for the ALSA I/O notifications, and causes ring
buffer xruns. To avoid interfering with high latency events such as
CURL's, we move the ALSA I/O events to a separate I/O thread which
also obtains real-time scheduling (if possible).
Closes #221
2018-02-16 22:38:55 +01:00
Max Kellermann
61f2ce67dd
decoder/HybridDSD: implement seeking
2018-02-13 09:53:05 +01:00
Max Kellermann
60dbf1bea0
decoder/HybridDSD: calculate bit rate
2018-02-13 09:41:07 +01:00
Max Kellermann
58bb866e2d
decoder/HybridDSD: add code comments
2018-02-13 09:29:58 +01:00
Max Kellermann
b2ec5d0f01
decoder/HybridDSD: new decoder plugin for Hybrid DSD
2018-02-13 00:00:00 +01:00
Max Kellermann
0c300bd4b4
test/run_decoder: add command-line option to read mpd.conf
2018-02-13 00:00:00 +01:00
Max Kellermann
53acb7bfcb
test/run_decder: RAII-style global initialization
2018-02-13 00:00:00 +01:00
Max Kellermann
65bbb0e0aa
release v0.20.17
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlqAMO0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg8eD/49NlFvlNdkamgYvh7MI1Sn67yKAwQt+N51
W0hVnmXwPoSg76gfWw8J9kVyQy/jEkaCxsPF/UuEbH5jzqAC0y8hwYVRkJaRc9wN
ZfwHvLHeaUxQweoguEwRSREy4ZC4ImQOK+eAxI1R43mqxxyhko1Akc1NmRVWzYfv
/FGmAjTi1U6FR/yDpdSFn1NdlPmIgZ4WDuRsDT2NrshX/Bb32FiyZBytvek2P8n/
QNgXv18E4yWXSb+zBYhPy/eaKhGasyjI3cbht1F0hNW9Yo/BsFxDuwXrX1vNBaOS
E3Dux4s/nfcJ4RMRjmrkFwXImCvxt7+AGfh8RYBXuwqMExXz2kZjIs4ZVvO7Nu9A
pFDJQwRIojXMfk73LU/MEpmNNEXhvfQLYkrM7poSqYaOr8SWMszqSgNnnfq6+flB
sJbstgAStI6lL0jy0HrtMTvPVEiAGh6wCvMy/r2G9XUAyw76ccOg7MaIldn0MHJv
A51+GfRTi4ILH0ReL1BGAg9nG97uFmRAWGkfkhtyD540xGRk7x5R8/ml4zFogHN6
SbrV0NPdwk+uFd0y2znQT2gWyjc0id4WEKEoHX+Gl6c5qtPIfrq+PQPyk9kR+u+i
AxwqMoKQer6Ji5qnsvCiKSkaGGiVNivrZ11jDWNCZaKjmvlKlvj/P5GxbPpORorq
v4ru/4vNXQ==
=v4t8
-----END PGP SIGNATURE-----
Merge tag 'v0.20.17'
release v0.20.17
2018-02-11 13:22:43 +01:00
Max Kellermann
c2940a8385
release v0.20.17
2018-02-11 13:02:53 +01:00
Max Kellermann
bede564618
mixer/alsa: work around rounding error at volume 0
...
Due to rounding errors, a slightly negative value can be passed to
set_normalized_volume(), which will make the log10() call fail.
Actually, volume 0 is already failing because log10(0) is illegal. So
let's fix this by implementing two corner cases: <=0 and >=100.
Closes #212
2018-02-10 09:07:51 +01:00
Max Kellermann
e0ca4b865a
android: require SDK version 14
...
Closes #213 .
2018-02-10 00:03:23 +01:00
Max Kellermann
31c206bf80
android/build.py: add -mfpu=vfp, explicitly disabling NEON
...
Apparently, clang defaults to NEON when ARMv7 is used. Not all ARMv7
CPUs we target have NEON, so we need to disable that.
2018-02-10 00:00:57 +01:00
Max Kellermann
9187a08106
lib/curl: remove .netrc support on Android
...
Not needed on Android, and the implementation uses getpwuid_r() which
is unavailable on old Android versions.
2018-02-09 23:14:29 +01:00
Max Kellermann
3859a50466
python/build/libs.py: convert CURL edit to quilt patch
2018-02-09 23:14:27 +01:00
Max Kellermann
927071e085
python/build/project.py: add quilt support
2018-02-09 22:59:12 +01:00
Max Kellermann
6ba918b203
input/file: don't use posix_fadvise() on Android
...
Requires Android API 21, but we want to support older versions as
well.
2018-02-09 22:54:22 +01:00
Max Kellermann
e8b70dbca4
SongSave, queue/PlaylistState, tag/ReplayGain: use portable atof() wrappers
...
For Android pre-5.0 compatibility (#213 ).
2018-02-09 22:54:22 +01:00
Max Kellermann
0f8d223c7f
protocol/ArgParser: move strtof()/strtod() switch to util/NumberParser.hxx
2018-02-09 22:54:22 +01:00
Max Kellermann
19a2885fd5
protocol/ArgParser: use strtod() instead of strtof() on Android
...
For Android pre-5.0 compatibility (#213 ).
2018-02-09 22:54:22 +01:00
Max Kellermann
b8a094470b
python/build/libs.py: build only the library
2018-02-09 22:54:22 +01:00
Max Kellermann
2988bb77e8
python/build/project: allow trailing digit after letter in version number
...
For version numbers such as OpenSSH's, e.g.: "7.2p2"
2018-02-09 22:54:22 +01:00