| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Add GMutex, GCond attributes which will be used by callers to
conditionally wait on the stream.
Remove the (now-useless) plugin method buffer(), wait on GCond
instead. Lock the input_stream before each method call. Do the same
with the playlist plugins.
|
|
To check for errors without reading. The decoder thread wants to do
that, before it passes the input stream to the plugin.
|
|
Reduce heap usage by reducing the number of malloc() / free() calls.
|
|
Update the struct attributes, important for facades like the "rewind"
plugin. To replace buffer().
|
|
|
|
|
|
|
|
The assertion added in MPD 0.15.14 was too much, it failed when the
MIME type of a stream was NULL.
|
|
|
|
|
|
Duplicate the "mime" attribute of the inner input_stream object,
instead of copying the pointer.
|
|
|
|
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.
|
|
|
|
All close() implementations must call this method.
|
|
Don't limit the "rewind" input plugin to CURL streams.
|
|
Major API redesign: don't let the caller allocate the input_stream
object. Let each input plugin allocate its own (derived/extended)
input_stream pointer. The "data" attribute can now be removed, and
all input plugins simply cast the input_stream pointer to their own
structure (with an "struct input_stream base" as the first attribute).
|
|
|
|
This replaces the rewinding buffer code from the CURL input plugin.
It is more generic, and allows rewinding even when the server sends
Icy-Metadata (which would have been too difficult to implement within
the CURL plugin).
This is a rather complex patch for the stable branch (v0.15.x), but it
fixes a serious problem: the "vorbis" decoder plugin was unable to
play streams with Icy-Metadata, because it couldn't rewind the stream
after detecting the codec (Vorbis vs. FLAC).
|