Max Kellermann
3fc201d985
input/ffmpeg: add noexcept
2019-03-13 09:58:33 +01:00
Max Kellermann
5aa453ada3
input/ffmpeg: include cleanup
2019-03-13 09:57:50 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, we don't need to include
`config.h` early to properly enable large file support. Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.
This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
3e78c9ab48
input/Plugin: add attribute prefixes
2018-10-24 20:25:32 +02:00
Max Kellermann
cf471e830f
Merge branch 'v0.20.x'
2018-08-02 11:07:40 +02:00
Max Kellermann
906972973e
case-insensitive URI scheme comparison
...
Required according to RFC 3986:
> An implementation should accept uppercase letters as equivalent to
> lowercase in scheme names
Closes #330
2018-08-02 11:01:45 +02:00
Max Kellermann
d0fbf6db59
input/Stream: remove attribute "cond", replace with handler interface
...
This adds a bit of overhead, but also adds flexibility to the API,
because arbitrary triggers may be invoked from that virtual method
implementation, not just Cond::signal().
The motivation for this is to make the handlers more dynamic, for the
upcoming buffering class utilizing ProxyInputStream.
2018-06-22 19:37:18 +02:00
Max Kellermann
7bce6329e3
archive/File, input/Plugin: return InputStreamPtr
2017-12-26 20:05:22 +01:00
Max Kellermann
e2c81aa9ea
Merge branch 'v0.20.x'
2017-11-14 12:31:13 +01:00
Max Kellermann
31ab78ae8e
input/{cdio,ffmpeg,file,smbclient}: unlock the mutex during blocking I/O
...
InputStream::Read() and InputStream::Seek() are called with the mutex
locked. That means the implementation must not block, or unlock the
mutex before calling into blocking code.
Previously, a slow CD drive could stall the whole MPD process,
including the main thread, due to this problem.
Closes #149
2017-11-13 17:13:10 +01:00
Max Kellermann
4faef28cc5
release v0.20.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkaFL0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEr4ID/9iAQC+7fFv06uLOm48Ufu+PgoD8uJkAwF5
QuLQkc85g9urn+bu9N7Qs7Vypp7aLyGcJKY0jyA8wxkOj24pUC3GYk80daUt561V
5s20FnoS/Uoman3CSJL94IfCUBxejizE6vgIIHTc5bb6U0qIsPub/8JTTE2Ih7uP
nvFZ5uBQ+YTc7at+iIH9123eUMKkitkh8osNblovqQT9v42++Tm4ztAytRHBjwUA
Itew5HhlvahbLKqFs/7vmICh/YX1FcOV7cV+erEWYfkH0KCI2bhSle4u2d0CBOvD
VJlDnBCo9bM7WKcPYqJiFFFXA0CRk06wbkkkAtwF4zjp8xos7aQcq4FyQnYL8KXo
5lijIhRwBURBd+nt8oA9kuEhBt/T75otcemJkzVaYappHTJCLjhxSGcPt8mw+nE9
9WQzsp/MIVzg9l5g3D9S/43xM7uhvn98Tn1Qf2s8YRd2o8CZeOhW+X3RvbCvVPv2
mOlx4sFAv8DOJ3KxMdqiJT+PmylPyJluQdqH+tMc8BdPg/kpSpYIPTuSjjRqK1yh
ld5do0HtAAwiHtvXfk5YVFjJSpO0c8yVn6xci2Cl4k/5ZHj2UE1ln+N5vCea2BRF
2J3HAjROwtcwY3lU1jFnEAogf24KWiFJqhhC0EqBGUdlrM8Dn37P5cEWWjROIMNK
lPEdovokNw==
=CdDy
-----END PGP SIGNATURE-----
Merge tag 'v0.20.7'
release v0.20.7
2017-05-15 23:01:49 +02:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
3854211694
input/Plugin: pass EventLoop& to init()
...
Eliminate dependency on io_thread_get().
2017-01-26 09:26:25 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
a55bb28069
decoder: include cleanup
2016-10-29 11:04:49 +02:00
Max Kellermann
8c744efd56
input/InputStream: migrate from class Error to C++ exceptions
2016-09-16 17:43:36 +02:00
Max Kellermann
fc7d3f64c0
input/Plugin: migrate open() from class Error to C++ exceptions
2016-09-09 18:15:01 +02:00
Max Kellermann
6ed77f2a27
input/Plugin: migrate init() from class Error to C++ exceptions
2016-09-09 15:16:47 +02:00
Max Kellermann
a73688a2be
input/Plugin: remove InitResult::UNAVAILABLE, throw PluginUnavailable instead
2016-09-09 15:11:52 +02:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
733989a284
util/StringUtil: move comparison functions to StringCompare.cxx
2015-11-06 09:20:18 +01:00
Max Kellermann
4fa5538e2b
config/Param: split block-specific attributes to new struct ConfigBlock
...
The old struct config_param remains only for top-level string options.
2015-01-21 23:56:33 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
fefe2df3ee
input/ffmpeg: use FfmpegInit() instead of av_register_all()
...
Make sure that the log callback is installed.
2014-12-21 20:56:42 +01:00
Max Kellermann
e6e9c21275
input/ffmpeg: use av_strerror()
...
Generate more detailed error messages.
2014-08-18 20:35:34 +02:00
Max Kellermann
636f5d4a1d
{input,decoder}/ffmpeg: move ffmpeg_domain to lib/ffmpeg/Domain.cxx
...
Eliminate duplicate definition (in input plugin and decoder plugin).
2014-08-18 10:12:37 +02:00
Max Kellermann
41a4b280ee
input/ffmpeg: update offset after seeking
2014-08-18 09:52:53 +02:00
Max Kellermann
27139bf41f
input/ffmpeg: refactor error code path
2014-08-18 09:52:25 +02:00
Max Kellermann
12ba1957d0
input/ffmpeg: use "auto"
2014-08-18 09:47:28 +02:00
Max Kellermann
07b93dcf80
InputStream: make Seek() always absolute
...
Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
2014-05-22 13:52:00 +02:00
Max Kellermann
fd1b04932a
InputStream: remove attribute "plugin"
2014-05-11 18:25:55 +02:00
Max Kellermann
d4b625b48e
InputStream: make various methods abstract
...
Replace InputPlugin attributes.
2014-05-11 17:14:49 +02:00
Max Kellermann
82337dec44
InputStream: add virtual destructor
...
Replaces the method Close().
2014-05-11 17:12:50 +02:00
Max Kellermann
f1d0700252
input/plugins: make InputStream the base class
...
Prepare for adding virtual methods.
2014-05-11 17:12:50 +02:00
Max Kellermann
6773adc771
InputStream: convert to class
2014-05-11 15:34:48 +02:00
Max Kellermann
2bf2f34b12
InputPlugin: allow init() to soft-fail
...
Add enum InputResult which is a tri-state. Input plugins may now fail
and just become unavailable.
2014-03-02 00:17:32 +01:00
Max Kellermann
f8bfea8bae
Input*: move to input/
2014-01-24 16:33:33 +01:00