aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-29Avoid integer overflow in MonotonicClock{S,MS,US}PHO1-4/+4
This is Darwin specific: the previous implementation was causing an integer overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic.
2015-01-26{playlist,input}/despotify: remove defunct pluginMax Kellermann9-668/+0
2015-01-23util/list: disable gcc5 warningMax Kellermann1-0/+4
This file has been removed in newer MPD versions, so don't care about it now.
2015-01-23ClientProcess: cast enum to int before passing to printf()Max Kellermann1-3/+3
Fixes gcc5 warning.
2014-12-26db/proxy, output/shout: fix implicit nullptr/bool conversionMax Kellermann2-4/+4
Return false on error, not nullptr.
2014-12-26db/{simple,proxy}, ...: add "override" keywordsMax Kellermann7-22/+26
Fixes -Winconsistent-missing-override (clang 3.6).
2014-12-26util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compareMax Kellermann10-0/+51
New in clang 3.6.
2014-12-26DatabaseGlue: convert nullptr check to assertionMax Kellermann1-3/+2
2014-12-26util/ASCII: fix indentMax Kellermann1-10/+10
2014-12-26Compiler.h: add macro CLANG_CHECK_VERSION()Max Kellermann1-0/+7
2014-12-26Compiler.h: add macro GCC_OLDER_THAN()Max Kellermann2-4/+12
2014-12-26util/Manual: reimplement GCC_CHECK_VERSION() using GCC_MAKE_VERSION()Max Kellermann1-4/+3
2014-12-26Compiler.h: add macro GCC_MAKE_VERSION()Max Kellermann1-6/+4
2014-12-16playlist/embcue: fix filename suffix detectionk441-1/+1
The definition of the playlist_plugin struct member of the embcue plugin was incorrect.
2014-12-15decoder/ffmpeg: detect and fix negative time stampsMax Kellermann1-4/+7
Works around assertion failure due to something that appears to be a (minor) FFmpeg bug.
2014-12-08decoder/ffmpeg: support FFmpeg 2.5Max Kellermann1-0/+5
Version 2.5 fixed an API oddity, however it broke API compatibility, at least with C++. Disable the workaround when a libavformat version is detected that is recent enough.
2014-12-08thread/Id: drop "::" prefix before pthread function namesMax Kellermann1-2/+2
The "::" to explicitly refer to the global namespace appeared like a good idea in C++, but it breaks with C libraries that implement standard functions using macros (e.g. musl).
2014-11-24archive/zzip: fix inverted error handlerMax Kellermann1-4/+5
Set the Error when zzip_seek()==-1 and not on success. Fixes a crash after seeking.
2014-11-18Client: assume uid==0 is local socketMax Kellermann2-2/+2
A negative uid value means it's not a "local socket" (PF_LOCAL). uid==0 means user "root" connected.
2014-11-18event/ServerSocket: fix get_remote_uid() error valueMax Kellermann1-1/+1
Must return -1 on error, not 0. 0 is root.
2014-11-11Construct a Null AllocatedPath if the filename conversion into UTF8 failedFlorent Le Coz1-1/+5
2014-11-10decoder/ffmpeg: support opusMax Kellermann1-1/+2
2014-11-02input/curl: fix curl_easy_setopt() parameter typesMax Kellermann1-4/+4
2014-11-02Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann2-6/+8
Use the new uri_get_suffix() overload that removes the query string.
2014-11-02util/UriUtil: add uri_get_suffix() overload that ignores query stringMax Kellermann2-0/+28
2014-11-02PlaylistFile: don't allow empty playlist nameMax Kellermann1-0/+4
2014-11-02playlist/m3u: recognize the file suffix ".m3u8"Max Kellermann2-1/+3
2014-11-02decoder/faad: remove workaround for ancient libfaad2 ABI bugMax Kellermann1-10/+2
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!
2014-11-02decoder/ffmpeg: recognize MIME type audio/aacpSteven OBrien1-0/+1
2014-11-02output/roar: remove unnecessary "volatile" keywordMax Kellermann1-1/+1
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
2014-11-02TagString: use g_strndup() for unterminated stringMax Kellermann1-1/+1
Fixes buffer overflow bug.
2014-09-26CommandLine: update copyright yearMax Kellermann1-2/+2
2014-09-26configure.ac: add option to disable the DSD decodersMax Kellermann1-0/+2
Allow building a smaller MPD binary for people who don't need DSD.
2014-09-26playlist/embcue: change name string to "embcue"Max Kellermann1-1/+1
The name "cue" was listed twice in "mpd --version".
2014-09-18OutputThread: retain negative mix ratioMax Kellermann1-1/+10
Fixes MixRamp breakage.
2014-09-18command/list: reset used size after the list has been processedAndrzej Rybczak1-0/+1
2014-09-13thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSDMax Kellermann3-1/+29
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.
2014-09-09decoder/ffmpeg: use memset() to initialize AVProbeDataMax Kellermann1-0/+6
2014-09-07decoder/ffmpeg: pass MIME type to ffmpeg/libav version 11Max Kellermann1-0/+7
That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669
2014-09-07Decoder*: add more assertionsMax Kellermann2-0/+7
2014-09-07DecoderThread: clear the pipe when handling late SEEKMax Kellermann1-1/+11
See code comment. Fixes assertion failure in decoder_command_finished().
2014-09-06decoder/audiofile: fix crash after seekingMax Kellermann1-1/+1
Log call was added to the wrong branch. Fixes regression by commit ca1a1149
2014-09-04protocol/ArgParser: fix integer overflow in parse_range()Max Kellermann1-2/+2
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.
2014-08-31PlaylistControl: use SeekSongOrder(current) to keep current songMax Kellermann1-1/+1
The "current" attribute is a "song order", not a "song position". This is usually the same - except in random mode. Fixes Mantis ticket 0004073.
2014-08-31PlaylistControl: move code to new method SeekSongOrder()Max Kellermann2-7/+19
2014-08-31output/alsa: fix endless loop at end of file in dsd_usb modeMax Kellermann1-0/+9
2014-08-31output/{alsa,oss}: add assertionsMax Kellermann2-0/+6
2014-08-29decoder/gme: fix song durationMax Kellermann1-1/+1
The unit of gme_info_t::length is milliseconds, not centiseconds.
2014-08-24event/TimeoutMonitor: really reset "active" flag before invoking OnTimeout()Max Kellermann1-1/+1
The previous commit was broken. D'oh!
2014-08-24event/TimeoutMonitor: reset "active" flag before invoking OnTimeout()Max Kellermann1-1/+3
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.