aboutsummaryrefslogtreecommitdiffstats
path: root/src/input (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input: Add despotify input pluginSimon Kagstrom2011-03-292-0/+251
| | | | | | | | | | For Spotify tracks. Uses a spt URI, so with mpc you can play tracks with e.g., mpc add spt://spotify:track:5qENVY0YEdZ7fiuOax70x1 mpc play Uses the pcm_decoder_plugin for the output
* copyright year 2011Max Kellermann2011-01-2914-14/+14
|
* input/curl: enable CURLOPT_NETRCIan Zimmerman2011-01-291-0/+1
| | | | | | | | | | | | | | | | I wanted mpd to play a mp3 stream from a music website. The stream is only available to subscribers, which restriction is enforced through normal http authentication. However, the URL I get from the website is not the final URL of the stream, but a generic URL which points to the real one through a redirect (code 301). Thus, I cannot predict the final URL, and so I cannot use the username:password hack to force the authentication, and mpd (libcurl on mpds behalf) fails to grab the stream. libcurl allows the option CURLOPT_NETRC to be set and then the credentials can be stored in the good old .netrc file (in this case it would be ~mpd/.netrc, of course). But mpd doesn't set this option. I think it should.
* input/cdio_paranoia: add module nameMax Kellermann2011-01-081-0/+1
| | | | | Seems like we forgot to give this module a name... this can crash MPD on startup.
* input/cdda: rename plugin to "cdio_paranoia"Max Kellermann2010-12-222-42/+42
|
* input/cdda: support reading the whole discMax Kellermann2010-12-221-10/+8
|
* input/cdda: remove unused function input_cdda_archive_extract_trackno()Max Kellermann2010-12-221-24/+0
|
* input/cdda: import missing pcm16_to_wave() from the wave encoderMax Kellermann2010-12-221-0/+11
|
* input/cdda: implement parse_cdda_uri()Max Kellermann2010-12-221-10/+59
| | | | Was missing.
* input/cdda: call input_cdda_close() with an input_stream pointerMax Kellermann2010-12-221-5/+5
| | | | Another build fix.
* input/cdda: move code to cdda_detect_drive()Max Kellermann2010-12-221-7/+18
|
* input/cdda: remove newlines from error messagesMax Kellermann2010-12-221-8/+10
|
* input/cdda: remove debug codeMax Kellermann2010-12-221-31/+1
|
* input/cdda: some general build failure fixesMax Kellermann2010-12-221-13/+5
|
* input_cdda_plugin: new plugin to handle cdda:// protocol to access CD-DA ↵Viliam Mateicka2010-12-222-0/+406
| | | | audio CD's
* 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-112-4/+5
|\| | | | | | | | | | | | | | | 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/curl: fix version check for curl_multi_timeout()Max Kellermann2010-09-071-1/+1
| | | | | | | | | | | | | | According to the CURL web site, curl_multi_timeout() was added in version 7.15.4: http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
* | 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