input/rewind: new input_stream wrapper to allow stream rewinding
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).
This commit is contained in:
@@ -20,6 +20,16 @@
|
||||
#ifndef MPD_INPUT_CURL_H
|
||||
#define MPD_INPUT_CURL_H
|
||||
|
||||
struct input_stream;
|
||||
|
||||
extern const struct input_plugin input_plugin_curl;
|
||||
|
||||
/**
|
||||
* This is a workaround for an input_stream API deficiency; after
|
||||
* exchanging the input_stream pointer in input_rewind_open(), this
|
||||
* function is called to reinitialize CURL's data pointers.
|
||||
*/
|
||||
void
|
||||
input_curl_reinit(struct input_stream *is);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user