aboutsummaryrefslogtreecommitdiffstats
path: root/src/input (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge release 0.15.12 from branch 'v0.15.x'Max Kellermann2010-07-201-2/+17
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/curl: remove assertion after curl_multi_fdset()Max Kellermann2010-07-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users reported that MPD crashes when using a new CURL version with the threaded DNS resolver enabled. It seems that curl_multi_fdset() returns no file descriptor when the DNS resolver runs in another thread, so MPD does not have any event to wait for. On the CURL mailing list, somebody suggested to sleep for a fixed amount of time. This is not an elegant solution, because daemons should never have to sleep without waiting for an event. I hope the CURL developers will review the API and remove the threaded DNS resolver. Meanwhile, I'm removing the assertion in question, to allow those unfortunate users running the latest CURL version to continue using MPD.
| * input/curl: query timeout from CURLMax Kellermann2010-07-201-1/+18
| | | | | | | | | | Use curl_multi_timeout() to determine the select() timeout, instead of hard-coding one second.
* | Merge release 0.15.10 from branch 'v0.15.x'Max Kellermann2010-05-301-0/+3
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/mms_input_plugin.c
| * input/mms: initialize the "eof" attributeMax Kellermann2010-05-181-0/+2
| |
| * input/mms: fix memory leak in error handlerMax Kellermann2010-05-181-0/+1
| |
* | input/file, output/{fifo,recorder}: add O_BINARY to open() flagsMax Kellermann2010-05-201-2/+2
| | | | | | | | Windows compatibility.
* | input/ffmpeg: new input plugin using libavformat's "avio" libraryMax Kellermann2010-05-182-0/+196
| |
* | input/mms: removed empty method buffer()Max Kellermann2010-05-181-8/+0
| | | | | | | | | | input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation.
* | input_stream: added attribute "uri"Max Kellermann2010-01-184-4/+4
| |
* | input_stream: added function input_stream_deinit()Max Kellermann2010-01-184-0/+4
| | | | | | | | All close() implementations must call this method.
* | input/rewind: enable the "rewind" wrapper for all non-seekable streamsMax Kellermann2010-01-042-15/+2
| | | | | | | | Don't limit the "rewind" input plugin to CURL streams.
* | input_stream: return allocated input_stream objectsMax Kellermann2010-01-016-134/+136
| | | | | | | | | | | | | | | | 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-3110-10/+10
| |
* | archive: use reference counting for archive+inputMax Kellermann2009-12-311-4/+1
| | | | | | | | | | | | | | Make the input_stream implementation hold a reference on the archive_file object. Allow the caller to "close" the archive_file object immediately, no matter if the open_stream() method has succeeded or not.
* | input/archive: don't initialize input_stream.readyMax Kellermann2009-12-311-2/+0
| | | | | | | | The archive plugin should decide this.
* | Merge vorbis+icy fixes from branch 'v0.15.x'Max Kellermann2009-12-304-181/+321
|\| | | | | | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac src/input/curl_input_plugin.c src/input_stream.c
| * input/curl: removed the built-in rewinding codeMax Kellermann2009-12-301-181/+10
| | | | | | | | This has been reimplemented in the "rewind" input plugin.
| * input/rewind: new input_stream wrapper to allow stream rewindingMax Kellermann2009-12-294-0/+309
| | | | | | | | | | | | | | | | | | | | | | | | 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).
* | archive_plugin: use GError in the open() methodMax Kellermann2009-12-161-1/+1
| |
* | input/archive: check for archive_file_open() errorsMax Kellermann2009-12-161-0/+2
| | | | | | | | | | This fixes a NULL pointer dereference in case of archive plugin failure.
* | archive_plugin: wrap method callsMax Kellermann2009-12-161-3/+3
| | | | | | | | | | Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions.
* | input_stream: return errors with GErrorMax Kellermann2009-12-154-60/+108
| |
* | input/archive: use g_path_is_absolute()Max Kellermann2009-12-151-1/+1
| | | | | | | | | | .. instead of manually checking pathname[0]=='/'. g_path_is_absolute() is portable.
* | Merge branch 'v0.15.x'Max Kellermann2009-12-151-0/+1
|\| | | | | | | | | | | | | | | Conflicts: src/archive/bz2_plugin.c src/archive_api.h src/input/file_input_plugin.c test/run_input.c
| * input/archive: close the archive file on errorMax Kellermann2009-12-151-0/+1
| | | | | | | | Fixed memory leak in error handler.
| * input/file: don't fall back to parent directoryMax Kellermann2009-12-151-18/+3
| | | | | | | | | | This code has never made any sense, and has broken some of the archive plugin.
| * input/lastfm: fixed variable name in GLib<2.16 code pathMax Kellermann2009-11-101-1/+1
| | | | | | | | Should be "lastfm_user", not "lastfm_username".
* | input/file: don't fall back to parent directoryMax Kellermann2009-12-151-18/+3
| | | | | | | | | | This code has never made any sense, and has broken some of the archive plugin.
* | input_plugin: method init() returns errors with GErrorMax Kellermann2009-12-141-1/+2
| | | | | | | | | | Not used by any plugin currently, but this eliminates the g_error() call in input_plugin_config(), so it's worth it.
* | include config.h in all sourcesMax Kellermann2009-11-123-1/+3
| | | | | | | | | | | | 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.
* | configure.ac: require GLib 2.12Max Kellermann2009-11-101-0/+1
| | | | | | | | | | | | Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
* | fd_util: removed creat_cloexec()Max Kellermann2009-11-101-1/+1
| | | | | | | | Add a "mode" argument to open_cloexec() instead.
* | set the close-on-exec flag on all file descriptorsMax Kellermann2009-11-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
* | mapper, update, ...: use g_build_filename(), G_DIR_SEPARATOR, ...Max Kellermann2009-10-201-1/+1
| | | | | | | | | | Try to be as portable as possible, use GLib path name functions and macros.
* | input/lastfm: removed obsolete last.fm input pluginMax Kellermann2009-10-132-494/+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.
* | Merge branch 'v0.15.x'Max Kellermann2009-10-131-1/+1
|\|
| * input/curl: fixed endless loop during bufferingMax Kellermann2009-10-131-1/+1
| | | | | | | | | | | | | | When the connection is lost while buffering, the CURL input plugin may enter an endless loop, because it does not check the EOF condition. This patch makes fill_buffer() return success only if there's at least one buffer, which is enough of a check.x
* | tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2009-10-132-6/+6
| |
* | configure.ac: require GLib 2.16Max Kellermann2009-10-132-18/+0
| | | | | | | | | | | | | | Accidently, MPD has been using several GLib 2.16 functions for a while, and nobody noticed yet. To simplify the code base, let's bump the minimum GLib version for MPD to 2.16. That version is old enough, and it's reasonable to expect users to have it.
* | input_stream: use "goffset" instead of "off_t"Max Kellermann2009-10-114-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'v0.15.x'Max Kellermann2009-10-111-43/+58
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/curl: don't abort if a packet has only metadataMax Kellermann2009-10-111-20/+22
| | | | | | | | | | | | | | | | | | When a received chunk of data has only icy-metadata, there was no usable data left for input_curl_read() to return, and thus it returned 0 bytes. "0" however is a special value for "end of file" or "error". This patch makes input_curl_read() read more data from the socket, until the read request can be fulfilled (or until there's really EOF).
| * input/curl: moved code to fill_buffer()Max Kellermann2009-10-111-27/+40
| |
* | Merged release 0.15.4 from branch 'v0.15.x'Max Kellermann2009-10-031-1/+1
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/mms: fix G_LOG_DOMAIN valueSerge Ziryukin2009-09-201-1/+1
| |
* | input/lastfm: Ensure multiple identical xml entities are decoded.Courtney Cavin2009-07-281-6/+5
| | | | | | | | | | Previously, if two identical entities appeared in one string, only the first would get decoded. This fixes that bug.
* | input/lastfm: use metadataCourtney Cavin2009-07-281-43/+297
|/ | | | | | Added a patch to flush out the last.fm input plugin slightly. It basically turns it into a wrapper for the appropriate plugin. Most notably metadata is now extracted.
* input/file: log message on errorMathieu Rochette2009-05-281-0/+2
| | | | | | | | If a file is removed the library, next time mpd will try to play it it will result in an error 'ERROR: problems decoding some/file.ogg'. Nothing is written in log files (verbose mode or not) [mk: append strerror(errno)]
* input_curl: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-7/+7
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.