aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/rewind_input_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input_stream: non-blocking I/OMax Kellermann2011-09-161-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.
* input_plugin: add method check()Max Kellermann2011-09-161-0/+9
| | | | | To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin.
* Merge branch 'v0.16.x'Max Kellermann2011-09-151-1/+3
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/rewind: copy the MIME type only onceMax Kellermann2011-09-151-1/+3
| | | | | | | | Reduce heap usage by reducing the number of malloc() / free() calls.
* | input_plugin: add method update()Max Kellermann2011-09-141-0/+10
| | | | | | | | | | Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer().
* | input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann2011-09-141-0/+1
| |
* | input/curl: remove obsolete function input_curl_reinit()Max Kellermann2011-08-241-1/+0
| |
* | copyright year 2011Max Kellermann2011-01-291-1/+1
|/
* Merge release 0.15.15 from branch 'v0.15.x'Max Kellermann2010-11-081-1/+1
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/rewind: fix assertion failureMax Kellermann2010-11-081-1/+1
| | | | | | | | | | The assertion added in MPD 0.15.14 was too much, it failed when the MIME type of a stream was NULL.
* | Merge release 0.15.14 from branch 'v0.15.x'Max Kellermann2010-11-071-2/+4
|\| | | | | | | | | | | | | | | | | | | | | | | 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
| * input/rewind: remove redundant NULL check before g_free() callMax Kellermann2010-11-051-2/+1
| |
| * input/rewind: add two assertionsMax Kellermann2010-11-051-0/+3
| |
| * input/rewind: fix double free bugMax Kellermann2010-11-051-0/+1
| | | | | | | | | | Duplicate the "mime" attribute of the inner input_stream object, instead of copying the pointer.
* | Merge release 0.15.13 from branch 'v0.15.x'Max Kellermann2010-10-111-3/+4
|\| | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/rewind_input_plugin.c src/output/httpd_output_plugin.c
| * input/rewind: enable for MMSThomas Jansen2010-09-281-2/+10
| |
| * rewind_input_plugin: Update MIME not only onceThomas Jansen2010-09-231-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.
* | input_stream: added attribute "uri"Max Kellermann2010-01-181-1/+1
| |
* | input_stream: added function input_stream_deinit()Max Kellermann2010-01-181-0/+1
| | | | | | | | All close() implementations must call this method.
* | input/rewind: enable the "rewind" wrapper for all non-seekable streamsMax Kellermann2010-01-041-3/+2
| | | | | | | | Don't limit the "rewind" input plugin to CURL streams.
* | input_stream: return allocated input_stream objectsMax Kellermann2010-01-011-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).
* | Update copyright notices.Avuton Olrich2009-12-311-1/+1
| |
* | Merge vorbis+icy fixes from branch 'v0.15.x'Max Kellermann2009-12-301-9/+11
|/ | | | | | | | | Conflicts: Makefile.am NEWS configure.ac src/input/curl_input_plugin.c src/input_stream.c
* input/rewind: new input_stream wrapper to allow stream rewindingMax Kellermann2009-12-291-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).