aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* event/ServerSocket: fix get_remote_uid() error valueMax Kellermann2014-11-181-1/+1
| | | | Must return -1 on error, not 0. 0 is root.
* Construct a Null AllocatedPath if the filename conversion into UTF8 failedFlorent Le Coz2014-11-112-1/+6
|
* decoder/ffmpeg: support opusMax Kellermann2014-11-102-1/+4
|
* configure.ac: prepare for 0.18.1Max Kellermann2014-11-102-2/+4
|
* release v0.18.17Max Kellermann2014-11-021-1/+1
|
* input/curl: fix curl_easy_setopt() parameter typesMax Kellermann2014-11-021-4/+4
|
* Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann2014-11-023-6/+9
| | | | Use the new uri_get_suffix() overload that removes the query string.
* util/UriUtil: add uri_get_suffix() overload that ignores query stringMax Kellermann2014-11-023-0/+47
|
* PlaylistFile: don't allow empty playlist nameMax Kellermann2014-11-022-0/+5
|
* playlist/m3u: recognize the file suffix ".m3u8"Max Kellermann2014-11-023-1/+5
|
* decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann2014-11-023-40/+4
| | | | | | | | | | | | | | | | | | | | | | | | Many years ago, FAAD had a serious ABI bug: the NeAACDecInit() prototype in its header declared the "samplerate" parameter to be "unsigned long *", but internally, the function assumed it was "uint32_t *" instead. On 32 bit machines, that was no difference, but on 64 bit, this left one portion of the return value uninitialized; and worse, on big-endian, the wrong word was filled. This bug had to be worked around in MPD (commit 9c4e97a6). A few months later, the bug was fixed in the FAAD CVS in commit 1.117 on file libfaad/decoder.c; the commit message was: "Use public headers internally to prevent duplicate declarations" The commit message was too brief at best; the problem was not duplicate declarations, but a prototype mismatch. No mention of the bug fix in the ChangeLog. The MPD project never learned about this bug fix, and so MPD would always pass a "uin32_t *" dressed up as a "unsigned long *". Nearly 6 years later, it's about time to fix this second ABI problem. Let's kill the workaround!
* decoder/ffmpeg: recognize MIME type audio/aacpSteven OBrien2014-11-022-0/+3
|
* configure.ac: show DSD in resultMax Kellermann2014-11-021-0/+1
|
* output/roar: remove unnecessary "volatile" keywordMax Kellermann2014-11-021-1/+1
| | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary.
* TagString: use g_strndup() for unterminated stringMax Kellermann2014-11-021-1/+1
| | | | Fixes buffer overflow bug.
* configure.ac: prepare for 0.18.17Max Kellermann2014-11-022-2/+4
|
* release v0.18.16Max Kellermann2014-09-261-1/+1
|
* configure.ac: fix DSD breakage due to typoMax Kellermann2014-09-262-1/+2
|
* configure.ac: prepare for 0.18.16Max Kellermann2014-09-262-1/+3
|
* release v0.18.15Max Kellermann2014-09-261-1/+1
|
* configure.ac: allow building MPD without decoder pluginMax Kellermann2014-09-261-21/+0
| | | | | There's always the "PCM" decoder plugin, which was never checked by configure.ac.
* configure.ac: allow building MPD without output pluginMax Kellermann2014-09-261-21/+0
| | | | | | MPD can easily be used as a database provider for the proxy database plugin. In that case, it needs only one "null" output, and no real output plugin.
* CommandLine: update copyright yearMax Kellermann2014-09-261-2/+2
|
* configure.ac: add option to disable the DSD decodersMax Kellermann2014-09-263-6/+29
| | | | Allow building a smaller MPD binary for people who don't need DSD.
* playlist/embcue: change name string to "embcue"Max Kellermann2014-09-261-1/+1
| | | | The name "cue" was listed twice in "mpd --version".
* test/test_protocol: add missing stdlib.h includeMax Kellermann2014-09-241-1/+1
| | | | | EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h. D'oh!
* test/test_protocol: add missing unistd.h includeMax Kellermann2014-09-241-0/+2
|
* OutputThread: retain negative mix ratioMax Kellermann2014-09-182-1/+11
| | | | Fixes MixRamp breakage.
* command/list: reset used size after the list has been processedAndrzej Rybczak2014-09-182-0/+3
|
* thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSDMax Kellermann2014-09-134-1/+30
| | | | | | | | | | On NetBSD, PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER are not compatible with C++11 "constexpr" (see Mantis ticket 0004110). As a workaround, don't ues "constexpr", and use the functions pthread_mutex_init(), pthread_mutex_destroy(), pthread_cond_init() and pthread_cond_destroy() instead. This adds some runtime overhead, but is portable to POSIX implementations that have awkward initializer macros.
* configure.ac: prepare for 0.18.15Max Kellermann2014-09-132-1/+3
|
* release v0.18.14Max Kellermann2014-09-111-1/+1
|
* test/run_decoder: dump MixRamp dataMax Kellermann2014-09-091-1/+3
|
* decoder/ffmpeg: use memset() to initialize AVProbeDataMax Kellermann2014-09-091-0/+6
|
* decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11Max Kellermann2014-09-072-0/+8
| | | | | | | That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669
* Decoder*: add more assertionsMax Kellermann2014-09-072-0/+7
|
* DecoderThread: clear the pipe when handling late SEEKMax Kellermann2014-09-072-1/+12
| | | | | See code comment. Fixes assertion failure in decoder_command_finished().
* decoder/audiofile: fix crash after seekingMax Kellermann2014-09-062-1/+3
| | | | | | Log call was added to the wrong branch. Fixes regression by commit ca1a1149
* protocol/ArgParser: fix integer overflow in parse_range()Max Kellermann2014-09-042-2/+4
| | | | | | | | | | | | | Casting std::numeric_limits<unsigned>::max() to "long" leads to an overflow if sizeof(unsigned)==sizeof(long), and the result will be -1. This happens on some 32 bit architectures, for example ARM and WIN32. Workaround: use std::numeric_limits<int>::max(), which is the largest signed integer. Since sizeof(long)>=sizeof(int), this will never overflow. Fixes Mantis ticket 0004080.
* test/test_protocol: unit test for protocol/ArgParser.cxxMax Kellermann2014-09-043-0/+72
|
* configure.ac: prepare for 0.18.14Max Kellermann2014-09-032-1/+3
|
* release v0.18.13Max Kellermann2014-08-311-1/+1
|
* PlaylistControl: use SeekSongOrder(current) to keep current songMax Kellermann2014-08-312-1/+3
| | | | | | The "current" attribute is a "song order", not a "song position". This is usually the same - except in random mode. Fixes Mantis ticket 0004073.
* PlaylistControl: move code to new method SeekSongOrder()Max Kellermann2014-08-312-7/+19
|
* output/alsa: fix endless loop at end of file in dsd_usb modeMax Kellermann2014-08-312-0/+11
|
* output/{alsa,oss}: add assertionsMax Kellermann2014-08-312-0/+6
|
* doc/protocol: fix description of "stats" responseJoachim Fasting2014-08-311-1/+6
| | | | | | | Fix incorrect description of the "songs" field and add missing "albums" field. Signed-off-by: Joachim Fasting <joachifm@fastmail.fm>
* decoder/gme: fix song durationMax Kellermann2014-08-292-1/+2
| | | | The unit of gme_info_t::length is milliseconds, not centiseconds.
* event/TimeoutMonitor: really reset "active" flag before invoking OnTimeout()Max Kellermann2014-08-241-1/+1
| | | | The previous commit was broken. D'oh!
* event/TimeoutMonitor: reset "active" flag before invoking OnTimeout()Max Kellermann2014-08-242-1/+4
| | | | | | The IsActive() method returned true even if the timer was not active, after it completed once. This broke the state file timer, and the state file was not saved periodically.