aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/RewindInputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-07-30tag: convert to C++Max Kellermann1-2/+3
2013-01-30input/Rewind: remove bogus assertionMax Kellermann1-1/+0
2013-01-28InputStream: use std::stringMax Kellermann1-6/+4
2013-01-28InputStream: store references instead of pointersMax Kellermann1-1/+1
2013-01-28InputStream: add constructor/destructorMax Kellermann1-5/+3
Eliminate input_stream_init() and input_stream_deinit().
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-1/+1
2013-01-26input_stream: forward-declare the structMax Kellermann1-0/+1
Hide the definition from C code, to prepare the transition to C++.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann1-2/+2
2013-01-21input/rewind: convert to C++Max Kellermann1-72/+76
2011-09-16input_stream: non-blocking I/OMax Kellermann1-9/+6
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.
2011-09-16input_plugin: add method check()Max Kellermann1-0/+9
To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin.
2011-09-15input/rewind: copy the MIME type only onceMax Kellermann1-1/+3
Reduce heap usage by reducing the number of malloc() / free() calls.
2011-09-14input_plugin: add method update()Max Kellermann1-0/+10
Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer().
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann1-0/+1
2011-08-24input/curl: remove obsolete function input_curl_reinit()Max Kellermann1-1/+0
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-11-08input/rewind: fix assertion failureMax Kellermann1-1/+1
The assertion added in MPD 0.15.14 was too much, it failed when the MIME type of a stream was NULL.
2010-11-05input/rewind: remove redundant NULL check before g_free() callMax Kellermann1-2/+1
2010-11-05input/rewind: add two assertionsMax Kellermann1-0/+3
2010-11-05input/rewind: fix double free bugMax Kellermann1-0/+1
Duplicate the "mime" attribute of the inner input_stream object, instead of copying the pointer.
2010-09-28input/rewind: enable for MMSThomas Jansen1-2/+10
2010-09-23rewind_input_plugin: Update MIME not only onceThomas Jansen1-3/+4
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.
2010-01-18input_stream: added attribute "uri"Max Kellermann1-1/+1
2010-01-18input_stream: added function input_stream_deinit()Max Kellermann1-0/+1
All close() implementations must call this method.
2010-01-04input/rewind: enable the "rewind" wrapper for all non-seekable streamsMax Kellermann1-3/+2
Don't limit the "rewind" input plugin to CURL streams.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-41/+36
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).
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-29input/rewind: new input_stream wrapper to allow stream rewindingMax Kellermann1-0/+238
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).