Commit Graph

915 Commits

Author SHA1 Message Date
borine c834eb4590 input/plugins/AlsaInputPlugin: extend the alsa uri parsing to permit specification of the desired pcm audio format in the uri 2019-03-06 08:53:00 +00:00
Max Kellermann 9e73ea77b4 input/Init: add RAII class 2019-02-05 22:07:49 +01:00
Max Kellermann ffc36d5255 input/buffered: implement seeking to end of file
Previously, a seek to the end of the file would cause an assertion
failure in SparseMap::Check() because the given offset was invalid.

Closes #453
2019-01-22 07:42:00 +01:00
Max Kellermann 4ba9357a9c input/CdioParanoia: C++ wrappers for libcdio types 2019-01-21 20:20:20 +01:00
Max Kellermann 87635c5268 input/CdioParanoia: use the new function names 2019-01-21 14:18:55 +01:00
Max Kellermann 528b4338f4 input/CdioParanoia: use cdio_cddap_free_messages() on recent library versions 2019-01-21 14:16:51 +01:00
Max Kellermann c780b8bba9 input/CdioParanoia: remove useless cdda_messages() call 2019-01-21 12:36:59 +01:00
Max Kellermann ca34f3250b input/CdioParanoia: detect libcdio version at compile time
libcdio_paranoia was split from libcdio in version 90, and at the same
time, the header was moved from cdio/paranoia.h to
cdio/paranoia/paranoia.h.  We can easily detect this version at
compile time which is faster than configure time.
2019-01-21 12:14:13 +01:00
Max Kellermann c7848da8f2 input/CdioParanoia: add const to pointer 2019-01-20 22:03:49 +01:00
Max Kellermann 10a6c5c57d input/CdioParanoia: make variables more local 2019-01-20 21:59:57 +01:00
Jacob Vosmaer 66f5b0fed7 Add boost_dep in subdir meson.build files 2018-12-09 17:20:47 +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 fee75dc766 {output,mixer}/alsa: use snd_pcm_poll_descriptors_revents()
This call was missing, causing very high CPU usage when the ALSA
output plugin was used with dmix.

Closes #391
2018-11-11 12:37:29 +01:00
Max Kellermann 12308a0f55 lib/alsa/NonBlock: move the functions into a class managing the state 2018-11-11 12:37:25 +01:00
Max Kellermann f5c9071494 *: copyright year 2018 2018-10-31 17:54:59 +01:00
Max Kellermann 9b6a2589e5 Merge branch 'v0.20.x' 2018-10-29 23:06:32 +01:00
Max Kellermann 92523f8cf2 input/CdioParanoia: parse_cdio_uri() returns CdioUri
The `bool` return value isn't used anymore, so we can just return the
parsed object instead of passing it as an output parameter.
2018-10-29 14:34:33 +01:00
Max Kellermann e33c08357a input/CdioParanoia: rename struct cdio_uri to CdioUri 2018-10-29 14:34:30 +01:00
Max Kellermann 2dc5648e57 input/CdioParanoia: use StringAfterPrefixIgnoreCase() 2018-10-29 14:34:30 +01:00
Max Kellermann 1e6c445320 configure.ac: add -funwind-tables to work around clang bug
Replaces the workaround from commit
751fff07fb which fixed only one of many
crash locations.

See:

 https://github.com/MusicPlayerDaemon/MPD/issues/373
 https://github.com/android-ndk/ndk/issues/831
 https://bugs.llvm.org/show_bug.cgi?id=32611
2018-10-29 11:05:35 +01:00
Max Kellermann eeae9a04d3 input/Registry: add missing include 2018-10-25 09:21:13 +02:00
Max Kellermann 8bb35e7bb6 decoder/Thread: reimplement HasRemoteTagScanner() using the InputPlugin list 2018-10-25 09:09:21 +02:00
Max Kellermann 3e78c9ab48 input/Plugin: add attribute prefixes 2018-10-24 20:25:32 +02:00
Max Kellermann c2a2573aa5 Merge tag 'v0.20.22'
release v0.20.22
2018-10-23 20:10:57 +02:00
Max Kellermann 751fff07fb input/Error: work around clang bug leading to crash
Closes #373
2018-10-23 19:52:22 +02:00
Max Kellermann eefc0f5d80 input/Error: add noexcept 2018-10-16 21:26:04 +02:00
Max Kellermann 94592c1406 build with Meson instead of autotools
So long, autotools!  This is my last MPD related project to migrate
away from it.  It has its strengths, but also very obvious weaknesses
and weirdnesses.  Today, many of its quirks are not needed anymore,
and are cumbersome and slow.  Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Andrew Basterfield 9c1bf9ac5f Remove some extraneous leftover debugging 2018-10-07 19:21:38 +01:00
Andrew Basterfield 2f07b8f482 Set cdrive speed hint for cdparanoia 2018-10-06 20:18:19 +01:00
Max Kellermann ec54754e22 Compiler.h: move to util/ 2018-08-20 16:19:17 +02:00
Max Kellermann 1ba35e1fd4 Merge tag 'v0.20.21'
release v0.20.21
2018-08-17 20:02:27 +02:00
Max Kellermann 98efb4f6d5 android: raise minSdkVersion to 21
The number of MPD installs on Android < 5.0 is negligible, and that
API version introduces lots of useful features for MPD.
2018-08-17 19:01:37 +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 e16fd4a09b input/qobuz: initialize the libgcrypt library 2018-07-26 18:26:46 +02:00
Max Kellermann 409d3c7136 lib/gcrypt/MD5: return a StringBuffer 2018-07-26 17:45:45 +02:00
Max Kellermann c8e6f50d55 input/buffered: fix bogus offset after Seek()
Instead of copying the offset from our `input`, copy the requested
offset to our `offset` attribute.

By the time Seek() finishes, our input's offset may have advanced
already, having read some more data, thus giving us a bogus offset.

This fixes spurious decoder failues (closes #320).
2018-07-25 00:01:43 +02:00
Max Kellermann 32290d5eb8 fs/Path: add method ToUTF8Throw() 2018-07-18 16:51:29 +02:00
Max Kellermann 49efb6071c config/Migrate: library to migrate deprecated settings 2018-07-18 10:25:02 +02:00
Max Kellermann 0ff0aca2e2 input/Init: use struct ConfigData 2018-07-17 22:05:27 +02:00
Max Kellermann 5b192beaa5 config/Global: remove ConfigBlock::SetUsed() call, let caller do that
This fixes an old bug which caused the "unused" warnings to be
unreliable; only the first block in the list was marked as being
"used", no matter if it was really used, and the rest was never marked
as "used", suppressing all warnings for them.
2018-07-17 21:08:41 +02:00
Max Kellermann 816603fd9a config/Config*: rename files, drop "Config" prefix 2018-07-16 19:50:07 +02:00
Max Kellermann 9a29d02e7e Merge branch 'v0.20.x' 2018-07-06 19:43:01 +02:00
Max Kellermann 466625f7ad input/curl: use new class HttpStatusError
This way, IsFileNotFound() can detect status 404.
2018-07-06 19:26:11 +02:00
Max Kellermann 86e2075c63 lib/nfs/Connection: use new class NfsClientError
Allows callers to extract the NFS error code.
2018-07-06 19:17:34 +02:00
Max Kellermann 30900b2fe2 input/Error: new library providing IsFileNotFound() 2018-07-06 19:16:01 +02:00
Max Kellermann fd7ae7ea4c input/Domain: remove obsolete variable 2018-07-06 19:13:53 +02:00
Max Kellermann 60d5bf0240 util/StringFormat: new utility library 2018-07-06 19:07:02 +02:00
Max Kellermann 41cdc4e14b input/Offset: add macro PRIoffset 2018-07-06 19:06:05 +02:00
Max Kellermann 87dfca0477 input/curl: remove obsolete Windows sprintf() fallback
See commit be137a191e
2018-07-06 19:05:09 +02:00