Commit Graph

174 Commits

Author SHA1 Message Date
Max Kellermann
dcf55c7e32 InputStream: add constructor/destructor
Eliminate input_stream_init() and input_stream_deinit().
2013-01-28 23:29:43 +01:00
Max Kellermann
e565cd4404 input/despotify: add constructor/destructor 2013-01-28 23:13:19 +01:00
Max Kellermann
5934ccbb74 input/despotify: rename class 2013-01-28 23:12:10 +01:00
Max Kellermann
d0a812d2df input/Soup: move code into the class 2013-01-28 22:00:24 +01:00
Max Kellermann
3dad2e1c0f input/soup: rename the class 2013-01-28 21:59:40 +01:00
Max Kellermann
70e4399334 input/ffmpeg: add constructor/destructor 2013-01-28 21:46:38 +01:00
Max Kellermann
00f8c2d46f input/ffmpeg: rename the class 2013-01-28 21:45:44 +01:00
Max Kellermann
0dd4b52b63 decoder/ffmpeg: require ffmpeg/libav 0.7.6
This is the version present in Ubuntu Oneiric, the oldest distribution
with gcc 4.6.  Debian Squeeze is off target, because it has gcc 4.4,
which is unable to compile MPD anyway.

This commit drops all API compatibility hacks for older versions.
2013-01-28 21:32:14 +01:00
Max Kellermann
6f3d70b5e2 DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond 2013-01-27 18:39:32 +01:00
Max Kellermann
0273cd44b0 input_stream: forward-declare the struct
Hide the definition from C code, to prepare the transition to C++.
2013-01-26 01:24:01 +01:00
Max Kellermann
49567f1f3e input_{internal,plugin}: convert to C++ 2013-01-25 22:43:01 +01:00
Max Kellermann
94fffb332b archive/*: convert to C++ 2013-01-24 19:18:58 +01:00
Max Kellermann
7c0e4dfb56 input/archive: fix memory leak in error handler 2013-01-21 19:08:35 +01:00
Max Kellermann
9ec069104f input,playlist/despotify: convert to C++ 2013-01-21 19:01:10 +01:00
Max Kellermann
9cc90b1fbe input/cdio_paranoia: convert to C++ 2013-01-21 17:58:30 +01:00
Max Kellermann
0c9f22507f input/ffmpeg: convert to C++ 2013-01-21 17:50:43 +01:00
Max Kellermann
9c870e4276 input/rewind: convert to C++ 2013-01-21 17:36:19 +01:00
Max Kellermann
5cffe693b0 input/file,mms: convert to C++ 2013-01-21 10:52:40 +01:00
Max Kellermann
e01615fd1e input_internal.h: add extern "C" 2013-01-21 10:52:19 +01:00
Max Kellermann
452a30d7af input/Curl: break loop when remaining length becomes 0
Fixes assertion failure (regression).
2013-01-15 23:39:32 +01:00
Max Kellermann
083065f433 input/Curl: move code to class MultiSocketMonitor 2013-01-15 18:16:55 +01:00
Max Kellermann
4cfc4a5a94 input/Curl: simpler GPollFD initialisation
Using initializer list.
2013-01-15 18:16:38 +01:00
Max Kellermann
1c7ee737e6 input/Curl: don't remove/add modified GPollFD
Not necessary, GLib will pick up the updated GPollFD automatically.
2013-01-15 18:16:15 +01:00
Max Kellermann
e83f805b8f Main, IOThread: move GMainLoop setup code to class EventLoop 2013-01-14 09:15:49 +01:00
Max Kellermann
631a268996 input/curl: use std::list instead of GQueue 2013-01-10 23:00:23 +01:00
Max Kellermann
85074f5ac6 icy_metadata: convert to C++ 2013-01-10 22:33:16 +01:00
Max Kellermann
12a8ed39d4 input/Curl: add constructor to input_curl class 2013-01-10 22:25:57 +01:00
Max Kellermann
b9ac5e9e76 input/Curl: remove unused source/source_id attributes 2013-01-10 22:25:33 +01:00
Max Kellermann
2758a734a2 input/Curl: remove redundant attribute "url"
Use the "url" attribute from the base class instead.
2013-01-10 22:21:30 +01:00
Max Kellermann
01f3131c81 input/Curl: use std::forward_list instead of GSList 2013-01-10 20:52:58 +01:00
Max Kellermann
2ca9236864 input/Curl: remove unused attribute "fds" 2013-01-10 20:52:44 +01:00
Max Kellermann
3bb711837e input/Curl: require libcurl 7.18 2013-01-10 20:46:47 +01:00
Max Kellermann
e0a97a030f io_thread: convert to C++ 2013-01-10 10:33:20 +01:00
Max Kellermann
33ba288622 input/{curl,soup}: convert to C++ 2013-01-10 10:23:20 +01:00
Max Kellermann
ef0392e854 input/file: use errno_quark() 2012-10-04 10:32:04 +02:00
Max Kellermann
12838c6294 input/ffmpeg: remove fallback AV_VERSION_INT definition
This is part of libavutil.
2012-08-14 19:07:27 +02:00
Max Kellermann
712e3eb120 input/curl: use g_source_get_time()
g_source_get_current_time() is deprecated since GLib 2.28.  This patch
adds a compatibility wrapper for older GLib versions to glib_compat.h.
2012-04-04 20:05:48 +02:00
Jonathan Neuschäfer
6ab4fb368c input/cdio_paranoia: whitespace-fix a comment 2012-02-15 21:22:49 +01:00
Max Kellermann
e87b7daab5 input/soup: use #pragma only with gcc 4.6+
It seems gcc 4.5 does not allow #pragma within function:

 src/input/soup_input_plugin.c:284:9: error: #pragma GCC diagnostic not allowed inside functions
2012-01-29 14:46:05 +01:00
Max Kellermann
9937ff8ac0 Merge branch 'v0.16.x'
Conflicts:
	src/decoder/ffmpeg_decoder_plugin.c
	src/input/ffmpeg_input_plugin.c
2012-01-05 00:33:23 +01:00
Max Kellermann
56257f072b input/ffmpeg: use the new AVIOContext API
URLContext is deprecated.
2012-01-04 21:47:19 +01:00
Max Kellermann
44401158e8 input/ffmpeg: define AV_VERSION_INT if not present
Support ancient ffmpeg versions.
2012-01-04 21:47:01 +01:00
Max Kellermann
744d729dab input/soup: disable -Wcast-qual to work around libsoup header problem 2011-12-12 10:15:04 +01:00
Max Kellermann
52b77f6e31 input/cdio_paranoia: pass byte order swapping to the PCM "decoder"
Send another "magic" MIME type when the byte order must be reversed.
This also fixes byte order issues when big-endian was involved (input
data or host byte order) - that was completely broken.
2011-10-10 10:13:43 +02:00
Max Kellermann
2be245b75e input/soup: wait some more before resuming the stream 2011-09-16 21:50:05 +02:00
Max Kellermann
17927f5c26 input/soup: improve error messages
Copy the reason_phrase from the SoupMessage, and check for transport
errors in the session callback.
2011-09-16 21:50:05 +02:00
Max Kellermann
754f26a97c input_stream: non-blocking I/O
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 21:22:13 +02:00
Max Kellermann
29241c4f83 input_plugin: add method check()
To check for errors without reading.  The decoder thread wants to do
that, before it passes the input stream to the plugin.
2011-09-16 21:22:02 +02:00
Max Kellermann
6f655eb9b9 input/{soup,curl}: free unused postponed_error
Fix memory leak.
2011-09-16 21:13:25 +02:00
Max Kellermann
65dfd90141 input/soup: move libsoup calls to the I/O thread
libsoup's asynchronous API is not thread safe.  By moving the calls
into the I/O thread, several crash bugs will be fixed.
2011-09-16 20:34:47 +02:00