- 02 Nov, 2014 6 commits
-
-
Max Kellermann authored
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!
-
Steven OBrien authored
-
Max Kellermann authored
-
Max Kellermann authored
A mutex acts as a memory barrier, and thus "volatile" is not necessary.
-
Max Kellermann authored
Fixes buffer overflow bug.
-
Max Kellermann authored
-
- 26 Sep, 2014 9 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
There's always the "PCM" decoder plugin, which was never checked by configure.ac.
-
Max Kellermann authored
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.
-
Max Kellermann authored
-
Max Kellermann authored
Allow building a smaller MPD binary for people who don't need DSD.
-
Max Kellermann authored
The name "cue" was listed twice in "mpd --version".
-
- 24 Sep, 2014 2 commits
-
-
Max Kellermann authored
EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h. D'oh!
-
Max Kellermann authored
-
- 18 Sep, 2014 2 commits
-
-
Max Kellermann authored
Fixes MixRamp breakage.
-
Andrzej Rybczak authored
-
- 13 Sep, 2014 2 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
-
- 11 Sep, 2014 1 commit
-
-
Max Kellermann authored
-
- 09 Sep, 2014 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 07 Sep, 2014 3 commits
-
-
Max Kellermann authored
That attribute was uninitialized before, which could crash libavformat. See Debian bug 760669
-
Max Kellermann authored
-
Max Kellermann authored
See code comment. Fixes assertion failure in decoder_command_finished().
-
- 06 Sep, 2014 1 commit
-
-
Max Kellermann authored
Log call was added to the wrong branch. Fixes regression by commit ca1a1149
-
- 04 Sep, 2014 2 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
-
- 03 Sep, 2014 1 commit
-
-
Max Kellermann authored
-
- 31 Aug, 2014 6 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
The "current" attribute is a "song order", not a "song position". This is usually the same - except in random mode. Fixes Mantis ticket 0004073.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Joachim Fasting authored
Fix incorrect description of the "songs" field and add missing "albums" field. Signed-off-by: Joachim Fasting <joachifm@fastmail.fm>
-
- 29 Aug, 2014 1 commit
-
-
Max Kellermann authored
The unit of gme_info_t::length is milliseconds, not centiseconds.
-
- 24 Aug, 2014 2 commits
-
-
Max Kellermann authored
The previous commit was broken. D'oh!
-
Max Kellermann authored
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.
-