| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| | |
The global data structures are now lock-free, because they are
accessed only from the I/O thread. By using per-request locks, we
have finer grained locking, preparing for locks shared with the
client.
|
| |
| |
| |
| |
| |
| | |
This adds some overheads for indirect calls to the I/O thread, but
reduces the amount of global locks. Next step will be switching to
per-request locks.
|
| | |
|
| |
| |
| |
| |
| | |
Move the assignment to _request_done(), right before the GCond is
signalled. This might fix spurious wakeups.
|
| | |
|
| |
| |
| |
| |
| | |
This is a trivial function. Merge some duplicate code, e.g. the
g_cond_broadcast() call.
|
| | |
|
| |
| |
| |
| |
| | |
Update the struct attributes, important for facades like the "rewind"
plugin. To replace buffer().
|
| | |
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
configure.ac
src/output_control.c
|
| |
| |
| |
| |
| | |
Be sure to stop the operation at some point when the server isn't
responding.
|
| |
| |
| |
| |
| | |
Background buffering and better timeout handling. This patch sort of
obsoletes the input_plugin method buffer().
|
| |
| |
| |
| |
| |
| | |
Assume the flag is true when the "easy" CURL handle is NULL. That
way, we don't need to keep track if CURL has sent us the "DONE"
information yet.
|
| |
| |
| |
| |
| |
| | |
Release it immediately when end-of-file has been reached. We don't
need that handle anymore, because the rest is delivered from the
buffers.
|
| |
| |
| |
| | |
Allow closing the handle while preserving the remaining buffers.
|
| |
| |
| |
| | |
Remove a cast.
|
| |
| |
| |
| | |
Let the caller know what happened, he's responsible for logging.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
To demonstrate the new I/O thread. libsoup is well-integrated into
the GLib main loop, which made this plugin pretty easy to write.
As a side effect, we have to initialize the I/O thread in all debug
programs that use the input API.
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| | |
FFmpeg/libav have dropped AVIO_RDONLY in favor of AVIO_FLAG_READ. This
patch fixes that in MPD.
|
| |
| |
| |
| | |
URLContext is deprecated.
|
| |
| |
| |
| |
| | |
All modern distros ship 0.5, so there's no need to support old and buggy
ffmpeg versions.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For Spotify tracks. Uses a spt URI, so with mpc you can play tracks
with e.g.,
mpc add spt://spotify:track:5qENVY0YEdZ7fiuOax70x1
mpc play
Uses the pcm_decoder_plugin for the output
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I wanted mpd to play a mp3 stream from a music website. The stream is
only available to subscribers, which restriction is enforced through
normal http authentication. However, the URL I get from the website
is not the final URL of the stream, but a generic URL which points to
the real one through a redirect (code 301). Thus, I cannot predict
the final URL, and so I cannot use the username:password hack to force
the authentication, and mpd (libcurl on mpds behalf) fails to grab the
stream.
libcurl allows the option CURLOPT_NETRC to be set and then the
credentials can be stored in the good old .netrc file (in this case it
would be ~mpd/.netrc, of course). But mpd doesn't set this option. I
think it should.
|
| |
| |
| |
| |
| | |
Seems like we forgot to give this module a name... this can crash MPD
on startup.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Was missing.
|
| |
| |
| |
| | |
Another build fix.
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
audio CD's
|
|\
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
|
| |
| |
| |
| |
| | |
The assertion added in MPD 0.15.14 was too much, it failed when the
MIME type of a stream was NULL.
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
src/decoder_control.c
src/decoder_control.h
src/input/rewind_input_plugin.c
src/output_control.c
src/output_thread.c
src/player_thread.c
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Duplicate the "mime" attribute of the inner input_stream object,
instead of copying the pointer.
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
src/input/rewind_input_plugin.c
src/output/httpd_output_plugin.c
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The assumption that MIME type is set only once is not valid with CURL,
as URL redirections may update the MIME type.
This fixes bug #3044.
|
| |
| |
| |
| |
| |
| |
| | |
According to the CURL web site, curl_multi_timeout() was added in
version 7.15.4:
http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
|