| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!
|
| |
|
| |
|
|
|
|
|
| |
A mutex acts as a memory barrier, and thus "volatile" is not
necessary.
|
|
|
|
| |
Fixes buffer overflow bug.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
There's always the "PCM" decoder plugin, which was never checked by
configure.ac.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Allow building a smaller MPD binary for people who don't need DSD.
|
|
|
|
| |
The name "cue" was listed twice in "mpd --version".
|
|
|
|
|
| |
EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h.
D'oh!
|
| |
|
|
|
|
| |
Fixes MixRamp breakage.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
That attribute was uninitialized before, which could crash
libavformat.
See Debian bug 760669
|
| |
|
|
|
|
|
| |
See code comment. Fixes assertion failure in
decoder_command_finished().
|
|
|
|
|
|
| |
Log call was added to the wrong branch.
Fixes regression by commit ca1a1149
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The "current" attribute is a "song order", not a "song position".
This is usually the same - except in random mode. Fixes Mantis ticket
0004073.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Fix incorrect description of the "songs" field and add missing
"albums" field.
Signed-off-by: Joachim Fasting <joachifm@fastmail.fm>
|
|
|
|
| |
The unit of gme_info_t::length is milliseconds, not centiseconds.
|
|
|
|
| |
The previous commit was broken. D'oh!
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Same bug as in the previous commit.
|
|
|
|
|
|
|
| |
When the data chunk size is not a multiple of the frame size, the last
partial frame lead to an endless loop. We fix this by checking
chunk_sze>=frame instead of chunk_sze>0. This way, the partial frame
is simply skipped.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to POSIX and both OSX and Linux manpages,
strcasecmp comes from strings.h, not string.h.
Most OSes also have them available in string.h,
but we just fixed the headers on Haiku and it now
only provides them in strings.h.
We might want to fall back to string.h for other
OSes though...
cf.
http://pubs.opengroup.org/onlinepubs/009695399/functions/strcasecmp.html
http://linux.die.net/man/3/strcasecmp
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/strcasecmp.3.html
|
|
|
|
|
|
| |
In version 11, both ffmpeg and libav deprecate
AVCodecContext::codec_name. The function avcodec_descriptor_get() has
been introduced long ago.
|
|
|
|
|
| |
This was broken by commit 84d20d9e, which deleted the "!" from the
check.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It happened to me when doing the Haiku port, src/mpd failed to
be relinked properly when editing source files, and likely also
happens on win32, although I didn't try this change.
When building for windows, src_mpd_DEPENDENCIES is overriden.
Automake then disables the default version which contains all
the static libraries. In Makefile.in:
@HAVE_WINDOWS_FALSE@src_mpd_DEPENDENCIES = libmpd.a \
Instead we use EXTRA_src_mpd_DEPENDENCIES which is meant for this.
|
| |
|
| |
|