aboutsummaryrefslogtreecommitdiffstats
path: root/src/input_curl.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input_curl: buffered rewindingMax Kellermann2008-11-021-3/+115
| | | | | | | | During codec detection, the beginning of the stream is consumed. This is a common operation, which takes a lot of time when handling remote resources. To optimize this, remember the first 64 kB of a stream. This way, we can rewind the stream without actually fetching the start of the stream again.
* input_stream: convert offset and size to the off_t data typeMax Kellermann2008-10-281-6/+5
| | | | | | size_t and long aren't 64 bit safe (i.e. files larger than 2 GB on a 32 bit OS). Use off_t instead, which is a 64 bit integer if compiled with large file support.
* input_file, input_curl: check URL type before attempting to openMax Kellermann2008-10-271-0/+3
| | | | | Don't attempt to open a HTTP URL as a local file, and don't send a local path to libcurl.
* curl: read stream name from HTTP response headersMax Kellermann2008-10-261-0/+5
| | | | | If the server sends the headers "icy-name", "ice-name", "x-audiocast-name", set the stream title.
* input_curl: set input_stream.mime from Content-Type response headerMax Kellermann2008-10-261-0/+3
|
* input_curl: added local variable "value"Max Kellermann2008-10-261-14/+22
| | | | | | Replaced the local variable "colon" (which had only temporary meaning) with the variable "value". It is a pointer to the first byte of the header value.
* input_stream: use "bool" instead of "int"Max Kellermann2008-10-261-8/+8
| | | | | For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
* input_stream: input_stream_close() returns voidMax Kellermann2008-10-261-2/+1
| | | | close() shouldn't fail with read-only streams.
* input_stream: added struct input_pluginMax Kellermann2008-10-261-7/+11
| | | | | | | Instead of managing a set of method pointers in each input_stream struct, move these into the new input_plugin struct. Each input_stream has only a pointer to the plugin struct. Pointers to all implementations are kept in the array "input_plugins".
* input_stream: renamed sources, no CamelCaseMax Kellermann2008-10-261-1/+1
| | | | Renamed inputStream.c and inputStream_file.c.
* http: use libcurlMax Kellermann2008-10-261-0/+493
MPD's HTTP client code has always been broken, no matter how effort was put into fixing it. Replace it with libcurl, which is known to be quite stable. This adds a fat library dependency, but only for people who need streaming.