Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2015-01-01 | Copyright year 2015 | Max Kellermann | 1 | -1/+1 | |
2014-08-19 | InputStream: CheapSeeking() returns false only for HTTP | Max Kellermann | 1 | -2/+3 | |
Seeking on NFS or SMB is cheap. Actually, only HTTP streams are expensive to seek. This enables a few features on NFS/SMB files, for example Ogg tags. | |||||
2014-08-19 | InputStream: move code to ExpensiveSeeking() | Max Kellermann | 1 | -1/+13 | |
2014-05-22 | InputStream: make Seek() always absolute | Max Kellermann | 1 | -16/+3 | |
Remove the "whence" parameter that is not actually necessary, and only complicates the InputStream implementations. | |||||
2014-05-21 | input/InputStream: move Open() to Open.cxx | Max Kellermann | 1 | -50/+1 | |
Allow compiling test programs with only selected plugins. | |||||
2014-05-11 | InputStream: make various methods abstract | Max Kellermann | 1 | -40/+7 | |
Replace InputPlugin attributes. | |||||
2014-05-11 | InputStream: add virtual destructor | Max Kellermann | 1 | -8/+5 | |
Replaces the method Close(). | |||||
2014-05-11 | InputStream: convert to class | Max Kellermann | 1 | -0/+9 | |
2014-01-24 | Input*: move to input/ | Max Kellermann | 1 | -2/+2 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2013-12-29 | InputStream: add static method OpenReady() | Max Kellermann | 1 | -0/+22 | |
Merge some duplicate code. | |||||
2013-10-30 | *: update copyright year to 2013 | Max Kellermann | 1 | -1/+1 | |
2013-10-23 | input_stream: rename struct to InputStream | Max Kellermann | 1 | -22/+22 | |
2013-10-23 | InputStream: add method Rewind() | Max Kellermann | 1 | -0/+13 | |
2013-10-19 | *: use nullptr instead of NULL | Max Kellermann | 1 | -9/+9 | |
2013-10-17 | InputStream: use int64_t instead of goffset | Max Kellermann | 1 | -2/+2 | |
Decouple some more from GLib. | |||||
2013-09-05 | InputLegacy: move functions to the input_stream class | Max Kellermann | 1 | -119/+51 | |
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -26/+17 | |
Replaces GLib's GError. | |||||
2013-07-30 | tag: convert to C++ | Max Kellermann | 1 | -2/+2 | |
2013-04-08 | uri: convert to C++ | Max Kellermann | 1 | -4/+1 | |
2013-01-28 | InputStream: use std::string | Max Kellermann | 1 | -4/+3 | |
2013-01-28 | InputStream: store references instead of pointers | Max Kellermann | 1 | -54/+25 | |
2013-01-27 | DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond | Max Kellermann | 1 | -21/+11 | |
2013-01-26 | input_stream: forward-declare the struct | Max Kellermann | 1 | -1/+47 | |
Hide the definition from C code, to prepare the transition to C++. | |||||
2013-01-25 | input_{internal,plugin}: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-21 | input/rewind: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-10 | input_stream: convert to C++ (internally) | Max Kellermann | 1 | -2/+5 | |
2013-01-07 | input_stream: add method _cheap_seeking() | Max Kellermann | 1 | -0/+7 | |
Move code from the Vorbis decoder plugin. | |||||
2012-06-12 | input_registry: add _for_each() macros | Max Kellermann | 1 | -5/+1 | |
2011-09-16 | input_stream: non-blocking I/O | Max Kellermann | 1 | -7/+117 | |
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-16 | input_plugin: add method check() | Max Kellermann | 1 | -0/+10 | |
To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin. | |||||
2011-09-15 | input/file: return NULL instead of "false" | Max Kellermann | 1 | -1/+1 | |
2011-09-14 | input_plugin: add method update() | Max Kellermann | 1 | -0/+10 | |
Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer(). | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2010-01-18 | input_stream: added function input_stream_deinit() | Max Kellermann | 1 | -2/+0 | |
All close() implementations must call this method. | |||||
2010-01-01 | input_stream: return allocated input_stream objects | Max Kellermann | 1 | -14/+10 | |
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-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-12-29 | input/rewind: new input_stream wrapper to allow stream rewinding | Max Kellermann | 1 | -0/+3 | |
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). | |||||
2009-12-15 | input_stream: return errors with GError | Max Kellermann | 1 | -9/+28 | |
2009-12-14 | input_stream: moved input_stream_global_init() to input_init.c | Max Kellermann | 1 | -51/+0 | |
2009-12-14 | input_stream: moved plugin list to input_registry.c | Max Kellermann | 1 | -30/+2 | |
2009-12-14 | input_stream: make input_plugins NULL terminated | Max Kellermann | 1 | -7/+5 | |
This is easier to traverse. | |||||
2009-11-12 | include config.h in all sources | Max Kellermann | 1 | -1/+1 | |
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue. | |||||
2009-10-13 | input/lastfm: removed obsolete last.fm input plugin | Max Kellermann | 1 | -5/+0 | |
This has been replaced by the last.fm playlist plugin. The input plugin has never worked well, and was just a playground to experiment with the last.fm radio protocol. | |||||
2009-10-11 | input_stream: use "goffset" instead of "off_t" | Max Kellermann | 1 | -1/+1 | |
The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable. | |||||
2009-09-24 | configure.ac: rename HAVE_CURL to ENABLE_CURL | Max Kellermann | 1 | -2/+2 | |
2009-03-13 | all: Update copyright header. | Avuton Olrich | 1 | -6/+7 | |
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy. | |||||
2009-03-02 | input_lastfm: new input plugin for last.fm radio | Max Kellermann | 1 | -0/+5 | |
The lastfm input plugin enables MPD to play lastfm:// URLs. This plugin is not complete yet: it plays only the first song in the last.fm playlist, and the playlist parser isn't even implemented properly. | |||||
2009-03-02 | input: pass config_param to input_plugin.init() | Max Kellermann | 1 | -5/+39 | |
Allow input plugins to configure with an "input" block in mpd.conf. Also allow the user to disable a plugin completely. | |||||
2009-03-02 | input_plugin: added methods init(), finish() | Max Kellermann | 1 | -6/+9 | |
Instead of hard-coding the plugin global initialization in input_stream_global_init(), make it walk the plugin list and initialize all plugins. |