| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
The definition of the playlist_plugin struct member of the embcue
plugin was incorrect.
|
|
|
|
|
| |
Works around assertion failure due to something that appears to be a
(minor) FFmpeg bug.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
|
|
|
|
| |
Set the Error when zzip_seek()==-1 and not on success. Fixes a crash
after seeking.
|
| |
|
| |
|
|
|
|
|
| |
A negative uid value means it's not a "local socket" (PF_LOCAL).
uid==0 means user "root" connected.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Use the new uri_get_suffix() overload that removes the query string.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
The unit of gme_info_t::length is milliseconds, not centiseconds.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
In version 11, both ffmpeg and libav deprecate
AVCodecContext::codec_name. The function avcodec_descriptor_get() has
been introduced long ago.
|
| |
|
| |
|
| |
|