summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-26release v0.20.19v0.20.19Max Kellermann
2018-04-26android/AndroidManifest.xml: increment version number to 0.20.19Max Kellermann
2018-04-26db/proxy: implement the group_mask parameter in VisitUniqueTags()Max Kellermann
Closes #258
2018-04-26db/proxy: call mpd_search_cancel() after search errorMax Kellermann
Fixes "search already in progress" errors.
2018-04-26python/build/libs.py: upgrade FFmpeg to 4.0Max Kellermann
2018-04-26python/build/libs.py: upgrade libvorbis to 1.3.6Max Kellermann
2018-04-25lib/ffmpeg/Init: fix av_register_all() deprecation warningMax Kellermann
av_register_all() was deprecated in FFmpeg/FFmpeg@0694d8702421e7aff1340038559c438b61bb30dd
2018-04-25player/Thread: never reuse decoder when switching radio streamsMax Kellermann
When switching to another song manually, the player checks if the decoder is already decoding that song; if so, it will attempt to reuse it by seeking it to the new position. That however fails if the decoder is not seekable (e.g. a radio stream) which leaves the user unable to switch to that song with the bogus error message "Not seekable".
2018-03-15pcm/PcmDop: round down to the nearest multiple of 4 DSD bytesMax Kellermann
There was a discrepancy between what was written to the buffer and the size returned by pcm_dsd_to_dop(): the "for" loop uses num_frames/2, rounding down, while the return value is num_samples which is num_frames*channels, without rounding. This could cause undefined data at the end of the destination buffer if the source buffer size was not aligned to multiples of 8 bytes (4 DSD bytes per channel). The latter however can occur in the 0.21 branch after commit a06bf388d96 Closes #233
2018-03-15pcm/PcmDop: use size_tMax Kellermann
2018-03-15input/thread: move code to Stop()Max Kellermann
Fixes crash due to "pure virtual method called" in the "mms" input plugin. Closes #253
2018-03-15python/build/libs: upgrade CURL to 7.59.0Max Kellermann
2018-03-15doc/user.xml: clarify where mpd.conf is read from on AndroidMax Kellermann
Closes #247
2018-03-14input/thread: set InputStream::ready after Open() failureMax Kellermann
Without setting the "ready" flag, the caller will wait in WaitReady() forever, locking up MPD. Closes #252
2018-03-09Bump minimum required version of Boost to 1.54.Michal Smucr
lockfree library used by ALSA output plugin is part of Boost from version 1.53, so this can be theoretically the lowest required version, however there are issues which are resolved from 1.54 onwards.
2018-03-05AUTHORS: add various recent contributorsMax Kellermann
2018-03-04android/build.py: support the x86 ABIMax Kellermann
First commit for issue #69
2018-03-04android/build.py: add ABI parameterMax Kellermann
2018-03-04android/build.py: convert ndk_arch to local variableMax Kellermann
2018-03-04doc/user.xml: add section about compiling for AndroidMax Kellermann
2018-03-04protocol/ArgParser: disallow negative seek timesMax Kellermann
Instead of stopping playback (due to seek time overflow), reject the seek command. Closes #240 Relative negative values (with "seekcur") are still allowed, and MPD will fix the resulting position if it turns out to be negative. But the "seek" and "seekid" commands use an unsigned time stamp which must not be negative.
2018-03-04Get rid of GCD on macOS which breaks debug buildsChristian Kröner
With Grand Central Dispatch used in Main.cxx, debug builds on macOS crash as the IsInside() assertion gets triggered in the event loop. As a simple fix, usage of GCD is removed. Plugging and unplugging headphones or changes of the default output device was tested without issues. Whatever the original commit tried to fix by GCD probably does not need fixing anymore.
2018-03-04increment version number to 0.20.19Max Kellermann
2018-02-24net/Init: work around -Werror=unused-variableMax Kellermann
2018-02-24release v0.20.18v0.20.18Max Kellermann
2018-02-24win32/build.py: enable libnfsMax Kellermann
Now that all build failures have been fixed, we can enable the feature.
2018-02-24storage/nfs: use PathTraitsFS::const_pointer_typeMax Kellermann
2018-02-24storage/nfs: assume UTF-8 when accessing NFS from WindowsMax Kellermann
Fixes two build failures with libnfs on Windows.
2018-02-24test/run_storage: fallback for %F on WindowsMax Kellermann
2018-02-24test/run_storage: initialize WinSockMax Kellermann
2018-02-24Main: move WinSock initialization to class ScopeNetInitMax Kellermann
2018-02-24win32/build.py: add -DWINVER=0x0600 -D_WIN32_WINNT=0x0600Max Kellermann
configure.ac sets this, but this wasn't used for compiling third-party libraries. This setting however is important for libnfs, which adds fallback definitions for POLLIN and POLLOUT with bogus values.
2018-02-24lib/nfs/FileReader: move sys/stat.h to header because "struct stat" may be macroMax Kellermann
It indeed is a macro on Windows.
2018-02-24lib/nfs/Connection: use winsock2.h instead of poll.h on WindowsMax Kellermann
2018-02-24Fix curl storage plugin failure if the authentication method is different ↵tpoeiras
than basic.
2018-02-24playlist/cue/Parser: parse tags after "INDEX 01"Max Kellermann
Instead of setting state=IGNORE_TRACK, ignore only the following "INDEX" lines. Correction for commit 8461d71b520. Closes #227
2018-02-24android/build.py: disable libmadMax Kellermann
Let FFmpeg do the MP3 decoding. See commit a4de96508d7d74b66d7c2a22983b682d95b625eb
2018-02-24python/build/libs.py: remove duplicate FFmpeg option and fix typoMax Kellermann
Closes #232
2018-02-24python/build/libs.py: re-enable FFmpeg MP3 decoderMax Kellermann
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-24python/build/libs.py: update FFmpeg to 3.4.2Max Kellermann
2018-02-20python/build/libs.py: add libnfsMax Kellermann
Enable the NFS storage plugin on Android. Closes #226
2018-02-20python/build/autotools.py: add autoreconf supportMax Kellermann
2018-02-17decoder/flac: move the SubmitData() call out of the callbackMax Kellermann
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-17decoder/flac: call FlacSubmitToClient() again after seekingMax Kellermann
See code comment.
2018-02-17decoder/flac: move code to FlacSubmitToClient()Max Kellermann
2018-02-17decoder/Bridge: truncate last chunk at the exact end_timeMax Kellermann
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-17encoder/opus: initialize granulepos to 0cathugger
it was uninitialized before
2018-02-17increment version number to 0.20.18Max Kellermann
2018-02-11release v0.20.17v0.20.17Max Kellermann
2018-02-10mixer/alsa: work around rounding error at volume 0Max Kellermann
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