| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
D'oh!
|
|
|
|
|
| |
Remove the forward_list::reverse() call. It was not necessary,
because pls_parser() already reads the playlist in reverse order.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
See code comment.
|
|
|
|
| |
First check if an IPv6 socket can be created.
|
|
|
|
| |
Use a std::list which can be appended at the end.
|
|
|
|
| |
getnameinfo() doesn't work well - it always returns "localhost".
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This prevented using the "volume_normalization" feature with some
codecs (e.g. mp3), because the normalization code requires 16 bit
samples. If the codec happens to deliver formats other than S16, the
AutoConvert filter succeeds to initialize the conversion filter, but
the returned input audio format was wrong.
|
| |
|
| |
|
|
|
|
|
|
| |
2 MB was too small for cross-fading a 24 bit file. Increasing to 4 MB
is still not too large for weak machines, but is enough for
cross-fading.
|
|
|
|
|
| |
Restores the features from the previous draft commands "findin" /
"searchin".
|
|
|
|
|
|
|
| |
This reverts commit a577944ab5a1f4d688e5901fa3efaf7cd1673588.
Will be replaced by new options for the old commands "search" and
"find".
|
|
|
|
|
| |
According to the protocol documentation, matching the file name was
wrong. This removes some awkward special-case code.
|
| |
|
|
|
|
|
| |
There hasn't been a maintainer for this plugin for years. It may even
fail to build.
|
|
|
|
|
|
|
|
| |
Share the Mutex between the DecoderThread and the PlayerThread. This
simplifies synchronization between the two threads and fixes a freeze
problem: while the PlayerThread waits for the DeocderThread, it cannot
answer requests from the main thread, and the main thread will block
until the DecoderThread finishes.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This command was removed by commit 206392ad (MPD 0.16), even though it
was been proven useful for some very simple clients. On request, I
add it to the protocol again.
|
|
|
|
|
|
|
| |
The "loop_count" configuration parameter allows the user to set how
many times a module with backward loops shall loop. "0" (the default)
means a module is not allowed to use backward loops at all. "-1"
enables inifinite looping.
|
|
|
|
|
|
|
| |
This patch allows the user to configure the mikmod decoder plugin to loop
modules. It adds a configuration parameter to the mikmod decoder called
"loop" which can be "no" (the old behaviour, default) or "yes" to allow
modules to use backward loops.
|
|
|
|
|
| |
Implement a fast path for UTF-8 which leaves fs_charset empty, and
don't assign a value to fs_charset if there's no configuration.
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| | |
Fixes busy loop when USB sound device gets unplugged (Mantis bug
#3824).
|
| | |
|
| |
| |
| |
| |
| |
| | |
This plugin has been defunct ever since Last.fm changed their
protocol. Since there is no volunteer willing to fix the plugin, I'm
removing it now.
|
| |
| |
| |
| | |
Implement Mantis ticket 0003646.
|
| | |
|