| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Since the encoder plugin uses a libvorbis function (and not only
libvorbisenc functions), we need to link with libvorbis explicitly.
|
|
|
|
|
| |
Allow semicolons and single quotes in the stream title. This is not
part of any specification, but found in real life.
|
|
|
|
|
| |
Works around a build failure on Solaris because annoyingly, Solaris
reserves the name "queue". This rename was pending anyway.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Look for symbol "mpc_demux_init" which does not exist in SV7. This
avoids build failures when SV7 was found by configure.ac.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac
would assume this is the libyajl 1.0 API, because the function
yajl_alloc() exists in both. This commit changes the library check to
the function yajl_parse_complete() which was removed in the 2.0 API.
This fixes build failure with libyajl 2.0.1.
|
|
|
|
|
| |
We can assume that initgroups() would be a no-op in that case, however
initgroups() is not allowed for unprivileged users anyway.
|
| |
|
| |
|
|
|
|
|
| |
The "mode" of the second ReplayGainFilter was never set, and thus
replay gain was never applied to the new song during cross-fade.
|
| |
|
|
|
|
| |
Some tagging libraries (eg. TagLib) produce that variant.
|
|
|
|
|
| |
This is safer, and works without epoll(). Fixes a build failure with
uClibc, which does not support epoll().
|
|
|
|
|
| |
If the file was recognized by a decoder plugin, accept it - don't
require metadata.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Using pcm_resample_lsr_32() for 24 bit samples works, but may cause 24
bit overflows. This commit makes 24 bit a special case with explicit
clipping.
|
| |
|
|
|
|
| |
Fixes crash on "stats" in certain configurations.
|
| |
|
|
|
|
|
|
| |
If no music_directory is configured, return nullptr instead of an
empty string. This fixes a crash when db_file is configured without
music_directory.
|
|
|
|
|
| |
Fixes build tests on ia64 and mipsel by testing for endianness in a
more general / portable way.
|
|
|
|
|
| |
The option "--enable-fluidsynth" was documented to be "auto" by
default, when it was really "no".
|
| |
|
| |
|
|
|
|
| |
Not supported by libc++.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 77c63511 caused MPD to become stuck right after a song change.
The problem was that at some point, the MusicBuffer became full, and
the DecoderThread working on the next song waits for the PlayerThread.
However, the PlayerThread was stuck in a loop of g_usleep() calls, and
never bothered to tell the DecoderThread that the MusicBuffer is not
full anymore. This bug is very old, but its chance to occur went from
nearly 0% to nearly 100%.
The fix is to wake up the DecoderThread before waiting for it. As a
side effect, I replaced the g_usleep() call with a Cond::Wait() call.
|
| |
|
| |
|
|
|
|
|
|
| |
Allows big-endian users to configure the fallback byte order to
little-endian. Without this setting, MPD assumes native byte order if
the CD drive can't decide.
|
|
|
|
|
|
| |
Add a new CommandResult code called "FINISH" which, unlike "CLOSE",
will attempt to flush the output buffer. This is a one-shot attempt;
it will do one write, and not try again.
|
|
|
|
|
|
| |
For some reason, this got lost in commit 975deca8.
Re-enabling this fixes stuttering at the beginning of radio streams.
|
|
|
|
|
|
| |
Prior to version 0.3, the "length" callback returned a "long" instead
of AFfileoffset. Now that this API bug fix is a few years old, let's
drop 0.2 support for good.
|
|
|
|
|
|
|
|
|
|
|
| |
Migrate from the old curl_multi_perform() API to the newer
curl_multi_socket_action() API (since CURL 7.16).
This allows working around a bug with HTTP redirections with epoll:
when CURL closes a socket and the new one happens to have the same
file number, MPD did not have a chance to remove the old one from
epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not
allowed by epoll, because it's a new socket now.
|