Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | event/ServerSocket: fix get_remote_uid() error value | Max Kellermann | 2014-11-18 | 1 | -1/+1 |
| | | | | Must return -1 on error, not 0. 0 is root. | ||||
* | Construct a Null AllocatedPath if the filename conversion into UTF8 failed | Florent Le Coz | 2014-11-11 | 2 | -1/+6 |
| | |||||
* | decoder/ffmpeg: support opus | Max Kellermann | 2014-11-10 | 2 | -1/+4 |
| | |||||
* | configure.ac: prepare for 0.18.1 | Max Kellermann | 2014-11-10 | 2 | -2/+4 |
| | |||||
* | release v0.18.17 | Max Kellermann | 2014-11-02 | 1 | -1/+1 |
| | |||||
* | input/curl: fix curl_easy_setopt() parameter types | Max Kellermann | 2014-11-02 | 1 | -4/+4 |
| | |||||
* | Decoder, Playlist: ignore URI query string for plugin detection | Max Kellermann | 2014-11-02 | 3 | -6/+9 |
| | | | | Use the new uri_get_suffix() overload that removes the query string. | ||||
* | util/UriUtil: add uri_get_suffix() overload that ignores query string | Max Kellermann | 2014-11-02 | 3 | -0/+47 |
| | |||||
* | PlaylistFile: don't allow empty playlist name | Max Kellermann | 2014-11-02 | 2 | -0/+5 |
| | |||||
* | playlist/m3u: recognize the file suffix ".m3u8" | Max Kellermann | 2014-11-02 | 3 | -1/+5 |
| | |||||
* | decoder/faad: remove workaround for ancient libfaad2 ABI bug | Max Kellermann | 2014-11-02 | 3 | -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/aacp | Steven OBrien | 2014-11-02 | 2 | -0/+3 |
| | |||||
* | configure.ac: show DSD in result | Max Kellermann | 2014-11-02 | 1 | -0/+1 |
| | |||||
* | output/roar: remove unnecessary "volatile" keyword | Max Kellermann | 2014-11-02 | 1 | -1/+1 |
| | | | | | A mutex acts as a memory barrier, and thus "volatile" is not necessary. | ||||
* | TagString: use g_strndup() for unterminated string | Max Kellermann | 2014-11-02 | 1 | -1/+1 |
| | | | | Fixes buffer overflow bug. | ||||
* | configure.ac: prepare for 0.18.17 | Max Kellermann | 2014-11-02 | 2 | -2/+4 |
| | |||||
* | release v0.18.16 | Max Kellermann | 2014-09-26 | 1 | -1/+1 |
| | |||||
* | configure.ac: fix DSD breakage due to typo | Max Kellermann | 2014-09-26 | 2 | -1/+2 |
| | |||||
* | configure.ac: prepare for 0.18.16 | Max Kellermann | 2014-09-26 | 2 | -1/+3 |
| | |||||
* | release v0.18.15 | Max Kellermann | 2014-09-26 | 1 | -1/+1 |
| | |||||
* | configure.ac: allow building MPD without decoder plugin | Max Kellermann | 2014-09-26 | 1 | -21/+0 |
| | | | | | There's always the "PCM" decoder plugin, which was never checked by configure.ac. | ||||
* | configure.ac: allow building MPD without output plugin | Max Kellermann | 2014-09-26 | 1 | -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 year | Max Kellermann | 2014-09-26 | 1 | -2/+2 |
| | |||||
* | configure.ac: add option to disable the DSD decoders | Max Kellermann | 2014-09-26 | 3 | -6/+29 |
| | | | | Allow building a smaller MPD binary for people who don't need DSD. | ||||
* | playlist/embcue: change name string to "embcue" | Max Kellermann | 2014-09-26 | 1 | -1/+1 |
| | | | | The name "cue" was listed twice in "mpd --version". | ||||
* | test/test_protocol: add missing stdlib.h include | Max Kellermann | 2014-09-24 | 1 | -1/+1 |
| | | | | | EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h. D'oh! | ||||
* | test/test_protocol: add missing unistd.h include | Max Kellermann | 2014-09-24 | 1 | -0/+2 |
| | |||||
* | OutputThread: retain negative mix ratio | Max Kellermann | 2014-09-18 | 2 | -1/+11 |
| | | | | Fixes MixRamp breakage. | ||||
* | command/list: reset used size after the list has been processed | Andrzej Rybczak | 2014-09-18 | 2 | -0/+3 |
| | |||||
* | thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSD | Max Kellermann | 2014-09-13 | 4 | -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.15 | Max Kellermann | 2014-09-13 | 2 | -1/+3 |
| | |||||
* | release v0.18.14 | Max Kellermann | 2014-09-11 | 1 | -1/+1 |
| | |||||
* | test/run_decoder: dump MixRamp data | Max Kellermann | 2014-09-09 | 1 | -1/+3 |
| | |||||
* | decoder/ffmpeg: use memset() to initialize AVProbeData | Max Kellermann | 2014-09-09 | 1 | -0/+6 |
| | |||||
* | decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11 | Max Kellermann | 2014-09-07 | 2 | -0/+8 |
| | | | | | | | That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669 | ||||
* | Decoder*: add more assertions | Max Kellermann | 2014-09-07 | 2 | -0/+7 |
| | |||||
* | DecoderThread: clear the pipe when handling late SEEK | Max Kellermann | 2014-09-07 | 2 | -1/+12 |
| | | | | | See code comment. Fixes assertion failure in decoder_command_finished(). | ||||
* | decoder/audiofile: fix crash after seeking | Max Kellermann | 2014-09-06 | 2 | -1/+3 |
| | | | | | | Log call was added to the wrong branch. Fixes regression by commit ca1a1149 | ||||
* | protocol/ArgParser: fix integer overflow in parse_range() | Max Kellermann | 2014-09-04 | 2 | -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.cxx | Max Kellermann | 2014-09-04 | 3 | -0/+72 |
| | |||||
* | configure.ac: prepare for 0.18.14 | Max Kellermann | 2014-09-03 | 2 | -1/+3 |
| | |||||
* | release v0.18.13 | Max Kellermann | 2014-08-31 | 1 | -1/+1 |
| | |||||
* | PlaylistControl: use SeekSongOrder(current) to keep current song | Max Kellermann | 2014-08-31 | 2 | -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 Kellermann | 2014-08-31 | 2 | -7/+19 |
| | |||||
* | output/alsa: fix endless loop at end of file in dsd_usb mode | Max Kellermann | 2014-08-31 | 2 | -0/+11 |
| | |||||
* | output/{alsa,oss}: add assertions | Max Kellermann | 2014-08-31 | 2 | -0/+6 |
| | |||||
* | doc/protocol: fix description of "stats" response | Joachim Fasting | 2014-08-31 | 1 | -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 duration | Max Kellermann | 2014-08-29 | 2 | -1/+2 |
| | | | | The unit of gme_info_t::length is milliseconds, not centiseconds. | ||||
* | event/TimeoutMonitor: really reset "active" flag before invoking OnTimeout() | Max Kellermann | 2014-08-24 | 1 | -1/+1 |
| | | | | The previous commit was broken. D'oh! | ||||
* | event/TimeoutMonitor: reset "active" flag before invoking OnTimeout() | Max Kellermann | 2014-08-24 | 2 | -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. |